概括:
我可以在不重新发明轮子的情况下用 C 编写“厚客户端”游戏,还是应该硬着头皮使用一些库或 SDK?我是一个中等的 C 程序员,并且不害怕使用指针、数据结构、内存位置等。如果它能给我制作一个伟大的“厚客户端”游戏所需的控制权。但是,我正在考虑为了权力和控制而不是 易用性而避开高级语言和框架。
有时我对修补 2D 格斗/平台游戏作为一个副项目很感兴趣。我主要是一名具有 Python、Ruby 和 PHP 经验的 Linux 服务器端程序员。我知道其中一些语言有很好的框架,比如PyGame。我也知道人们在 Air 和 .NET 等方面取得的成功......但我有一些担忧:
- 性能:脚本语言是出了名的慢。如果我正在制作一款实时游戏,我希望它尽可能快。
- 庞大的二进制文件:使用 .NET 之类的框架或 Ruby 之类的脚本语言通常会导致您不需要的大型 CLR 或库。我想做的游戏会小而简单——我不希望它的CLR比游戏本身大!
- 额外的东西:老实说,我只是不喜欢继承一些大型游戏库的包袱,如果我能更好地围绕我自己的代码。
我问这个问题是因为我知道我很容易患上这里没有发明综合症。我一直想自己编程,我敢肯定这会浪费很多时间。然而,这对我来说非常有效——例如,我没有使用Rails(一个非常大的 Web 项目框架,其中包含一个 ORM 和 GUI 工具包),而是使用了一系列较小的 Ruby 工具,如rack和sequel组合在一起漂亮。
所以,我转向你,SO专家。我是不是太天真了?这是我的看法:
- 使用 C
- 缺点
- 可能会让我讨厌编程
- 重新发明轮子的高风险
- 需要很长时间以至于我失去兴趣的高风险
- 优点
- 久经考验 - 大多数 A-list 游戏都是用 C 语言完成的(今天仍然如此吗?)
- 对内存管理、速度、资产管理等的高度控制,我相信自己会学会处理这些
- 没有杂物
- 缺点
- 使用框架或 SDK
- 缺点
- 交付物过大的风险
- 在游戏开发的各个方面都依赖于原始库作者——如果没有我想要的功能怎么办?我必须自己编程,这还不错,但首先部分违背了使用高级框架的目的
- 性能问题的高风险
- 优点
- 更快的开发时间
- 可能更容易维护
- 没有浪费时间重新发明通用范式
- 缺点
我还能在这个列表中添加什么?这是一个纯粹的判断电话,还是有人可以为我达成交易?欢迎提出书籍建议。