游戏框架的优缺点

pek*_*pek 16 language-agnostic

这个问题是针对那些刚开始从事爱好游戏开发的人.首先想到的是:

我应该使用哪种语言/框架?


解决方案清单:


答案模板:

框架名称(已链接)

优点:

  • PRO1
  • PRO2
  • ...

缺点:

  • con 1的
  • CON2
  • ...

Ric*_*ket 9

Microsoft XNA Game Studio

优点:

  • 使用.NET语言; 托管内存,Visual Studio环境的易用性等.
  • 高水平和低水平的良好组合
  • 非常支持2D和3D
  • 证明了; 看看Xbox Live Arcade,所有这些游戏都是用XNA制作的
  • 游戏可以在网络Xbox上轻松运行

缺点:

  • 使用.NET语言; 不能使用Java,C++等
  • 没有太多的资源(即书籍),虽然它易于学习和使用,所以这可能不是问题
  • 仅Windows.Mono(在Linux上)根本不支持XNA.
  • XNA 3.0在2.0之后不到一年发布,现在我们处于3.1; 像这样的频繁更改可能会影响文档,即书籍快速过时,并且在将2.0游戏升级到3.0游戏时会出现许多问题.
  • 截至2014年,已停产.


Toa*_*oad 8

如果你有时间,那就自己动手吧.值得体验,你将学到很多东西,而不是如何使用框架X. ; ^)

优点

  • 完全控制
  • 强大的学习经历
  • 游戏引擎和程序之间的一致代码
  • 倾向于非常适合应用它的应用程序.
  • 支持任何语言/环境

缺点

  • 难度很高
  • 没有在线文档
  • 通常,不太通用.更难申请其他游戏.
  • 其他人使用起来比较难.
  • 可能比比较流行的框架更惹人讨厌.
  • 没有经过充分测试.
  • 更难获得帮助.

  • 当你开始使用游戏编程时,没有什么比从头开始编写框架更好的了.它极大地提升了你永远不会完成一个真正的游戏的机会,并且会在构建一个不太适合游戏的框架的过程中放弃(毕竟,如果你的第一场比赛,你没有确切地知道如何构建它(你). (6认同)
  • +1; 当你开始游戏编程时,没有什么比从头开始编写框架更好的了; 它真的教你基本面. (5认同)

Eli*_*Eli 7

jMonkeyEngine

优点

  • 使用Java; 托管内存,在许多成熟的IDE(Eclipse,NetBeans等)中得到高度支持,高度可移植
  • 良好的组合和高水平和低水平
  • 现代3D scenegraph
  • 内置顶上LWJGL,非常成熟和完善的工作的游戏库
  • 非常轻巧; 不会增加很多开销
  • 内置3D模型加载各种格式.
  • 内置现代基于节点的3D场景图.
  • 使用方便.
  • 开源; 不断发展和改进.
  • 包括剔除,碰撞检查等.
  • 可以选择保存和读取自己的超紧凑,超快速二进制模型格式.
  • 完整清单.

缺点

  • 使用Java,因此编译JIT,因此可能比C++和其他选项慢一点.
  • 尚未在许多商业应用程序中使用(因此未被"证明").
  • 没有任何附加的编辑器,一切都必须用纯代码完成.
  • 难以做2D游戏(为此你可以试试Slick).


jou*_*kar 6

pygame的

优点:

  • 易于入门并创建可见的东西.
  • 跨平台.
  • 有很多开源游戏可供检查来源.
  • Python语言的优点(灵活性,动态类型,字符串/数组/元组等).

缺点:

  • 性能方面不能扩展到非常大的游戏(很少有业余爱好游戏开发).
  • 虽然3D是可能的,但主要适用于2D.
  • 很难作为封闭源分发.

也可以插入SDL作为优点和/或缺点.


Ric*_*ket 5

OGRE(面向对象的图形引擎)

优点:

  • 大量的3D功能
  • 跨平台,使用DirectX或OpenGL
  • 插件架构可实现更多功能
  • 不试图成为一切引擎,只是一个图形引擎(甚至不尝试处理输入,因为许多图形库往往会这样做)

缺点:

  • 使用Singleton模式
  • 很难做2D或原始渲染(单个多边形,线条等)
  • 大量的代码使学习曲线非常陡峭


Jan*_*nen 0

在我看来,XNA 的优点是 XNA 应用程序不仅可以在 PC 上运行,还可以在 Xbox360 上运行,并且您可以从 .NET Framework 支持的任何语言中选择您最喜欢的语言 - 这是相当多的。

  • 我知道(根据我的经验)要在 XBOX360 上运行游戏,您必须购买创作者俱乐部卡。这并不是什么大事,只是一个旁注。;) (2认同)