id Software在1997年圣诞节前两天发布了Doom引擎的源代码。从技术上讲,他们发布了Linux Doom 1.10,与1993年Doom第一集共享软件的原始代码略有不同。
我最近对Doom感到好奇。 首先,我找到了Visual Doom AI竞赛,并决定在2018年获胜。然后,我找到了一系列历史性的死亡竞赛,并制作了有关它们的视频。 之后,我以兴旺的mod场景吸引到友好的社区。 我尝试从Eevee的出色指南中获得一个关卡。 在过去的几天里,我一直在学习底层引擎的实际工作方式。
我现在还不想花时间分析这些。 很难从原始代码行数中获得很多意义,但是这里有一些初步的注意事项:
Mocha Doom是唯一实际以另一种语言(Java)重新实现了Doom引擎的源端口。 您在浏览器,Android或iPhone上听说过的所有版本(请查看有关iOS版本btw的顶级代码评论)都广泛使用C的交叉编译。
怀疑其特殊地位? Mocha的创建者制作了这个极为详尽的FAQ,以说服您。
我是《巧克力毁灭战士》的忠实粉丝。 但是,对于一个港口的主要目标是“准确地再现1990年代的毁灭战士的经历”,肯定会有很多代码。 迫不及待地想找出原因。
更新 :《世界末日世界》论坛上的Linguica 刚刚指出 ,我的计数中包括了Chocolate Heretic, Chocox Hexen和Chocolate Strife。 实际上是56,207 SLOC,而不是192,372。 令人印象深刻的小!
许多代码库都包含了批发的整个大型库(例如curl,zlib),因此我将其删除。 否则,我们将看到一些相当大的数字。 我已经对《雷神之锤2》和《雷神之锤3》做了同样的事情,但是我要在一个小时内去露营,需要收拾行李。 如果有人想输入数字,我会很乐意更新帖子🙂
是的
我想尝试在一些潜在的参考实现上运行一些更复杂的静态分析工具。 我也对1995年的3DO端口及其与Linux Doom有何不同感到非常好奇。