对于PC开发(不包括Xbox和Zune),
XNA和C# DirectX有什么区别?在速度、版税等方面,C# DirectX是否比XNA有明显优势?
这两者与无管理的C++ DirectX相比如何?
游戏编程方面,行业正在向何处发展?
这里有一个很好的Channel 9视频,他们在Xbox 360上运行了一个由XNA制作的赛车游戏。即使在全高清下也可以很好地运行。几款XBox Live Arcade游戏是由XNA社区开发的。
就C#DirectX而言,据我所知,由于XNA基本上取代了托管DirectX(称为Managed DirectX),因此不再得到官方支持。我可能错了,因为我很久没有看过它了。
XNA和Managed DirectX之间的性能差异可以忽略不计,因为它们在本质上是相同的东西。 XNA只是具有一些方便的部分,可以减少您需要编写的样板代码量。
Xna游戏开发工具主要解决游戏相关的问题,但我认为如果没有看到一些不错的度量标准,任何宣称Xna游戏开发工具性能比托管Direct X差的帖子都应该受到质疑。
微软之外的一个独立组织创建了一个名为SlimDx的项目-http://slimdx.mdxinfo.com/。 如果您编写的是应用程序而不是游戏(根据其他问题,我认为您不是),那么这个项目值得考虑。
游戏行业仍然广泛使用C ++作为游戏内部核心,但社区游戏部分的XBox上使用完全托管代码的XNA游戏工作室成功发布了一些游戏,并在XBox Arcade上发布。 关于人们在社区游戏中赚了多少钱,很快就会有一些有趣的统计数据。
许多高价游戏在某些方面使用C ++,但实际的游戏逻辑则使用像Lua这样的语言...而且Lua并不以其惊人的速度著称!
C#具有良好的学习曲线,并由行业中的工具程序员使用-它是一种有用的语言。 C ++是一种很棒的语言,但需要更多的纪律来创建功能代码-对于新手而言,使用C ++可能会让他们自掘坟墓。 C#可以在运行时动态更改并执行诸如展开循环之类的操作,而不是编译时执行-优秀的C#代码可以与易读的C ++代码一样快甚至更快-但您必须知道如何使用它。 在非常紧密的循环中,C ++和汇编语言可能会在某些情况下胜出。 在游戏中经常使用C ++,还会创建具有自己的内存策略的自定义分配器,以尝试帮助正常分配器造成的碎片...在.Net / C#中,CLR处理此类低级实现细节,并且只要按照垃圾回收器的强项(与您自己的C ++实现相同)进行编程,则无需关心此类底层实现细节。
如果你正在考虑进入游戏开发,并且正在决定使用哪种编程语言(从你的提问中可以看出),那么最好选择在项目结束时能够展示完成作品的语言,无论是C++、Objective-C、C#、Flash、Silverlight等。
由于编程语言不断地变化并风行一时,招聘者通常会寻找掌握不同语言的专业人才,这可能会减轻因不知道当前所使用的语言而带来的困难。而一个已完成的作品集也将证明你的技能水平。