中文字幕亚洲欧美日韩在线不卡,亚洲欧美日产综合在线网性色,思思久久精品6一本打道,综合视频中文字幕

    <sub id="dxmnt"><ol id="dxmnt"></ol></sub>

      1. 終于,我們可以在原版《DOOM》里運(yùn)行《DOOM》了

        更新時(shí)間:2022-07-16 15:10:47作者:佚名

        終于,我們可以在原版《DOOM》里運(yùn)行《DOOM》了


        距離在《DOOM》運(yùn)行的《DOOM》里玩《DOOM》也不遠(yuǎn)了。

        “你說的這個(gè)東西,他能不能運(yùn)行《DOOM》?”(Will it run Doom?)

        自1993年《DOOM》初代發(fā)售至今,人類一直在挑戰(zhàn)這個(gè)問題的極限,探索能夠運(yùn)行這部游戲的任何潛在媒介:數(shù)碼相機(jī),打印機(jī),智能冰箱,ATM取款機(jī),麥當(dāng)勞點(diǎn)餐機(jī),電子驗(yàn)孕棒,樂高積木,乃至沒有物理實(shí)體的《我的世界》和GIF動(dòng)圖……

        現(xiàn)在,與其問什么東西能運(yùn)行《DOOM》,不如問什么東西不能運(yùn)行《DOOM》。


        這種探索精神固然值得贊許,但也會(huì)讓我們好高騖遠(yuǎn),進(jìn)而忽略一個(gè)最基礎(chǔ)的、本源性的問題:《DOOM》游戲本身,能不能運(yùn)行《DOOM》?

        這個(gè)套娃問題已經(jīng)在改版的《DOOM》——GZDoom中得到了解答。早在2015年,就有玩家推出了在GZDoom里游玩初代《DOOM》的模組。


        圖源Youtube@TheZombieKiller

        GZDoom是一個(gè)經(jīng)過玩家爆改的特殊版本,基于初代游戲添加了大量擴(kuò)展功能,以及一部支持如命名腳本與函數(shù)等高級(jí)編程操作的改進(jìn)版編輯器。玩家們已經(jīng)試過在GZDoom里創(chuàng)建和還原各種各樣的游戲,重現(xiàn)出一部二十多年前的《DOOM》也不在話下。


        “毀滅戰(zhàn)士街機(jī)廳”

        圖源Youtube@RJbanshee21

        不過,GZDoom終歸是受過大量修改的版本,顯然不夠原教旨主義,不該是“用《DOOM》運(yùn)行《DOOM》”這一問題的終極答案。

        直到2022年7月11日,一位網(wǎng)名叫做Kgsws的技術(shù)宅,交上了一部更令人滿意的答卷。他在原汁原味的DOS版本《DOOM2》里,成功運(yùn)行了《DOOM2》。

        根據(jù)Kgsws在Youtube上傳的視頻,他在研究《DOOM2》源代碼的過程中,留意到了處處可見的“SpawnMapThing”命令。這一命令會(huì)根據(jù)預(yù)設(shè)的物件ID,在游戲的關(guān)卡/地圖中生成對(duì)應(yīng)的物件,如武器、敵人、升級(jí)道具、背景裝飾等。

        預(yù)設(shè)ID中的1至4號(hào),對(duì)應(yīng)著多人模式下的四名玩家。由于生成玩家的代碼觸發(fā)條件是“ID小于等于4”,這意味著物件ID可以是負(fù)數(shù)。


        生成負(fù)數(shù)ID所對(duì)應(yīng)的“不存在”物件,就會(huì)觸發(fā)Bug,覆蓋掉游戲運(yùn)行時(shí)內(nèi)存中的“狀態(tài)”一欄(State)。

        “狀態(tài)”會(huì)顯示一項(xiàng)物件正在播放的動(dòng)畫文件ID。舉個(gè)例子,一個(gè)敵人可能會(huì)故意閃爍吸引玩家注意,射擊手上的武器,或者被玩家擊殺開始播放死亡動(dòng)畫。至于應(yīng)該加載哪種動(dòng)畫,均由這個(gè)“狀態(tài)”ID對(duì)應(yīng)的文件所決定。


        主角奔跑的動(dòng)畫對(duì)應(yīng)ID150-153

        物件沒有實(shí)體模型,因此不必和動(dòng)畫文件匹配,只要修改內(nèi)存里的“狀態(tài)”,一個(gè)物件就有可能播放另一個(gè)物件的動(dòng)畫。


        夜視儀變成了主角

        動(dòng)畫的內(nèi)容也沒有作文件格式的強(qiáng)制要求,不一定非得是動(dòng)畫文件,完全能夠替換為一段可執(zhí)行的代碼或程序——比如另一部《DOOM》。

        Kgsws選擇了“巧克力版DOOM”(Chocolate Doom),這套開源版本的游戲,在保留DOS版原有代碼的基礎(chǔ)上,兼容現(xiàn)在的電腦操作系統(tǒng)。

        Kgsws又花了兩天時(shí)間,添加了大量視頻沒有提及的代碼細(xì)節(jié),利用原生編輯器制作了僅有一個(gè)房間的關(guān)卡,最終在房間的一面墻上成功映出了巧克力版,除了沒有聲音之外,游戲完美運(yùn)行,甚至支持輸入作弊碼。


        Kgsws還添加了一個(gè)無(wú)縫切換兩部游戲按鍵控制的功能。因?yàn)檫@個(gè)“關(guān)卡”同時(shí)且獨(dú)立運(yùn)行了兩部DOOM,運(yùn)行設(shè)備也需要雙倍的內(nèi)存,“至少16MB”。

        因?yàn)樽约涸O(shè)計(jì)出的房間有點(diǎn)像電影放映室,Kgsws便結(jié)合平日里制作關(guān)卡和模組的技術(shù)借題發(fā)揮,造出了一個(gè)和內(nèi)置DOOM配套的“電影院”完整關(guān)卡。影院內(nèi)設(shè)計(jì)了多個(gè)可交互物件,包括可以切換影院燈光亮度的開關(guān)、能夠關(guān)掉用戶界面的按鈕,以及通往“私人包廂”的傳送門。



        Kgsws將完整關(guān)卡及源代碼上傳到了Github。在鼓勵(lì)玩家們嘗試用《DOOM2》運(yùn)行其他游戲的同時(shí),Kgsws也指出,這個(gè)漏洞僅適用于DOS原版,不適用于修改過的版本,比如上文提到的GZDoom。

        好在Steam平臺(tái)上的《DOOM2》就是DOS版,任何人都能使用DOSbox之類的模擬器運(yùn)行游戲,體驗(yàn)Kgsws的杰作。


        Kgsws的發(fā)現(xiàn)看似為玩家們近三十年來的朝圣之旅劃上了一個(gè)句號(hào),卻也打開了新的潘多拉魔盒。在《DOOM》里運(yùn)行《DOOM》,只是一種“開始的結(jié)束”,我們不必再問什么東西還沒運(yùn)行過《DOOM》,而是要問《DOOM》還沒運(yùn)行過什么東西。

        本文標(biāo)簽: doom  動(dòng)畫  毀滅戰(zhàn)士  游戲  關(guān)卡