毁灭战士引擎
开发者 | 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.