2010-11-21 100 views
3

我想知道在C#中使用XNA开发游戏而不使用它的性能。我可以不使用PictureBox而不是2D纹理吗?使用Windows Form编程进行游戏是否可行?还是XNA是最佳解决方案?任何优点/缺点?C#:XNA vs无XNA(性能)

+0

简单的2D游戏XNA是一个伟大的和易于学习的工具。但是当你想制作真正大型的3D游戏时,我推荐像[Unity](http://unity3d.com/unity/)这样的其他框架,它可以提供更好的性能 – harry180 2012-07-27 09:11:51

+1

只需要注意,Unity不是像XNA这样的框架,而是“工具“ – 2013-09-15 02:58:23

回答

10

您的游戏越复杂,您发现可持续WinForms开发的可能性就越小。 XNA面向这种事情,所以为什么不使用它? “你想让我的游戏运行在Windows Phone 7,XBOX 360和/或Windows桌面上吗?”如果你的答案是肯定的,那么学习XNA。最好的事情是它可以让你针对这些不同的平台做大部分工作。

我推荐收听Scott Hanselman最近播客的主题:Hanselminutes Podcast 240 - Developing Indie Games for Xbox 360 and XNA with George Clingerman

8

这取决于你游戏的图形复杂程度。
如果你想学习一个好的图书馆,可以用高质量的图形制作高端游戏,可以使用XNA;它会为你的味道打开更多的品种。
但是如果你想制作一个简单的不滚动的,类似俄罗斯方块的纸牌游戏,那么双缓冲的.NET控件就可以做到这一点。

3

如果你正在寻找最佳性能,你不应该看c#或XNA,在这方面你越低越好。但是,较低的级别意味着您将花费更多时间在编程上,而获得较少的结果。

XNA的开发使游戏编程变得简单。它需要很多繁琐的低级编码,并用简单的方法打包给我们,以便我们不必重新处理轮子,同时仍然利用非常强大的框架。

我强烈建议如果您有兴趣制作游戏,请使用XNA。我想你会比其他选择更受欢迎。

+0

我知道放弃我很有趣,但那些一直在做这件事的人可否提供一些推理?如果可以提供学习,我想将您的选票作为学习体验。谢谢=) – 2010-11-22 14:23:02

+0

迈克,我的猜测是你的第一句话可能会遇到错误的方式。实际上,当我阅读它时,我几乎期待在最后看到C++被提及:)尽管如此,我并没有发现整体响应存在问题,所以有一个+1来抵消downvote! – 2010-11-22 14:59:07

+0

谢谢!对不起。我只是重读它,它太戏剧化了。我的意思不是要打击C#或XNA,如果这样做是非常抱歉冒犯了任何人。在性能方面,托管代码的开销会比原来的更高。我会尽力让下一次更加清楚感谢艾哈迈德的领导! – 2010-11-22 22:48:30

6

使用XNA。除了有显著更好的性能,更好的支持平台(Xbox 360游戏机,Windows Phone的),其他的API美好的事物般的声音和输入处理,其中有一个很重要的原因:

XNA是“立竿见影”式的API (而不是保留的;参见this description)。

用这种类型的API开发游戏是显着eaiser。原因是,没有太深入的了解,在保留的API中,您必须确保外部场景与您的游戏状态保持同步。这是单调乏味并且容易出错的(相信我,我已经完成了)。