一位程序员如何花20年编写700,000行代码的游戏?


矮人要塞(Dwarf Fortress)是一款免费游戏,可以随机生成的幻想世界中扮演冒险家或充满矮人的堡垒。这一切都发生在一个 ASCII 界面中。
整个游戏是开发者 Tarn Adams(又名 Toady One)的产品,他自 2002 年以来一直在 Dwarf Fortress 工作。前四年它是一个兼职项目,但自 2006 年以来一直是全职项目。他自己编写所有代码,尽管他的兄弟帮助设计并根据游戏创建故事。到目前为止,他依靠捐款来维持生计,但他目前正在开发具有像素图形和改进后的用户界面的版本,可在 Steam 上购买。 
下面是他的开发经验分享:
DF 是 C 和 C++ 的某种组合,不是以某种标准的服从方式,而是随着时间的推移而产生的混乱。自 MSVC 6 以来,我一直在使用 Microsoft Visual Studio,但现在我使用的是 Visual Studio 社区的某个版本。 
使用 OpenGL 和 SDL 来处理引擎问题。
所有这一切在项目过程中一直保持不变,只是几年后引入了 SDL,因此我们可以进行移植。在游戏的机制方面,我没有使用很多外部库,但我偶尔会使用一些随机数生成器。
 
问:开发一个项目这么长时间有什么挑战?你认为这更容易自己做吗?也就是说,因为你写了每一行,是不是更容易维护和改变?
答:很容易忘记东西!使用搜索,我们有多达 711,000 行,所以现在不可能把它全部记在我的脑海里。我尝试一致且令人难忘地命名我的变量和对象,并在周围留下足够的注释以提醒自己当我到达某个代码点时发生了什么。有时,当我去重温我十年未接触过的游戏的某个部分时,需要多次搜索才能找到我想要拉扯的确切线索,这种情况经常发生。
关于自己做事相对容易,当然对于没有大型多人项目工作经验的我来说,这是要走的路!没有任何以团队为导向或官僚主义。
 
问:您必须进行的最大重构/更改是什么?
答:有一些重构持续了几个月,重做某些数据结构等等,虽然我不确定这里有什么是严格的重构,因为总是有机会同时推动机制向前发展,这样做是有意义的,这样使得代码知识变得新鲜。 
使物品item系统多态最终是一个错误,但这是一个很大的错误。
 
有兴趣点击标题