用C#进行Android游戏开发

6
我想知道是否有任何方法可以用C#开发基于Android的手机游戏(也许是iPhone)?没错,我知道"MonoDroid / Mono for Android",但它不是免费的。Java很好,但Dalvik的性能远不如Mono,并且缺少一些非常有用的游戏开发功能,例如运算符重载。此外,有一个简直令人惊叹的OpenTK框架。

那么,是否有可能免费在Android上运行.NET / Mono?或者我注定要使用Java?


1
我不知道你怎么能暗示使用Java是一个“判决”... - nicholas.hauschild
3个回答

3
您需要能够在设备上安装未受管控的代码。我建议使用Java,因为我预见使用mono进行部署可能会很困难。如果您使用大量未受管控的代码,Google可能不允许您在其市场上销售应用程序。这也将限制您使用搭载特定处理器品牌的Android手机,虽然我所知道的所有手机都使用ARM处理器,但仍有一些例外。
如果您确定要这样做,可以尝试http://www.mono-project.com/Mono:ARM
运算符重载只是语法糖。我相信您有能力编写没有它的应用程序。而且Java肯定也有适合自己的框架。
Android充满了Java,最好不要试图与它抗争。

2
禁止非托管代码的-1。他们有NDK,它全部使用C/C++编写,这是非托管的。此外,使用C#不会锁定您到特定的处理器,因为它被编译为中间语言(IL),并由解释器即时编译(JIT)。 - CaseyB
IL本身不是问题所在。您要捆绑的运行时必须特定于处理器,这就是困难所在。还有一个Mono:MIPS项目,但它看起来要不功能较弱。我认为谷歌可能会对大量未经管理的代码存在一些安全问题,特别是那些写入内存然后从其中执行的代码,但看起来他们确实会盲目地通过任何东西。 - eyesathousand
4
for循环和if语句只是语法糖,你真正应该像男人一样用汇编语言开发所有东西。 - Andrew T Finnell

2

如果您不想使用Java,则应该使用NDK和C / C ++;特别是用于游戏。另一个好处是,如果您提前考虑一下,可以有大量的代码块可以在Android和iPhone上运行。


0

我通常不喜欢超出你设定的范围提供建议,但你应该认真考虑这个建议:

如果你想要认真学习游戏开发,我建议你花时间学习Unity3D。非专业版是免费的,没有过期时间。他们有iPhone和Android套件,可以让你在这两个平台上部署你的游戏。是的,它们需要花钱购买,但你可以开始计算你的时间价值。

如果你正在做这个练习来学习游戏引擎的工作原理,那太棒了,你应该继续追求。如果你更关注开发实际的游戏,请考虑使用现有的套件之一。Unity3d是目前为止拥有所有功能最简单、最便宜的套件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接