上周,
Dicey Dungeons的创建者Terry Cavana通过
发布其源代码 [在Habré上
翻译 ]庆祝了他的长期游戏
VVVVVV十周年。 简单解释一下,这意味着任何人现在都可以看到游戏的创建方式,因为可以仔细研究每一行代码。
这种
情况很少发生 ,因此发布此信息的价值很高。 人们可以从中学习或改进代码。 对
VVVVVV源代码的一些评论很糟糕-研究人员发现可以编写得更好的东西。 也许Cavana预见到了这一点-在他宣布代码发布的帖子中,特里承认:“从技术上讲,对
VVVVVV游戏的考虑不是很深! 即使按照独立自学的开发人员的标准,代码也相当混乱。”
人们误以为编写代码本身就是优美而周到的,因为最终,这是一种编写逻辑,不是吗? 难怪它被称为计算机科学? 但实际上,一切都更加复杂。 视频游戏开发故事经常表明,由于游戏中包含从设计到声音的众多元素,因此往往
只有在最后时刻才将它们
组装成一个整体 。
“有个游戏的名字几乎没有代码,没有愚蠢的架构,几乎不可能修复错误,拐杖堆积在自行车上。 它们被称为“发行游戏”。开发人员詹姆斯·帕顿(James Patton)在
Twitter上对游戏代码的
讨论中写道:“我从事的几乎所有游戏都是在粪便和防止整个建筑物被毁的棍子发布的那一刻
发布的 。”
与我交谈的几乎每个开发人员都说同样的话。
游戏开发商詹姆斯·辛普森(James Simpson)在一封信中写道:“游戏不是普通的软件,而是一种复杂的机制,其成功发行需要许多学科的知识,而且,为了赶上最后期限,必须做出牺牲。” “我知道许多开发人员正在努力使其代码完美。 这个开放源代码示例表明,您可以成功发布游戏,而不必达到卓越水平。”
就
VVVVVV而言,广泛的讨论是由源代码的单独片段引起的,该片段具有非常混乱的结构。 实际上,它有助于确定游戏的状态:例如在过场动画或对话的一部分中。 在正常情况下,这些状态中的许多状态都被单独分组-迷你游戏的代码与跳跃的机制分开编写,但在本游戏中不是这样。 例如,在Cavan代码中,与过场动画相关的游戏状态分散在程序的不同部分,并与诸如游戏模式和主菜单之类的元素混合在一起。
如今,VVVVVVV视频游戏已移至#OpenSource,有人发现代码中有数百个开关的构造。 #programming这既美丽又令人恶心。曾在
Pocket-Run Pool和
Really Bad Chess等手机游戏上工作的Zack Gage为我们拆除了这个臭名昭著的开关设计,他说:“这是Terry在开始编写游戏时可能不知道的一个很好的例子。 “其中将有多少过场动画,主菜单将如何工作,以及会出现多少个奇怪的潜在奇怪模式最终状态。”
如果Cavana希望使代码完美无缺,则可以停止进行此类更改并更好地组织代码。 但是,相反,他决定继续前进并执行发生的事情,迫使一段巨大的代码来管理数百个不同的选项。
“ Terry可能没有想到要退后一步,而是安排所有事情,比如“是的,每当我需要新的东西时,我都会在巨大的switch语句中添加状态。” 这是100%的正常现象,对于发布游戏来说是必不可少的。”
Gage非常接近这种思维方式-他告诉我们,回顾
可笑钓鱼游戏的发展,“从字面上看,它不懂代码是如何工作的,因为代码编写得很差。” 甚至其他团队成员也不完全了解他们的游戏如何运作。
但是你知道吗?
可笑钓鱼仍然获得了多个奖项,并
在几个月的时间里获得了近100万美元 。 显然,开发人员必须消除破坏游戏的错误,以及消除妨碍玩家玩游戏的所有因素,但正如他们所说,最好的是善的敌人。
“计划外的零件将始终出现,如果您回去组织代码,则意味着您将浪费时间来编写新代码,添加新功能或绘画艺术,” Gage说。
但是,尽管游戏
VVVVVV引起了社交网络上的所有贪婪,但Cavana似乎并没有因此而失去幽默感和笑话。
我在源代码VVVVVV中看到的每个可怕漏洞的每个屏幕截图只会使我变得更强大。“我不知道该说些什么?”他在一篇有关发布源代码的文章中写道。 “我还很年轻,在屏幕上创建某些东西比正确实现它更有趣。
VVVVVV源代码最好的一点是,它证明了即使您不是一个非常好的程序员,您也可以自己创建一些东西。”
游戏开发人员如何使用快速黑客解决问题的方法可以在翻译系列“视频游戏代码中的肮脏技巧”中找到:
游戏代码中的肮脏技巧开发人员了解游戏中最肮脏的软件技巧肮脏的特技和RAM肮脏的视频游戏开发人员的把戏