Language agnostic 游戏框架的利弊

Language agnostic 游戏框架的利弊,language-agnostic,Language Agnostic,这个问题针对的是那些刚刚开始游戏开发的人。首先想到的是: 我应该使用哪种语言/框架? 解决方案列表: -> -> -> -> -> -> -> 自定义-> 答案模板: 框架名称(链接) 优点: Pro1 Pro2 缺点: Con1 Con2 在我看来,XNA专业版的XNA应用程序除了可以在PC上运行外,还可以在Xbox360上运行,而且你可以从.NET Framework支持的任何语言中选择你最喜欢的语言,这是相当多的。任何框架(游戏、网络等)的优点

这个问题针对的是那些刚刚开始游戏开发的人。首先想到的是:

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


解决方案列表:

  • ->
  • ->
  • ->
  • ->
  • ->
  • ->
  • ->
  • 自定义->

答案模板:

框架名称(链接)

优点:

  • Pro1
  • Pro2
缺点:

  • Con1
  • Con2

在我看来,XNA专业版的XNA应用程序除了可以在PC上运行外,还可以在Xbox360上运行,而且你可以从.NET Framework支持的任何语言中选择你最喜欢的语言,这是相当多的。

任何框架(游戏、网络等)的优点在于,它们删除了你通常必须编写的不必要的样板代码


缺点往往会在稍后出现,一旦您想要超越框架的能力,它就会变得非常困难。对于许多更复杂的框架,扩展它们的功能以使其能够完成设计上不具备的任务,这将导致您不得不编写大量自己的样板代码。

如果您有时间,请自己动手。这是值得您体验的,您将学到很多东西,而不是如何使用FrameworkX

专业人士

  • 完全控制
  • 有丰富的学习经验
  • 游戏引擎和程序之间的代码一致
  • 倾向于非常适合它所应用的应用程序
  • 支持任何语言/环境
缺点

  • 高难度
  • 没有在线文档
  • 一般来说,不太通用。更难应用于其他游戏
  • 其他人很难使用
  • 可能比更流行的框架更复杂
  • 没有经过很好的测试
  • 很难得到帮助

优点:

  • 大量3D特征
  • 跨平台,使用DirectX或OpenGL
  • 插件架构提供更多功能
  • 不尝试成为一个无所不包的引擎,只是一个图形引擎(甚至不像许多图形库那样尝试处理输入)
缺点:

  • 使用单例模式
  • 很难进行2D或基本体渲染(单个多边形、线等)
  • 大量的代码使得学习曲线相当陡峭

优点:

  • 使用.NET语言;托管内存、VisualStudio环境的易用性等
  • 高水平和低水平的良好组合
  • 很好地支持2D和3D
  • 是被证明的;看看Xbox Live Arcade,所有这些游戏都是用XNA制作的
  • 游戏可以在联网的Xbox上轻松运行
缺点:

  • 使用.NET语言;不能使用java、C++等
  • 目前还没有太多的资源(如书籍),尽管它很容易学习和使用,所以这可能不是一个问题
  • 只有窗户。Mono(在Linux上)根本不支持XNA
  • XNA3.0在2.0发布后不到一年就发布了,现在是3.1;像这样频繁的更改可能会妨碍文档编制,即书籍很快就会过时,并且在将2.0游戏升级到3.0游戏时,许多东西会损坏
  • 截至2014年

优点:

  • 易于开始并创建可见的内容
  • 跨平台
  • 很多开源游戏都可以用来检查源码
  • Python语言的优点(灵活性、动态类型、字符串/数组/元组等)
缺点:

  • 性能智能不能扩展到非常大的游戏(业余游戏开发很少如此)
  • 主要适用于2D,但也可以使用3D
  • 难以作为封闭源分发
SDL也可以作为优点和/或缺点插入。

优点:

  • 低难度
  • 跨平台
  • 默认情况下OpenGL加速图形
  • 易于添加的进一步OpenGL图形增强功能
  • Python语言
缺点:

  • 比pygame更不知名
  • 游戏“循环”有点不合常规
  • 高级图形和最大化性能所需的OpenGL知识

专业人士

  • 使用Java;托管内存,在许多成熟的IDE(Eclipse、NetBeans等)中高度支持,高度可移植
  • 良好的混合和高水平和低水平
  • 现代三维场景图
  • 建立在上面,一个非常成熟和运作良好的游戏库
  • 非常轻;不会增加很多开销
  • 以多种格式加载内置三维模型
  • 内置基于现代节点的三维场景图
  • 易于使用
  • 开源;不断发展和改进
  • 包括剔除、碰撞检查等
  • 具有保存和读取自身超紧凑、超快速二进制模型格式的选项
缺点

    使用java,因此编译JIT,因此可以比C++和其他选项慢一些。
  • 还没有在许多商业应用程序中使用过(因此也没有得到“验证”)
  • 没有任何类型的附加编辑器,一切都必须在纯代码中完成
  • 很难做2D游戏(你可以试试)
刚开始在业余游戏开发

在尝试自己的框架之前,您应该编写一些游戏,否则您将不知道要在其中放入什么以及如何编写它。你最终会无休止地重写它以“把它做好”,而实际上有很多好的(和坏的)方法,这取决于它的用途

“框架”也可能是一种痛苦,因为它们提供了问题的部分解决方案。例如。