Linux版本的原始碼在1997年開放,但是只能用於非商業目的的使用。id公司在1999年在GPL準則下面重新發布了原始碼。不同的毀滅戰士版本隨即出現,它們能運行於不同的平台上面,並且增加了很多特性。
毀滅戰士引擎並不是一個“真三維”的引擎(因為在遊戲中玩家不能向上或者向下的觀看),但是這是第一個有活力的仿三維引擎。在那個時代,毀滅戰士引擎在遊戲界掀起了一場革命,並且用一己之力創造了一個支持材質貼圖的三維環境。 毀滅戰士關卡結構 簡單的示意毀滅戰士的地圖的結構
地圖編輯器中的地圖
遊戲中的地圖從上向下看時候,所有的毀滅戰士關卡都是平面的,由於引擎功能的限制,不能創造“房間之上的房間”。但是這個限制也帶來一個好處:“地圖模式”能輕鬆的顯示出來,可以標繪出牆面和玩家的準確位置,就像右邊的第一幅圖那樣。
基礎的單位是點(Vertex),使用二維的單個點表示。點的組合可以變成線,線的組合可以形成多重物體,叫做“區塊”。區塊是組成地圖基本區域的單位。
區塊每個區塊都有自己的屬性:地板高度、天花板高度、亮度級別、地板和材質的貼圖等。要為不同的區域設定不同的光照,就要創造多個區塊。只有一個邊的區塊就會變成牆。
邊界邊界用來存儲用於牆面的貼圖,分為地板和天花板的貼圖。每個邊界可以有3個材質,分別叫做中、高、低材質。在只有一個邊的區塊牆上面只有中材質起作用。高低材質分別用於填補不同高度的天花板和地板中間留下的縫隙。
物品關卡中還有很多其他的物體,被稱作“物品”。用來放置玩家、怪物、增強物體等。每個物品都有一個二維的示意圖。根據它們的種類會被自動放置在天花板或者地面上。
這裡對於毀滅戰士關卡的介紹只是一個縱覽,大多數的結構可以有不同的屬性。