如果要说游戏史上哪款作品最能经得起时间的考验,那《DOOM》绝对算得上榜单常客。
这款1993年发布的FPS(第一人称射击)开山之作,不仅让玩家第一次感受到了“枪在手,天下我有”的快感,还对整个游戏行业的文化和技术发展影响深远。
即便现在已经过去了近32年,依然有无数玩家和开发者在用各种方式重温它的魅力,比如玩mod、改代码,甚至让它在冰箱、打印机、甚至计算器上运行。
不过,就算是再经典的游戏,也免不了有一些“历史遗留问题”。
最近,一名极客就通过一个“丧心病狂”的实验,验证了《DOOM》代码里的一个隐藏Bug。
他把游戏一直挂着跑了整整两年半,直到它自己崩溃。
今天,我们就来聊聊这个实验背后的故事,为什么会发生,以及它带来的启发。
这位极客名叫Minki,他偶然间在网上看到一篇分析《DOOM》引擎的技术文章,其中提到一个很少有人注意到的Bug。
这是个记录游戏内计时的变量叫 gametic,它每秒会以固定35次的节奏递增,用来追踪游戏时间流逝。
按理说,这个变量在正常游戏中几乎不会有问题,但因为它是用32位有符号整数表示的,理论上如果一直不停累加总会触发“整数溢出”。
简单解释一下啥叫“整数溢出”:32位有符号整数的值域是从 -2,147,483,647 到 +2,147,483,647,一旦超过这个范围,就会从最大值“绕回”到最小值,比如从2,147,483,647直接跳到-2,147,483,647。
虽然这种情况听上去挺可怕,但在1993年开发《DOOM》时,John Carmack(游戏的主程序员)估计也觉得无所谓。
毕竟谁会真的让游戏开够二十多亿次计数呢?这在正常情况下根本不可能发生。
不过,极客的好奇心是无穷的。
Minki一琢磨,这个Bug看似不可能触发,但如果故意让游戏一直开着呢?为了验证这个大胆的想法,他决定做个实验:找台老硬件,让《DOOM》跑到崩溃为止。
《DOOM》作为一款经典游戏,能在几十年后仍被玩家和开发者津津乐道,靠的不仅是它的游戏性,更是它在技术和文化上的深远影响。
当然,经典之所以经典,并不是因为它完美无缺,而是即使有Bug,也能被玩出花样。
所以,Minki的实验也算是一种另类的致敬:通过这种方式,让我们重新审视那个时代的技术局限和游戏魅力。
而对于普通玩家来说,实验的结论很简单——别把游戏开着两年不关,不然可能真的会崩溃。
更新时间:2025-09-24
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-=date("Y",time());?> All Rights Reserved. Powered By 61893.com 闽ICP备11008920号
闽公网安备35020302035593号