您现在的位置:主页 > 香港最快报码开奖结果 > 正文

为什么我选择用 C 编写游戏?牛牛高手论坛

文章来源:本站原创 发布时间:2019-10-06 点击数:

  “古老”的C++,仍然是当前编写游戏时最常用的语言,但是 C 为什么才是最适合的?

  我喜欢走不寻常路。最近我所有的个人项目游戏都是利用“最普通”的C语言编写的。所以,我觉得有必要解释一下为什么我选择用C编写游戏。

  有些事情是没有商量的余地的。首先,这种语言必须可靠。我可不愿花时间去处理那些不是我自己造成的错误。

  我的许多游戏都是用Flash编写的,现在Flash快要死了。我不想花时间将旧游戏移植到新平台,我想制作新游戏。我需要一个可以在很长一段时间都保持稳定的平台。

  同样,我也不想将自己绑定到特定的操作系统,而且理想的话,我希望该语言还可以为游戏机开发游戏。因此,我选择的编程语言必须拥有可移植性,这点很重要,而且拥有良好的可移植库支持。

  虽然不是必须条件,但我最想要的首先是简单性。我感觉查找语言功能和稀奇古怪的“聪明” API极其令人厌烦。我希望我可以记住这种理想的编程语言,而且再也不必查找任何东西。

  处理Bug会消耗大量脑细胞。我希望产生的bug越少越好,所以我希望这种语言能严格检查拼写,强烈的警告消息和静态代码分析。我希望很轻松就能发现bug,所以我想要良好的调试器和动态分析。

  我对实现高清并不感兴趣,但我却十分在意性能。节省下更多的CPU时钟周期,意味着你有更多的余地去尝试别的东西。如果你不追求高分辨率,那么探索现代功能强大的计算机的潜力会非常有趣。

  此外,我更加关心编译器的速度。我不是禅宗大师,对我来说等待10秒钟以上就是浪费时间,而且更重要的是,这会打乱我的节奏,我会情不自禁打开Twitter,一晃眼5分钟就过去了。

  我并不热衷于面向对象。我一生的大部分时间都在处理类和对象,但是花的时间越多,就越不明白为什么要如此严格地结合代码和数据。我想单独处理数据,然后再编写最符合特定情况的代码。

  C++仍然是当前编写游戏时最常用的语言,这并非没有道理。几乎我所有的签约工作中都使用了C++。但我非常不喜欢C++。

  C++可以满足必备的条件,但是严重不符合我所期望的一些条件。C++极其复杂。尽管C++有很多优秀的工具,但很容易制造出隐匿的bug。与C相比,C++的编译速度也较慢。虽然C++的性能很好,而且还提供了C所没有的功能,但这些都不是我想要的功能,而且因此付出的代价是高度的复杂性。

  C#和Java也有类似的问题。这两种语言都非常冗长且复杂,我想寻找一种简洁明了的编程语言。C#和Java都是面向对象的风格,而我却非常不喜欢面向对象。与大多数高级语言一样,这两种语言都倾向于隐藏复杂性,但实际上并不能减轻复杂性给我带来的困扰。

  我很喜欢Go,这种语言的很多方面都继承了C,而且还考虑到了自发布以来多年积攒的经验。我喜欢使用Go,但是Go也有一个重大问题。对编写游戏来说,“暂停一切”的垃圾回收是一个巨大的痛苦, “暂停一切”是我无法忍受的。此外,Go对游戏的库支持非常差,尽管你可以通过包装C库来解决这个问题,官方六开彩单双王无论是帮助人们吃上发芽糙米饭,“四川森普管材”董事长做客《信用中国救世网,但是这样做会增加很多工作量。而且Go的定位让我对其长期的发展充满了担忧。

  Go语言用来制作Web的东西也不错,但是感觉Go语言发展得太快。我真怕它像flash那样死掉了。牛牛高手论坛,此外,我真的不喜欢java,它太过于宽松,看到人们利用java编写大量软件,我由衷地感到惊讶。我自己没有兴趣尝试。

  感觉Haxe比其他编程语言更有前途。如果再做Web开发的话,我可能会深入研究一番。这种语言也有一些很好的库支持。但我担心Haxe过于年轻,还能持续发展多久?我不想对此妄加发表评论,毕竟我只是浅尝辄止。

  看到这里有人可能会说,这么挑剔干脆自己写一门编程语言吧。我很佩服创造出新编程语言的人,我自己常常也有这种想法。但我感觉放弃现有的库支持,并为将来的兼容性承担全部责任,这个担子有点过重了。而且这也是非常困难的,所以还是回归现实,我宁愿做游戏,也不愿创建新的编程语言。

  C很危险,但是很可靠。C就像一把锋利的刀,虽然有可能会划破手指,但也可以切菜,而且C非常简单,学会谨慎使用也非难事。

  C几乎可以在所有环境中运行,而且通常都比较容易。很难想象无法运行C的情况。

  我绝不是想鼓动每个人都来使用C。我在本文中所做的推荐针对非常具体且不寻常的情况。我已经编写了大量非常“普通”的C代码,而且我感觉使用C语言的时候最舒适。