哪种 .Net 技术最适合哪种游戏?在 WPF、Silverlight 或 XNA 之间进行选择的标准是什么?
5 回答
真的,您是在将苹果与茶几与特百惠进行比较……
WPF 并不是严格意义上的游戏相关技术。由于它处理数据绑定的方式以及 UI 层与逻辑层的分离,它可能适用于您正在寻找富客户端的任何地方,但您希望能够轻松地更改演示文稿,也许因为你希望游戏可以换肤。除此之外,您并没有真正从 WPF 作为一项技术中获得太多收益。如果您在 Windows 平台上假设某些东西,这是一种基准。
使用 Silverlight,您可以在多个平台上获得基于浏览器的交付。这就是大抽奖。比您通常在浏览器中拥有的更多功能,但肯定不是您作为常规客户端应用程序所拥有的。比您通常在浏览器中拥有的更多艺术自由,但又不像您在客户端应用程序中拥有的那样多。如果您以前尝试过基于网络的游戏,那么这是一个很大的进步。如果您习惯于基于桌面的东西,访问多个客户端可能会让您感兴趣,但除此之外,它在性能和原始功能方面是一个很大的下降。
XNA 是一种游戏技术。不仅仅是您可以访问 Xbox(和 Zune!)作为一个平台;整个基础设施都是围绕制作游戏而构建的。它为您提供了对着色器、计时器、碰撞检测、位置音频等内容的内置支持,以及您通常必须自己编写的大量内容,无论您的游戏是 2d 还是 3d。基础项目甚至为您创建了一个基本的游戏循环。它在它支持的平台中非常具体,并且支持它们进行游戏. 确实,如果构建游戏是您想做的事情的核心,并且您仍在学习这个过程,那么这是一个很好的起点。假设您不需要您提到的其他技术所具有的特定优势,我会说 XNA 可能是您的最佳选择,无论您计划构建哪种游戏。
如果您需要速度,即第一人称射击游戏,请选择 XNA,如果您想为 XBox 和 Windows 编写代码,请选择 XNA。
如果您想为网络写作,请使用 silverlight。
如果您想要桌面策略(国际象棋、纸牌等),请使用 WPF。
嗯,我在一个在 XNA 中开始游戏的团队中。菜单、选项屏幕(我们有很多)、输入框、按钮、高分、流式的基本布局、图表之类的东西在 XNA 中是相当痛苦的——这需要你几个月的时间花费在基本的游戏功能上。
所以我们打算做一个融合:Easy WPF 的东西用 WPF 编码,XNA 方便的东西用 XNA 编码。
或者让我们讲述魔兽世界的 HUD - 在 XNA 中需要几个月的时间,但在 WPF 中只需要几天......
出于这个原因,有很多声音想要融合这两种技术。两者都依赖于directX - 但据我所知,不可能以简单而高效的方式融合它们。
看看这个: http ://forums.xna.com/forums/p/1122/6527.aspx http://social.msdn.microsoft.com/Forums/en-US/xnaframework/thread/0562aab0-029a-4aed -a59a-8b94b1f1ca2f http://jmorrill.hjtcentral.com/Home/tabid/428/EntryId/259/XNA-Meet-WPF.aspx http://forums.xna.com/forums/p/29421/165307.aspx
我想这可能会引发更大的问题;
您是要编写适合语言的游戏,还是想要适合游戏的语言?
话虽如此,我还是会推荐 XNA 来继续第二个 Raumornie。
我刚刚开始走这条路,并在网上找到了大量可用于 XNA 的信息。点击 XNA Creators Club ( http://creators.xna.com ) 并下载所有看起来有点有趣的东西。有大量很棒的代码示例和迷你游戏可供使用。
其他方便的链接;
http://innovativegames.net/blog/xna-game-engine-tutorial-series/
http://www.thehazymind.com/category/xna/
http://www.ziggyware.com/
假设您要坚持使用 2D 游戏,您总是可以针对所有平台 :-D
对于 Windows、XBox 和 Zune(您没有在列表中提及),请使用XNA。
对于 Windows、Mac 和 Linux,通过浏览器获取您的 XNA 游戏并使用SilverSprite在 Silverlight 中运行它。然后,您可以在 xbox live 上发布您的游戏,然后将相同的游戏发布到SilverArcade上。