jri*_*sta 33
这是一个难以回答的问题.在大多数情况下,C++是一种"更好"的编程游戏语言,因为它为您提供了对内存管理的直接控制,您可以有更多选项来微调您的性能.这一点,以及C++已经比C#长大的事实,已经导致其目前在游戏行业的主导地位.
然而,现在,随着.NET平台和C#变得如此成熟,它不容易被排除在游戏编程领域的强大竞争者之外.我认为在不久的将来尤其如此,因为.NET 4.0和C#4.0将带来一个全新的多线程和并发编程时代,可以为他们的平台带来巨大的性能提升.随着多核CPU掀起桌面计算世界风暴,大量核心CPU只落后于.NET/C#4.0,我认为使用.NET和C#4.0开发多线程应用程序的简易性将使C++能够运行钱.
最后,它将完全取决于你认为你需要多少控制内存管理,以及这种控制是否值得大规模并行游戏领域的努力.如果你需要这种控制,并认为你可以处理用C++编写高度并行游戏的努力,那么你可能会从中获得一些东西.否则,我会说C#4.0会是更好的选择.
应该注意的是,从我最初写这篇文章开始两年后,Silverlight游戏,特别是Windows Phone 7上的Silverlight,已经成为一个庞大且快速发展的平台,游戏(通常是相当高级的游戏)正在开发中.自从该平台于2010年11月首次推出以来,WP7上的游戏已经爆炸式增长,而WP7已经开发了比竞争平台更多的游戏.鉴于移动设备无处不在以及玩游戏的普及,我认为这是C#作为游戏开发语言的强大功能.相当多的WP7游戏都是完全3D,图形密集型游戏.
对于商业/更大的游戏项目,C++可能是最好的选择.但是,如果你想要做一些小型的独立游戏,那么就没有什么可以阻止你使用C#甚至是Java.
我用C++做了几个小游戏,用CNA做了一个使用XNA Framework的小游戏,主要是为了好奇.目前我正在使用Java和LWJGL(轻量级Java游戏库)开发平台游戏.你猜怎么着?它工作得非常好,而且我几乎可以免费获得跨平台兼容性!我用Java开始这个项目的原因是为了看看我是否可以使用Java创建一个很好的OpenGL加速游戏而不是我通常使用的C++.到目前为止它对我来说非常好用,实际上我真的很惊讶.=)说实话,我对C++感到有些厌倦,目前使用Java编码对我来说效率更高(非常感谢Eclipse IDE!).
因此,对于较小的游戏,您绝对可以使用Java或C#获得成功,不需要为C++而烦恼,除非您正在做一些需要100%可能性能的事情.XNA可能是最容易开始使用的选项,但对于我自己而言,我很可能不再使用它,因为它基本上只是Windows(加上Xbox 360).