JonathanBlow是著名独立解密游戏《Braid》和《TheWitness》的作者

JonathanBlow是著名独立解密游戏《Braid》和《TheWitness》的作者

c++游戏开发程序员_c++开发游戏需要学什么_c++游戏开发需要什么知识

在 2014 年的某个时候,乔纳森·布洛 (Jonathan Blow) 正在制作《证人》,当时他突然想到打代码可能是一种悲惨的经历。

为什么?用Blow的话来说,“这是因为C++是一种”非常糟糕和可怕的语言”。"

最近,他在Gamelab Barcelona做了一个演讲,谈到了他认为他常用的编程语言的问题音乐音效,以及他希望如何通过他自己开发的替代品Jai来实现他想要的开发目标。

根据 Blow 的说法,C++的主要缺点是它是一个非常复杂和分层的生态系统,在解决不同问题的过程中变得越来越复杂;层数越多,堆栈越高,它就越不稳定,也就越难理解。

c++游戏开发程序员_c++开发游戏需要学什么_c++游戏开发需要什么知识

乔纳森·布洛

“人们认为编程语言应该是一个复杂的生态系统,”Blow说。“我不想花一年时间研究生态系统,然后在那里放一个3D模型。

Blow 开发 Jai 的目标是做三件事:

目前,Jai的生产力增长了约15%,但Blow认为随着时间的推移,它可能会提高到50%-80%。

如果他对语言的预测是正确的,那么重塑独立和 3A 级游戏开发的时候就到了。

c++开发游戏需要学什么_c++游戏开发需要什么知识_c++游戏开发程序员

《证人》游戏截图

C++的混乱

C++诞生于20世纪70年代,基于C语言。几十年来,C++发生了巨大的变化,C++变得越来越混乱,“历史遗迹和古怪”的定义层层阻碍着它。

“如果你是

刚开始使用 C++,您正在学习的很多东西可能是零散的。C++在某种程度上是一种强大的语言,因为它是我们用来制作游戏的关键语言。但现在,它使我们的流程变得更加困难。"

随着项目变得越来越大,需要更长的时间来修复更改,编程的本质意味着大量时间都花在了“繁琐的工作”上。

于是布洛开始思考是否有人会为此做点什么。但没过多久,他就拒绝了这个荒谬的想法,毕竟每个人都有很多不同的选择。作为游戏开发者,Blow 只使用 C++ 作为开发游戏的语言,而其他开发者可以选择其他编程语言。

很多人可能会说,改变语言发展也是可能的。但现实情况是,该公司拥有非常庞大的游戏引擎,更换成本非常高。几年前,像《刺客信条》这样的游戏有 1000 万行源代码,现在它可能更大。

正是这种“现状偏见”在行业中造成了惯性,开发人员在已经拥有一套完整的任务后不会重写所有系统,无论过程多么繁琐。现在很多人都抱着失败主义的态度。“我其实也有这种感觉,耳边那个小小的现实主义声音告诉我,我无法改变这一点。布洛说。但不知为何,他决定问:真的没有办法改变吗?

“我越是质疑它c++游戏开发程序员,我就越是说,'它实际上是可以改变的。我想我看到了我们在这里正在做的具体事情。一旦我知道有办法改变它,我突然对我的日常工作感到非常满意,因为突然有了一条出路。"

到目前为止,Blow 和他的团队正在深入开发 The Witness,所以 Jai 仍然是一个副业,仍然是一个开发者。然而,在接下来的几年里,这是 Blow 和他在 Thekla 的团队的主要关注点。他目前有一个未宣布的游戏项目,他说这个项目是用Jai来“测试关于现实的想法”而构建的。

Jai是现实还是梦想?

在许多方面,Blow 在开发新的编程语言方面具有独特的优势。他独立于大型工作室和出版商,参与了非常长的项目(《证人》花了大约七年时间),并且是一位经验丰富的程序员。

根据 Blow 的说法,他的

作为设计师的经验对于开发可用于构建游戏的语言也至关重要,并希望Jai能够避免C++的许多陷阱。与此同时,布洛意识到Jai也面临着成为“一堆废墟”的危险。

“你可以把所有这些时间花在设计你认为更好的东西上,但最终得到相同甚至更糟的结果。这可能会发生。但这就是我作为设计师的经验所带来的。

我设计的游戏又大又复杂c++游戏开发程序员,你可以设计相同的编程语言,同时着眼于美学。“首先3D交通工具,尽量保持简单,但其次,当你增加复杂性时(因为总会有更复杂的需求),你必须考虑这种复杂性会带来多少好处?(对玩家来说)理解的难易程度是我们在游戏设计中一直考虑的问题。如果有人走进这个房间......他们会明白发生了什么吗?我们如何帮助他们理解?

“这些技能可以转化为编程语言设计。我不认为这样说有太大的争议,大多数时候,当编程语言被设计出来时,它们并不是由我们的设计师设计的。它们是由试图解决技术问题的程序员设置的。"

最终,Blow 希望 Jai 能够用强大的功能编写最大的 AAA 游戏,但现在他正在为他的新游戏做一个“中间桥梁”。

“这是一款真正的游戏,我们只是选择了一个更容易做的设计。一旦完成并且可以运行,我们就可以扩展图形引擎,依此类推。"

虽然 Jai 目前尚未开源,但 Blow 希望在今年年底前完成封闭测试。它是否能够实现其潜力或实现个人希望可能还有很长的路要走。

C++真的是一种“糟糕的编程语言”吗?

不光是Jonathan Blow说,早年Linux之父Linus Torvalds也表明,C++是一种糟糕的语言,更可怕的是很多不合格的程序员都在使用它。因此,如果撇开企业项目的需求不谈,C++本身真的是一种“糟糕的编程语言”吗?对此,不少网友表示:

你觉得怎么样?

参考:

“征集论文”。

秉承“与千万技术人员共同成长”的理念“,

CSDN公众号不仅利用”极客头条“和”Talks“栏目,第一时间从技术人员的独特视角来描述技术人员关心的行业内关键事件,还设有”技术头条“栏目,深度解读行业热点技术和场景应用, 让所有开发者都能跟上技术潮流,保持警惕的技术意识,对行业趋势和技术有更全面的了解。

如果您有高质量的文章,或对行业热点事件和技术趋势的洞察,或对深度应用实践、场景解决方案等的新洞察,请联系CSDN投稿,联系方式:微信(guorui_1118,请备注投稿+姓名+公司职位),邮箱()。

文章来源:https://zhuanlan.zhihu.com/p/39487610