毀滅戰士引擎
開發者 | id Software (John Carmack, John Romero, Dave Taylor) |
---|---|
首次發布 | 1993年12月10日 |
源代碼庫 | |
編程語言 | C、組合語言 |
類型 | 遊戲引擎 |
許可協議 |
毀滅戰士引擎(Doom engine),也稱為id Tech 1引擎,是一個由id Software開發的遊戲引擎,用於毀滅戰士I和毀滅戰士II。它也同時被用來開發HeXen、Heretic等遊戲。它的創造者是約翰·卡馬克,由麥克·亞伯拉什(Mike Abrash)、約翰·羅梅洛(John Romero)、戴夫·泰勒(Dave Taylor)和保羅·萊德克(Paul Radek)輔助創意。最初的版本是在NeXT電腦上完成的,支持DOS。後來的改寫版本開始支持其他的操作系統。
Linux版本的源代碼在1997年開放,但是只能用於非商業目的的使用。id公司在1999年在GPL準則下面重新發布了源代碼。不同的毀滅戰士版本隨即出現,它們能運行於不同的平台上面,並且增加了很多特性。
毀滅戰士引擎並不是一個「真三維」的引擎(因為在遊戲中玩家不能向上或者向下的觀看),但是這是第一個有活力的仿三維引擎。在那個時代,毀滅戰士引擎在遊戲界掀起了一場革命,並且用一己之力創造了一個支持材質貼圖的三維環境。
毀滅戰士關卡結構
簡單的示意毀滅戰士的地圖的結構
從上向下看時候,所有的毀滅戰士關卡都是平面的,由於引擎功能的限制,不能創造「房間之上的房間」。但是這個限制也帶來一個好處:「地圖模式」能輕鬆的顯示出來,可以標繪出牆面和玩家的準確位置,就像右邊的第一幅圖那樣。
基礎物體
基礎的單位是點(Vertex),使用二維的單個點表示。點的組合可以變成線,線的組合可以形成多重物體,叫做「區塊」。區塊是組成地圖基本區域的單位。
區塊
每個區塊都有自己的屬性:地板高度、天花板高度、亮度級別、地板和材質的貼圖等。要為不同的區域設置不同的光照,就要創造多個區塊。只有一個邊的區塊就會變成牆。
邊界
邊界用來存儲用於牆面的貼圖,分為地板和天花板的貼圖。每個邊界可以有3個材質,分別叫做中、高、低材質。在只有一個邊的區塊牆上面只有中材質起作用。高低材質分別用於填補不同高度的天花板和地板中間留下的縫隙。
物品
關卡中還有很多其他的物體,被稱作「物品」。用來放置玩家、怪物、增強物體等。每個物品都有一個二維的示意圖。根據它們的種類會被自動放置在天花板或者地面上。
這裡對於毀滅戰士關卡的介紹只是一個縱覽,大多數的結構可以有不同的屬性。
二元樹分隔(BSP)
毀滅戰士(DOOM)所使用的系統為二元樹分隔BSP.