我的意思是,我已经看到了大量基于XNA的游戏引擎。
XNA GS本身是一个游戏引擎吗?如果没有什么不同,我应该使用游戏引擎吗?
答案 0 :(得分:3)
XNA是一个游戏库。
游戏库处于代码级别。它可以打包一堆有用的图形,声音和其他与游戏相关的CODE(类,方法等),供您调用和集成在您的代码中。你仍然在为游戏设计整个代码(类,方法等),但是拥有一个有用的库使它更方便(更多 - 这样你就不必与显卡通信了)直)。 XNA有一些相当复杂的帮助代码,就像它会为你创建广告牌矩阵等等。但即便如此......你仍然有责任将这些帮助代码放在正确的位置。
游戏引擎基本上是您正在使用的应用程序。您可以定义某些参数,它们通常可以提供大量的自由度和灵活性(通常通过脚本语言),但最终您不会为游戏编写基本代码。这意味着你只能走这么远而且变化如此之大。你不能搞乱游戏循环,你不能为某些低级别的东西编写自己的算法(不确定它们让你改变什么,可能因引擎而异)。它们会自动处理大量碰撞和碰撞......但这意味着自由的限制。
答案 1 :(得分:3)
XNA是用于制作游戏的框架,目前是Windows Phone SDK的一部分。 (这个名称有点误导 - 你可以为PC,Xbox 360和手机平台制作程序,但MS最近决定推动手机市场更多)。框架通常表明需要足够的编程知识,并且几乎没有“拖放”工作。
该框架的设计已经从头开始用于游戏,但最近它也适用于Windows Phone 7应用程序。也就是说,它为内置计时器,精灵渲染和复杂数学函数等游戏提供了许多辅助功能。这使程序员有更多时间专注于游戏逻辑和渲染,音频等更复杂的实现。
因此,对于经验丰富的程序员来说,直接潜入并更快地创建游戏是很容易的,但这并不是限制性的,它不会一直牵着你的手。可用的各种引擎显示了XNA的灵活性。最好的引擎非常强大,能够生成AAA级图形,还有专门的音频引擎(如Xact内置)或物理引擎(如BEPU或LibJigX)。
答案 2 :(得分:0)
取决于您的意思“在线”。
如果您的意思是基于浏览器 - 那么NO。 Flash / Silverlight / Unity是最佳选择。
如果您的意思是在线互动,那么是 - 您的游戏将是在客户端运行的XNA应用程序。请注意,在这种情况下,客户端/用户“必须”在基于Windows的环境(PC / Win手机)上。