Doom engineid Tech 1id SoftwareDoomDoom IIHell on EarthHereticHexen: Beyond HereticStrife: Quest for the SigilHacx: Twitch 'n KillFreedom使NeXTDoomDOS 
iD Tech 1
開発元 id Software、(ジョン・カーマック、ジョン・ロメロ、デイブ・テイラー)
最終版

1.9 / 1995年2月1日 (29年前) (1995-02-01)

リポジトリ github.com/id-Software/DOOM
プログラミング
言語
Cアセンブリ言語
プラットフォーム DOSMicrosoft WindowsMacOSAmiga WorkbenchNeXTSTEPMacintoshCommodore AmigaNeXTAtari JaguarSega 32XPlayStationPanasonic 3DONintendo 64セガサターンゲームボーイアドバンスNintendo Switch
ライセンス GNU General Public License
MIT license[1]
テンプレートを表示

LinuxDoom1997122319971229LinuxDoom II[2]1999103GNU General Public License[3][4]DoomDoom 

3D2idWolfenstein 3DDoomid Softwareid Tech 1[5][6] 

ゲームの世界

編集

Doom35/使[7]  

ステージ構造

編集

Doomがステージを内部的にどのように表しているのかを示す簡単な構成

 
エディターのマップビュー

トップダウンから見ると、すべてのDoomのステージは実際には2次元であり、Doomエンジンの主要な制限の一つ、部屋の上に部屋を重ねる(room-over-room)ことが不可能であることを示している。ただし、この制限には希望の兆しがある。右側の最初の画像のように壁とプレイヤーの位置を表す「マップモード」を簡単に表示できる。

基本オブジェクト

編集

2Dlinedefslinedefsidedefs12Sidedef 

セクター

編集

各セクターには、床の高さ、天井の高さ、光のレベル、床のテクスチャ 、天井のテクスチャなど、いくつかのプロパティが含まれている。たとえば、特定のエリアで異なるライトレベルを使用するには、そのエリアに異なるライトレベルで新しいセクターを作成する必要がある。したがって、片側のlinedefは無地の壁を表し、両側のlinedefはセクター間のブリッジラインを表す。

Sidedefs

編集

Sidedefは壁のテクスチャを格納するために使用される。これらは、床や天井のテクスチャから完全に分離している。 各sidedefは3つのテクスチャを持つことができ、これらは中央、上部、下部テクスチャと呼ばれる。片側のlinedefでは、中央テクスチャのみが壁のテクスチャに使用される。両面linedefでは、状況はより複雑である。下部と上部テクスチャは、隣接するセクターの床と天井の高さが異なる場合に隙間を埋めるために使用される。たとえば、下部のテクスチャはステップに使用される。sidedefは中央テクスチャを持つこともできるが、ほとんどない。これは、テクスチャを空中にぶら下げるために使用される。たとえば、透明な棒のテクスチャがケージを形成している場合、これは両面linedefの中央テクスチャの一例である。

バイナリ空間分割

編集

DoomBSP[8][9]使BSPDoom 

2linedefseg[10] 

Sseg[9] 

BSP 

(一)

(二)使

(三)[11]

 

レンダリング

編集

壁の描写

編集

Doomy-shearing使/DoomHeretic使 

Doom BSPsegsegseg使使 

x 

Doom便 

床と天井

編集

使BSP使noclip使 

visplanes21visplane visplanex 

x1visplanevisplane22visplane 

DoomDoomvisplanesvisplaneNo more visplanesvisplane overflow 128 or higher2DOS visplanevisplane 

segsegvisplanesvisplanesegvisplane visplane 

visplanevisplanevisplane 

モノ(スプライト)

編集

ステージ内の各セクターには、そのセクターに格納されているもののリンクされたリストがある。各セクターが描画されると、スプライトは描画されるスプライトのリストに配置される。視野内にない場合、これらは無視される。

スプライトのエッジは、以前に描画されたsegのリストをチェックすることによってクリップされる。Doomのスプライトは壁と同じ列ベースのフォーマットで保存されているので、これもレンダラーにとって役立つ。壁の描画に使われているのと同じ関数がスプライトの描画にも使用される。

サブセクターの順序は保証されているが、サブセクター内のスプライトはそうではない。Doomは、描画するスプライト(「vissprites」)のリストを保存し、レンダリング前にリストをソートする。遠くのスプライトは、近くのスプライトより先に描画される。これにより多少のオーバードローが発生するが、通常は無視できる。

たとえば、透明なバーで使用される2辺のラインにある中央テクスチャの最後の問題がある。これらは他の壁ではなく、レンダリングプロセスの最後にスプライトと混合されて描画される。

Doomエンジンを使用するゲーム

編集

Doomエンジンは、ファーストパーソン・シューティングゲーム『DOOM』を動作させたことで名声を博し、他のいくつかのゲームでもエンジンが使用された。Doomエンジンのゲームの「ビッグ4」 は、『Doom』『Heretic』『Hexen: Beyond Heretic』『Strife: Quest for the Sigil』と一般的に考えられている。

Doomエンジンで直接制作されたゲーム
DoomまたはDoom IIコードに基づくゲーム

関連項目

編集

参考資料

編集

脚注

編集


(一)^ https://github.com/Olde-Skuul/doom3do/blob/master/LICENSE

(二)^ Staff (19971229). Doom II Source Available. PC Gamer US. 199821820191120

(三)^ The Doom source code[] - released in 1997, now under the GNU General Public License from Id Software's FTP Site

(四)^  The Doom source code from 3ddownloads.com Archived February 24, 2004, at the Wayback Machine. - released in 1997, now under the GNU General Public License

(五)^ "id Tech 1 (Concept)". Giant Bomb. 2020813

(六)^  (20131216). Access Accepted405FPSDOOM20. www.4gamer.net. Aetas. 2020624

(七)^ Schuytema, Paul C. (August 1994). The Lighter Side Of Doom. Computer Gaming World: 140,142. http://www.cgwmuseum.org/galleries/index.php?year=1994&pub=2&id=121. 

(八)^ Veki (20091228). UnrealEngine 33D. www.4gamer.net. Aetas. 2020624

(九)^ abAbrash. Quakes 3-D Engine: The Big Picture. 2012822

(十)^ Apted. SPECIFICATION for GL-Nodes. 2012822

(11)^ Sanglard. Doom engine code review. 2012823

外部リンク

編集