未来应该选择C# XNA还是C++ DirectX11?

5
我最近开始学习XNA,非常喜欢它和它的托管代码。然而,经过一些阅读,似乎在Windows 8和Windows 8手机上,XNA将不会更新以与这些新功能配合使用,而DirectX11将是所使用的内容。
那么,有人知道这是否属实吗?我不懂任何C++,但我对C#相当自信,所以我想坚持使用XNA,但如果未来将使用C++和DirectX,也许现在应该转换吗?此外,如果我懂C#,学习C++会更难吗?
如果情况是DirectX是未来的发展方向,我可能会选择Unity,这样我就可以继续使用C#。
非常感谢任何关于这个主题的帮助。

没有人知道未来。Windows 8可能会成为巨大的成功,也可能成为新的Vista。我们又能知道什么呢? - Bo Persson
XNA在Windows 8上运行得非常好。然而,在Windows 8 RT上就另当别论了。 - Justin Skiles
3个回答

2
去年的Build大会和其他场合上,微软的Herb Sutter这样说道(意译):
在过去十年中,硬件的性能提升迅速,我们可以承担像.NET这样的高效语言所带来的额外开销。如果我们推动性能极限,又怎样呢?明年的电脑可以轻松处理它。使用托管语言编写软件的成本比使用本地语言更低,并且我们有足够的硬件能力来减轻托管开销。
在接下来的十年里,用于完成任务的硬件将变得更小、更移动、更低功耗。因此,软件代码的效率和性能变得越来越重要。到目前为止,本地语言具有优势。
我猜测由于图形软件(游戏)可能是一个快速达到性能极限的开发领域,这可能是第一个经历这种转变的领域之一。

1

谢谢!那你建议我学习DirectX和C++吗? - picklechips
这真的取决于你想设计什么。如果你想要一个跨平台游戏,我会选择OpenGL。如果你正在寻找Windows特定的图形处理,DirectX11可以完成任务。总的来说,我会认为OpenGL在行业中有更多的用途,因为它是跨平台和易于移植的,但这是我的个人偏见。 - Syntactic Fructose
我完全没有研究过那个.. 我会去看一下的!那么,C#在游戏开发中未来基本上是失败的吗?由于某种原因,C++让我感到害怕。 - picklechips
1
@RyanMartin - 我自己还没有尝试过,但是据说有一些不错的C#包装器可以用于DirectX。 - Chris O
考虑使用SharpDX,这是一个围绕DirectX API的C#封装。它由作者不断更新。 - Justin Skiles

1
我建议你继续使用C#语言,因为它在开发速度方面更快,在性能方面的差异也不是太大,所以你不必抱怨。
如果你想要针对移动平台开发,我建议你使用OpenGL。虽然起步较难,但你应该能够开发出一个支持移动和桌面平台的框架(可以使用MonoTouch和Monodroid)。
对于那些现在大声喊着DirectX更好的人:我知道,一般来说你们是正确的,但是DirectX不支持移动平台,比如iOS和Android。有一个适用于所有平台的XNA克隆,可能会起作用,但我不知道它是否支持新的DirectX/OpenGL功能。

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