毁灭战士引擎

毁灭战士引擎Doom engine),也称为id Tech 1引擎,是一个由id Software开发的游戏引擎,用于毁灭战士I毁灭战士II。它也同时被用来开发HeXenHeretic等游戏。它的创造者是約翰·卡馬克,由麦克·亚伯拉什(Mike Abrash)、约翰·罗梅洛(John Romero)、戴夫·泰勒(Dave Taylor)和保罗·莱德克(Paul Radek)辅助创意。最初的版本是在NeXT电脑上完成的,支持DOS。后来的改写版本开始支持其他的操作系统

Doom engine
開發者id Software (John Carmack, John Romero, Dave Taylor)
首次发布1993年12月10日,​31年前​(1993-12-10
源代码库 編輯維基數據鏈接
编程语言C組合語言
类型遊戲引擎
许可协议 編輯維基數據鏈接

Linux版本的源代码在1997年开放,但是只能用于非商业目的的使用。id公司在1999年在GPL准则下面重新发布了源代码。不同的毁灭战士版本随即出现,它们能运行于不同的平台上面,并且增加了很多特性。

毁灭战士引擎并不是一个“真三维”的引擎(因为在游戏中玩家不能向上或者向下的观看),但是这是第一个有活力的仿三维引擎。在那个时代,毁灭战士引擎在游戏界掀起了一场革命,并且用一己之力创造了一个支持材质贴图的三维环境。

毁灭战士关卡结构

简单的示意毁灭战士的地图的结构

 
地图编辑器中的地图

从上向下看时候,所有的毁灭战士关卡都是平面的,由于引擎功能的限制,不能创造“房间之上的房间”。但是这个限制也带来一个好处:“地图模式”能轻松的显示出来,可以标绘出墙面和玩家的准确位置,就像右边的第一幅图那样。

基础物体

基础的单位是点(Vertex),使用二维的单个点表示。点的组合可以变成线,线的组合可以形成多重物体,叫做“区块”。区块是组成地图基本区域的单位。

区块

每个区块都有自己的属性:地板高度、天花板高度、亮度级别、地板和材质的贴图等。要为不同的区域设置不同的光照,就要创造多个区块。只有一个边的区块就会变成墙。

边界

边界用来存储用于墙面的贴图,分为地板和天花板的贴图。每个边界可以有3个材质,分别叫做中、高、低材质。在只有一个边的区块墙上面只有中材质起作用。高低材质分别用于填补不同高度的天花板和地板中间留下的缝隙。

物品

关卡中还有很多其他的物体,被称作“物品”。用来放置玩家、怪物、增强物体等。每个物品都有一个二维的示意图。根据它们的种类会被自动放置在天花板或者地面上。

这里对于毁灭战士关卡的介绍只是一个纵览,大多数的结构可以有不同的属性。

二元樹分隔(BSP)

毀滅戰士(DOOM)所使用的系統為二元樹分隔BSP.

參見

外部链接