游戏开发者詹姆斯·帕顿在推特上谈到游戏代码时,如此写道:「基本上我参与开发过的每款游戏在最后阶段都是这么硬凑出来的,然后我们就只能祈祷这个随时会崩溃的拼凑品能勉勉强强粘合在一起。」
基本上我问过的每一个游戏开发者都说过类似的话
游戏开发者詹姆斯·辛普森在往来的邮件中写道:「游戏不像寻常的软件,必须要多个不同的模块成功协同运作才能让这个复杂的大项目跑起来,而很多时候因为时间有限,开发者必须要牺牲个人时间来换取成果。我知道很多开发者会使出浑身解数来写出完美的代码,但通过一些开源项目,我们能看到其实就算代码不够完美,你依然能让项目跑起来。」
开源后的《弹弹跳跳闪避人》由于其无比混乱的代码而引起了大量的讨论。在游戏中,玩家此刻是该看过场动画、还是该进行对话?一般来说,此刻的游戏代码中会对这些情况做出判断。通常这些功能性代码会被分开写在不同的地方,例如来实现跳跃功能的代码会与实现小游戏功能的代码分开放置。但在《弹弹跳跳闪避人》中却不是这样的,特里把十几个决定游戏状态的代码全部写到了一起,这块地方既有让游戏进入过场动画的代码,同时也夹杂着设定游戏模式以及游戏主菜单的代码。
曾经开发过《口袋桌球》以及《超糟糕国际象棋》等游戏的扎克·盖奇,对于特里的代码向 Polygon 说道:「这说明了一件事:特里在刚开始制作这款游戏时不知道会遇到哪些情况,他没去想这款游戏里会有多少过场动画,没考虑主菜单应该以何种型式运作,更没想到随着开发的进行他会遇到很多奇怪的状况。」
如果当时的特里想要提高代码质量的话,他或许该先停下工作,对代码进行重构以便让整个项目的代码更加整洁,合理。但他并没有这样,相反,他选择继续进行下去,先把代码跑起来再说,结果就写出了一个巨大的代码块,一个块里处理了成百上千的东西。
「特里没有停下来重构代码,他的做法就是『管他的,要是遇到什么情况我就在这个巨长无比的语句中再加一条好了。』这种情况很常见,在游戏将要发布时采取这种权宜之计很有必要。」
盖奇对这种情况见怪不怪,他告诉 Polygon,在他制作的热门游戏《荒诞钓鱼》中,因为写得太烂,他都完全不知道这些代码是怎么跑起来的。团队中的其它成员也都不是很明白。
但结果呢?《荒诞钓鱼》仍然大受好评,在短短几个月内赚了近百万美元。显然,开发者们的重心应该放在那些会破坏游戏的 bug 和那些会影响玩家游戏体验的东西上,用他们的话来说就是:完美主义有害无益。
盖奇说道:「开发过程中总是会遇到意料之外的状况,而停下脚步去重构代码则意味着这段时间内无法制作任何新东西。」
所以尽管《弹弹跳跳闪避人》的开源在社交媒体上引发了轩然大波,但特里也只是一笑而过,抱着一种幽默的心态看待此事。
他在开源代码的博客中写道:「我能说啥呢?那时的我很年轻,比起尽善尽美游戏代码,我对看得见玩得到的东西更感兴趣。或许《弹弹跳跳闪避人》开源最棒的一点就在于这个项目让我们知道:即便你不是专业的程序员,仍然可以搞出些东西。」
翻译:柳生非情剑 编辑:酸菜鱼
2022-02-25
2022-02-25
2022-03-13
2020-11-12
2020-12-10
2020-12-10
2021-09-26
2021-05-07
2021-02-05
2020-11-13
2020-07-17
2020-11-04
2020-04-25
2020-12-10
2019-09-11
2020-04-25
2020-04-23
2020-06-19
2019-09-25
2019-11-06
回复