我真是个不一样的老顽固。我最近一个人完成的所有游戏项目都是完全用C编写的。当然以前没有人这样做过,所以我认为有必要解释一下我为什么这样做。无聊的编程语言视图来了!好吧,我已经警告过你了。我们需要从语言中获得的某些东西是毋庸置疑的。首先,它必须值得信赖。我不能花时间修复不是我造成的错误。以前很多游戏都是用flash写的,现在flash面临绝迹。我也不想花不必要的时间把老游戏移植到新平台上,我想要的是做新游戏。所以我需要一个可以随着时间的推移自信地使用的平台。此外,我想避免将自己锁定在特定的操作系统中。理想情况下,我希望我可以拥有一个开发控制台。所以选择编程语言最重要的是它是可移植的,并且有可移植的库支持。从我们对语言的看法来看,我所追求的最重要但并非必不可少的是它的简单性。我发现查找语言特性和它所拥有的聪明而古怪的API非常累人!理想的语言应该是——这些东西不用查就可以全部记住。另外,处理这些错误肯定会耗尽您的创造力。所以我想要一个强类型的,强大的错误信息和静态代码分析来减少错误的发生。我也想要一个好的调试器和动态分析,让我更容易找到错误。我不在乎它是否强大,但至少它有效。如果您不追求真实感,可以使用功能强大的现代计算机充分探索它。我什至会关心编译器的速度。我不是一个非常能集中注意力的禅师。等十几秒对我来说是一种浪费,但更重要的是,它打破了我思考的节奏。我不追求面向对象(OOP)。我花了太多时间管理类和对象,我发现花费的时间更多,我不太明白为什么代码和数据要严格结合。我想操纵数据并编写适合特定情况的代码。无缘无故,替代C++仍然是编写游戏最普遍的语言。我用它写了很多项目,但我真的不太喜欢它。C++涵盖了我所需要的,但不是我想要的。太复杂了!有些工具虽然很好,但是很容易出bug。与C相比,C++的编译速度非常慢。但即使它具有高性能和一些C所没有的特性,我也不在乎它有没有。C#和Java有一些共同的问题。他们是冗长复杂的怪物,我需要的是简单明了的东西。它们都迫使程序员以面向对象的编程风格思考,这完全不利于我。作为一种高级语言,它们应该有隐藏其复杂性的倾向。我比我更喜欢围棋。在很多方面它是对C的重新开发,我会选择使用Go,但它也有一个很大的问题使我无法使用它。使用停止世界的方法来实现垃圾收集算法对于游戏来说是一件令人讨厌的事情。游戏库支持也有点弱,虽然可以用C库,但会增加工作量。这足以让我质疑它的长期用途。虽然它很好地服务于网络,但与此同时,这具有可怕的快速移动环境的性质。这可有点flash消亡的意思了。然后我想说我真的真的不喜欢javascript,它太松散和模糊了,我很惊讶有人可以用软件编写它的一大块。我根本没有丝毫尝试的兴趣。Haxe感觉比其他语言更有前途。如果我也用网络做点什么,我会选择它。它有很好的图书馆支持。有点担心是不是不成熟,能不能长久。好吧,我无话可说。JonathanBlow正在编写他自己的语言,一种他想使用的语言。我很羡慕,有时也想着做。但仔细想想,放弃所有现有库支持并为未来的兼容性负责的需要实在是太多了。这太难了。当本质问题是这样的时候,我宁愿做一个游戏。为什么C是我的***选择C既危险又可靠。就像一把锋利的刀,它可以割手指,也可以切蔬菜,但学会用起来并不难。它编译速度如此之快,我无法想象有什么比这更快的了。它也可以在任何地方运行,通常很轻松。我想不出它不会像这样工作的时间。库和工具支持强大且不断更新。我想很悲惨地告诉你,这是我的语言。我绝对不会说“嘿,你也应该使用C”,我完全支持每个人都有不同的个人喜好和特质。我只想说我写的C代码比我用任何其他语言写的都多,而且我对此很满意。哦好吧,就是这样:-)翻译链接:http://www.codeceo.com/article/why-i-write-games-in-c.html英文原文:WhyIWriteGamesinC(是的,C)
