我最近的个人项目游戏都是用“纯”C语言开发的。解释为什么这样做可能很有趣。警告:即将出现一大堆枯燥的编程语言观点。我需要什么样的编程语言有些条件是没有商量余地的。首先,语言必须可靠。我不能花时间处理不是我的错的错误。我的许多游戏都是为Flash开发的,它现在快要死了。我不想花时间把旧游戏移植到新平台上,我想做新游戏。我需要一个可以信任一段时间的平台。同样,我想避免将自己束缚在特定的操作系统上,理想情况下我希望可以选择为游戏机开发。因此,编程语言的可移植性以及良好的可移植库支持很重要。我理想的编程语言在我想要但不是必需的清单上,简单是最重要的。我发现查找语言特性和各种古怪的“聪明”API很烦人。我想精通一种理想的语言,然后再也不必查找任何东西。处理错误是一种巨大的能量消耗。我想要尽可能少的错误,所以我需要严格的类型检查、强烈的警告信息和静态代码分析。我希望bug更容易找到,所以我需要好的调试器和动态分析。我对高清现实不感兴趣,但我仍然对性能感兴趣。拥有更多可用周期可以拓宽工作范围。如果您不忠于自己,探索现代强大计算机的可能影响会特别有趣。此外,我更关心编译器的速度。我不是禅师,多等10秒就浪费了。更重要的是,等待打断了我的工作流程,滚动浏览Twitter才发现5分钟或更长时间已经过去了。我不是一个虔诚的OOP用户,虽然我职业生涯的大部分时间都花在处理类和对象上,但我花的时间越多,我就越不理解为什么代码和数据如此紧密地耦合。我需要将数据作为数据处理并编写最适合特定情况的代码。AlternativeC++仍然是最常用的游戏开发语言,而且并非毫无意义。我仍然将它用于几乎所有合同项目,但我真的不喜欢它。C++满足了我的需求,但严重挫败了我真正的需求,这些需求极其复杂。尽管有很好的工具,但仍然很容易产生各种隐蔽的错误。与C相比,它的编译速度也较慢。它的性能还不错,并且提供了C语言所没有的特性。但这些并不是我真正想要的功能,而且它们的成本很高。C#和Java有类似的问题。它们冗长而复杂,但我需要一个简洁明了的替代方案。他们都为将程序员发展为我强烈反对的OOP风格做了很多工作。通过设计,大多数高级语言往往会隐藏复杂性,而不会真正阻止它搞砸。我非常喜欢Go语言,在很多方面它是C语言的重生。我很想使用它,但有很多障碍阻碍了我。停止世界的垃圾回收是游戏中的一大痛点,暂停不是一件可以接受的事情。游戏的库支持也很差,虽然包装C库并不麻烦,但仍有很多工作要做。向Web开发中添加功能固然很棒,但快速变化的开发环境可能会令人恐惧。尤其是Flash的死亡让我感到害怕。我真的不喜欢JavaScript,它太宽容了,我很惊讶人们用它开发了多少代码。但我没有兴趣尝试。Haxe看起来比大多数竞争对手更有前途。如果我再次进行Web开发,我可能会挖掘更多。它有一些不错的库支持。我有点担心它相对年轻,会持续吗?目前我没有太多要说的,我只是触及表面。有人会说,还不如造个轮子,写自己的语言,自己真正想用的语言。我很欣赏这个想法,有时我也想这样做。但是放弃所有现有的库支持并全权负责未来的兼容性实在是太具有挑战性了。归根结底,我宁愿制作游戏也不愿实现编程语言。为什么C仍然是我的首选C很危险,但很可靠。一把非常锋利的刀可以切手指,也可以切蔬菜,但它是如此简单,学会谨慎使用它并不难。它很快,我想不出在编译时有什么比这更快的了。它几乎可以在任何东西上运行,而且通常更容易。很难想象它无法处理的情况。库和工具支持强大且持续。我有些悲伤地说这句话,但这仍然是我的语言。我绝对不是说“你也应该使用C”。我真的很感激这里的偏好非常具体和不寻常。我写的“纯”C代码比大多数人都多,这当然是我的一部分安慰。对,就是那样:-)
