Frameworks 游戏编程-如何避免重新发明轮子

Frameworks 游戏编程-如何避免重新发明轮子,frameworks,choice,Frameworks,Choice,总结: 我可以编写一个“厚 C语言中的“客户端”游戏 车轮,还是我应该咬一口 bullet并使用一些库或SDK? 我是一个温和的C程序员,不是 害怕使用指针、数据 结构、内存位置等,如有必要 这会让我控制自己 做一个伟大的“厚客户端”游戏。 然而,我正在考虑回避 面向对象的高级语言和框架 为了权力和控制,而不是 易用性 我有兴趣在某个时候将2D格斗/平台游戏作为一个辅助项目进行修补。我主要是一名Linux服务器端程序员,拥有Python、Ruby和PHP方面的经验。我知道这些语言中有一些非常优秀

总结:

我可以编写一个“厚 C语言中的“客户端”游戏 车轮,还是我应该咬一口 bullet并使用一些库或SDK? 我是一个温和的C程序员,不是 害怕使用指针、数据 结构、内存位置等,如有必要 这会让我控制自己 做一个伟大的“厚客户端”游戏。 然而,我正在考虑回避 面向对象的高级语言和框架 为了权力和控制,而不是 易用性

我有兴趣在某个时候将2D格斗/平台游戏作为一个辅助项目进行修补。我主要是一名Linux服务器端程序员,拥有Python、Ruby和PHP方面的经验。我知道这些语言中有一些非常优秀的框架,比如。我也知道人们在Air和.NET等方面取得的成功。。。但我有一些担心:

  • 性能:脚本语言的速度是出了名的慢。如果我正在制作一个实时游戏,我希望它尽可能快
  • 庞大的二进制文件:使用.NET之类的框架或Ruby之类的脚本语言通常会产生您不需要的大型CLR或库。我想做的游戏将是小而简单的——我不希望它的CLR比游戏本身大
  • 额外内容:老实说,如果我能更好地理解自己的代码,我就是不喜欢继承一些大型游戏库的包袱
我问这个问题是因为我知道我很容易患上非发明综合症。我总是想自己编程,而且我相信这会浪费很多时间。然而,这对我来说非常常见——例如,我没有使用(一个非常大的web项目框架,内置了ORM和GUI工具包),而是使用了一系列较小的Ruby工具,如和,它们完美地结合在一起

所以,我转向你们,专家们。我是不是太天真了?以下是我的看法:

  • 使用C
    • 缺点
      • 可能会让我讨厌编程
      • 重塑车轮的高风险
      • 花这么长时间的风险很高,我会失去兴趣
    • 专业人士
      • 久经考验&正确-大多数A-list游戏都是用C语言完成的(这在今天仍然是正确的吗?)
      • 对内存管理、速度、资产管理等的高度控制,我相信自己能够学会处理这些问题
      • 没有积垢
  • 使用框架或SDK
    • 缺点
      • 可交付成果过大的风险
      • 游戏开发的方方面面都依赖于原始库作者——如果没有我想要的功能怎么办?我必须自己编程,这还不错,但首先部分地违背了使用高级框架的目的
      • 性能问题的高风险
    • 专业人士
      • 更快的开发时间
      • 可能更容易维护
      • 没有时间浪费在重新创造共同范式上

我还可以在这个列表中添加什么?这是纯粹的判断,还是有人能帮我敲定这笔交易?欢迎阅读建议。

您想在游戏机上玩游戏吗?你想把它作为一种学习经历吗?您希望最终产品是跨平台的吗?到目前为止,您已经查阅了哪些图书馆

对于2d游戏,我不认为性能会有问题,我建议你使用一些能在最短时间内让你在屏幕上看到结果的东西。如果您有很多Python方面的经验,那么pyGame是一个不错的选择


如果你打算将来做一些3d游戏,我建议你看看食人魔()。它是一个跨平台的3d图形引擎,可以抽象出图形API。然而,对于一流的项目来说,它可能是多余的。

< P>当今的A-列表游戏最常用的实现语言是C++,很多游戏都嵌入了脚本语言(如Python或Lua)用于游戏事件脚本。 你用来写游戏的工具与你写游戏的理由和你的需求有很大关系。实际上,这与任何其他编程项目都没有什么不同。如果这是一个辅助项目,而你是自己做的,那么只有你才能评估你需要在这方面花费多少时间,以及你的性能要求是什么

一般来说,今天的PC机足够快,可以运行用脚本语言编写的2D平台。使用脚本语言将使您能够更快地创建原型,并有更多时间调整游戏性。同样,这与任何其他项目没有什么不同

<>如果你和C++一起,你的理由不必比“因为我想”更精细,我建议你看一下SDL的渲染和音频支持。这会让事情变得容易一点

<>如果你想学习底层技术(DirectX,或者你想用一些变态的原因来编写优化的BLTET),那么就一定要使用C++ +< /P>
说到这里,我要提醒您不要过早优化。对于2D游戏,您最好先使用Python和PyGame。如果这些工具在现代个人电脑上被证明是不合适的,我会感到惊讶。

今天,我相信你可以安全地忽略性能问题,除非你特别尝试做一些超越极限的事情。比如说,如果你的游戏并不比《地震II》复杂,那么你应该选择能让你在时间内发挥最大作用的工具和库

我为什么选择《地震2》?因为正在运行,所以它在当前计算机上以超过可接受的帧速率与软件渲染器一起运行。(如果您愿意,可以比较一下MAME,它以可接受的速率模拟多处理器和图形硬件)

我非常确定大多数模式