Doom engine

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]
テンプレートを表示

Doom engine(ドゥームエンジン)と呼ばれるid Tech 1は、id SoftwareコンピュータゲームDoom』および『Doom II:Hell on Earth』を動作させるゲームエンジン。本エンジンは『Heretic』『Hexen: Beyond Heretic』『Strife: Quest for the Sigil』『Hacx: Twitch 'n Kill』『Freedom』のほか、ライセンス提供により制作されたゲームにおいても使用されている。これは、ジョン・カーマックによって作成され、マイク・アブラッシュ、ジョン・ロメロ、デイブ・テイラーおよびポール・ラデックによって書かれた補助機能を搭載している。元々はNeXTコンピュータで開発されたが、Doomの最初の発売のためにDOSに移植され、その後いくつかのゲーム機オペレーティングシステムに移植された。

Linux版Doomのソースコードは1997年12月23日に非商用利用の権利を認めたライセンスの下で公開され、その約一週間後の1997年12月29日にLinux版Doom IIのソースコードも公開された[2]。その後、このソースコードは1999年10月3日にGNU General Public Licenseに基づいて再公開された[3][4]。それ以降に数十の非公式のDoomソース移植が制作され、それによりこれまでサポートされていなかったオペレーティングシステム上でDoomを実行でき、時には新しい機能でエンジンの機能を根本的に拡張する。

エンジンは3D空間をレンダリングするが、その空間は2次元の平面図から投影される。視線は常に床と平行であり、壁は床に対して垂直でなければならず、立体構造や傾斜エリア(角度の異なる床と天井)を作成することはできない。これらの制限にもかかわらず、エンジンはidの以前のWolfenstein 3Dエンジンからの技術的飛躍を示している。Doomエンジンは、id Softwareの長いゲームエンジンのリストに分類するために、後に「id Tech 1」と改名された[5][6]

ゲームの世界

Doomエンジンは、レンダリングをゲームの他の部分から分離する。グラフィックエンジンは可能な限り高速で動作するが、ゲームの世界はハードウェアに関係なく35フレーム/秒で動作するため、性能の異なるコンピューターを使用して複数のプレイヤーが対戦することができる[7]

ステージ構造

Doomがステージを内部的にどのように表しているのかを示す簡単な構成
エディターのマップビュー

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

基本オブジェクト

基底単位は頂点であり、単一の2D点を表す。次に、頂点(または内部的に参照される「頂点」)を結合して、「linedefs」と呼ばれるを形成する。各linedefには、「sidedefs」と呼ばれる1つまたは2つの側面がある。次にSidedefをグループ化してポリゴンを形成する。これらは「セクター」と呼ばれる。セクターはステージの特定の領域を表す。

セクター

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

Sidedefs

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

バイナリ空間分割

Doomは、バイナリ空間分割(BSP)と呼ばれるシステムを利用している[8][9]。ツールを使用して、事前にステージのBSPデータを生成する。このプロセスは大きなステージではかなり時間がかかる場合があるため、Doomでは壁を移動することはできない。ドアとリフトは上下に動くが、どれも横には動かない。

レベルはバイナリツリーに分割される。ツリー内の各位置はステージの特定の領域を表す「ノード」である(ルートノードはステージ全体を表す)。ツリーの各分岐には、ノードの領域を2つのサブノードに分割する分割線がある。同時に、この分割線はlinedefを「seg」と呼ばれるラインセグメントに分割する[10]

ツリーの葉には凸多角形があり、ステージをさらに分割する必要はない。これらの凸多角形はサブセクター(または「Sセクター」)と呼ばれ、特定のセクターにバインドされる。各サブセクターには、関連するsegのリストがある[9]

BSPシステムは、サブセクターをレンダリングに適した順序に並べ替える。アルゴリズムはかなり単純である:

  1. ルートノードから開始する。
  2. このノードの子ノードを再帰的に描画する。カメラに最も近い子ノードは、スキャンラインアルゴリズムを使用して最初に描画される。これは、カメラがノードの分割線のどちら側にあるかを見ることで分かる。
  3. サブセクターに達したら、そのサブセクターを描画する[11]

ピクセルの列全体が満たされる(つまり、これ以上隙間が残らなくなる)と、プロセスは完了する。この順序付けにより、表示されていないオブジェクトの描画に時間を費やすことがなくなり、その結果、速度のペナルティなしにマップを非常に大きくすることができる。

レンダリング

壁の描写

Doomの壁はすべて垂直に描かれており、そのために上下を正しく見ることができない。「y-shearing」を使ってルックアップ/ダウンを行うことが可能で、多くの最新のDoomのソース移植や、『Heretic』のようなエンジンを使用する後のゲームでも同様に行える。本質的には、画面内で水平線を上下に移動させることで機能し、事実上より高い表示領域に「窓」を提供する。窓を上下に動かすことで、上下を見ているような錯覚を与えることができる。しかし、これでは、プレイヤーがさらに上下に見たときに視界が歪んでしまう。

Doom エンジンは、BSPツリーを横断する際に壁をレンダリングし、最も近いsegが最初に描画されるように、カメラからの距離順にサブセクターを描画する。segが描画されると、リンクされたリストに保存される。これは、後からレンダリングされる他のsegをクリップして、オーバードローを減らすために使用される。これは後にスプライトのエッジをクリップするときにも使われる。

エンジンが特定の x 座標で固体(片面)の壁に到達したら、その領域にはもう線を引く必要はない。クリッピングのために、エンジンは固体の壁に達した画面の領域の「マップ」を保存する。これにより、プレイヤーから見えないステージの遠くの部分を完全にクリッピングできる。

Doomのグラフィックフォーマットは、壁のテクスチャを垂直列のセットとして格納する。これは、本質的に、テクスチャの垂直列をたくさん描くことによって壁をレンダリングするレンダラーにとって便利である。

床と天井

床と天井(「フラット」)を描画するシステムは、壁に使用されるシステムよりも簡潔ではない。フラットは、塗りつぶしのようなアルゴリズムで描画されるため、不良なBSPビルダーを使用すると、床または天井が画面の端まで流れ落ちる「穴」ができてしまう場合がある。これは、プレイヤーがnoclipチートを使用してステージ外に移動した場合、床と天井が空のスペースの上にステージからはみ出して見える理由でもある。

床と天井は「visplanes」として描画される。これらは、特定の高さ、光レベル、テクスチャ床または天井からのテクスチャの水平方向の流れを表している(2つの隣接するセクターがまったく同じ床を持つ場合、これらは1つのvisplaneに統合される)。 visplaneの各x位置には、描画されるテクスチャの特定の垂直線がある。

各x位置に1本の垂直線を描画するこの制限のため、visplaneを複数のvisplaneに分割する必要がある場合がある。たとえば、2つの同心円の正方形で床を表示することを検討する。内側の正方形は、周囲の床を垂直に分割する。内側の四角形が描かれるその水平範囲では、周囲の床に2つのvisplaneが必要となる。

これが、長い間、多くのマッパーを苛立たせてきたDoomの古典的な制限の一つにつながる。Doomには、visplanesの数に静的な制限が含まれており、それを超過すると、「visplaneオーバーフロー」が発生し、「No more visplanes!」または「visplane overflow (128 or higher)」という2つのメッセージのいずれかと共にゲームは終了してDOSに戻る。 visplane制限を呼び出す最も簡単な方法は、多数のvisplaneを生成する大きな市松模様の床パターンである。

segがレンダリングされると、segのエッジから画面の垂直エッジに向かって延びるvisplanesも追加される。これらは、既存のvisplaneに到達するまで延長する。このように機能するため、このシステムは、segがエンジン全体によって順番にレンダリングされるという事実に依存している。遠くにある他の人が「カットオフ」できるように、最初により近いvisplaneを描画する必要がある。前述のように、停止していない場合、床または天井は画面の端まで「流れ出てしまう」。 最終的に、visplaneは、特定のテクスチャを描画する画面の特定の領域の「マップ」を形成する。

visplaneは本質的に垂直の「ストライプ」から構築されるが、実際の低レベルのレンダリングはテクスチャの水平の「スパン」の形で実行される。すべてのvisplaneが構築された後、それらはスパンに変換され、画面にレンダリングされる。visplaneを垂直ストライプとして作成する方が簡単ですが、床と天井のテクスチャがどのように表示されるかという性質上、水平ストライプとして描画する方が簡単というトレードオフの関係になっている。

モノ(スプライト)

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

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

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

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

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

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

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

関連項目

参考資料

脚注

  1. ^ https://github.com/Olde-Skuul/doom3do/blob/master/LICENSE
  2. ^ Staff (December 29, 1997). “Doom II Source Available”. PC Gamer US. February 18, 1998時点のオリジナルよりアーカイブ。November 20, 2019閲覧。
  3. ^ The Doom source code[リンク切れ] - released in 1997, now under the GNU General Public License from Id Software's FTP Site
  4. ^ 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
  5. ^ "id Tech 1 (Concept)". Giant Bomb. 2020年8月13日閲覧
  6. ^ 奥谷海人 (2013年12月16日). “Access Accepted第405回:FPSの先駆者「DOOM」生誕20周年を祝う”. www.4gamer.net. Aetas. 2020年6月24日閲覧。
  7. ^ 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. 
  8. ^ Veki (2009年12月28日). “完全図解,無償配布のUnrealEngine 3開発キットで3Dゲームを作ってみよう”. www.4gamer.net. Aetas. 2020年6月24日閲覧。
  9. ^ a b Abrash. “Quake’s 3-D Engine: The Big Picture”. 22 August 2012閲覧。
  10. ^ Apted. “SPECIFICATION for GL-Nodes”. 22 August 2012閲覧。
  11. ^ Sanglard. “Doom engine code review”. 23 August 2012閲覧。

外部リンク

Read other articles:

Flecktarn Loreng kamuflase Flecktarn Jenis Pola kamuflase militer Negara asal  Jerman Sejarah pemakaian Masa penggunaan 1990–sekarang Sejarah produksi Tahun 1976 Varian Lihat varian Flecktarn (pelafalan dalam bahasa Jerman: [ˈflɛktaʁn]; kamuflase loreng; disebut juga Flecktarnmuster atau Fleckentarn) adalah keluarga dari pola kamuflase disruptif kategori 3-, 4-, 5- atau 6-warna, yang paling umum adalah pola 5-warna, terdiri dari hijau tua, hijau muda, hitam, cokel...

 

Cari artikel bahasa  Cari berdasarkan kode ISO 639 (Uji coba)  Kolom pencarian ini hanya didukung oleh beberapa antarmuka Halaman bahasa acak Bahasa Lituania lietuvių kalba Dituturkan diLituaniaPenutur3,0 juta (2012)[1] Rumpun bahasaIndo-Eropa Balto-SlavikBaltikBaltik TimurLituania DialekSamogiti, Aukštaitian Sistem penulisanLatin (Alfabet Lituania)Braille LituaniaAspek ketatabahasaanTipologibahasa inflektifbahasa sintetisstressubjek–predikat–objekadjective-n...

 

العلاقات الصومالية الصينية الصومال الصين   الصومال   الصين تعديل مصدري - تعديل   العلاقات الصومالية الصينية هي العلاقات الثنائية التي تجمع بين الصومال والصين.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة ومرجعية للدولتين: وجه المقارنة الص�...

Chinese state-owned investment fund National Fund for Technology Transfer and CommercialisationNative name国家科技成果转化引导基金Company typeState-owned enterpriseIndustryInvestment managementFounded2011; 13 years ago (2011)HeadquartersBeijing, ChinaKey peopleMa Weihua (Chairman)AUM¥62.4 billion RMB (US$8.7 billion)ParentMinistry of Science and TechnologyMinistry of FinanceWebsitewww.nfttc.org.cn The National Fund for Technology Transfer and Commercia...

 

Coppa Mitropa 1974-1975 Competizione Coppa Mitropa Sport Calcio Edizione 35ª Date dal 1974all'11 giugno 1975 Luogo Europa Partecipanti 6 Nazioni 5 Risultati Vincitore  Wacker Innsbruck(1º titolo) Secondo  Honvéd Statistiche Miglior marcatore Jaroslav Melichar (3) Incontri disputati 14 Gol segnati 40 (2,86 per incontro) Cronologia della competizione 1973-1974 1975-1976 Manuale La Coppa Mitropa 1974-1975 fu la trentacinquesima edizione del torneo e venne vinta dagli ...

 

American sculptor (1898–1976) For other people named Alexander Calder, see Alexander Calder (disambiguation). Alexander CalderAlexander Calder, by Carl Van Vechten, 1947BornJuly 22, 1898Lawnton, Pennsylvania, U.S.DiedNovember 11, 1976(1976-11-11) (aged 78)New York City, U.S.Alma materStevens Institute of Technology, Art Students League of New YorkKnown forSculptureMovementKinetic art, surrealism, abstraction Alexander Calder (/ˈkɔːldər/; July 22, 1898 – November 11, 197...

Malaysian cycling team Team Sapura CyclingTeam informationUCI codeTSCRegisteredMalaysiaFounded2017Discipline(s)RoadStatusUCI ContinentalBicyclesCervéloComponentsShimanoKey personnelGeneral managerSayuti ZahitTeam manager(s)Fairoz Abd GhaniMohd Mahazir HamadMohd Azlan JamalludinTeam name history2017–Team Sapura Cycling Team Sapura Cycling is a Malaysian UCI Continental cycling team founded in 2017 with major backing from Sapura Holdings Berhad, a renowned conglomerate from Malaysia.[1&#...

 

2020年夏季奥林匹克运动会波兰代表團波兰国旗IOC編碼POLNOC波蘭奧林匹克委員會網站olimpijski.pl(英文)(波兰文)2020年夏季奥林匹克运动会(東京)2021年7月23日至8月8日(受2019冠状病毒病疫情影响推迟,但仍保留原定名称)運動員206參賽項目24个大项旗手开幕式:帕维尔·科热尼奥夫斯基(游泳)和马娅·沃什乔夫斯卡(自行车)[1]闭幕式:卡罗利娜·纳亚(皮划艇)&#...

 

此条目序言章节没有充分总结全文内容要点。 (2019年3月21日)请考虑扩充序言,清晰概述条目所有重點。请在条目的讨论页讨论此问题。 哈萨克斯坦總統哈薩克總統旗現任Қасым-Жомарт Кемелұлы Тоқаев卡瑟姆若马尔特·托卡耶夫自2019年3月20日在任任期7年首任努尔苏丹·纳扎尔巴耶夫设立1990年4月24日(哈薩克蘇維埃社會主義共和國總統) 哈萨克斯坦 哈萨克斯坦政府...

Atlético de PintoDatos generalesNombre Club Atlético de PintoFundación 1963 (61 años)Presidente José María GarzónEntrenador Javi García InstalacionesEstadio Amelia del CastilloPinto (Madrid) EspañaCapacidad 2.500Uniforme Titular Alternativo Última temporadaLiga Preferente Madrid, Grupo 2(2021-2022) 4º Página web oficial[editar datos en Wikidata] El Club Atlético de Pinto es un equipo de fútbol de la localidad de Pinto (Madrid) España. Juega en el grupo 2 de Prefe...

 

  此条目页介紹的是中华人民共和国国务院民用航空行政主管部门。 關於1952-1987年以“政企合一”模式经营民用航空事业之运营历史,請見「中国民航 (运营时期)」。 關於与“中国民航局”相近的其他义项,請見「中國民航局 (消歧义)」。 中国民用航空局 1999年规定:印章直径4.5厘米,中央刊国徽,由国务院制发。 中国民用航空局局徽 主要领导 局长 宋志勇 副局�...

 

British-born American astrophysicist Margaret BurbidgeFRSBurbidge pictured in 1976BornEleanor Margaret Peachey(1919-08-12)12 August 1919Davenport, Stockport, UKDied5 April 2020(2020-04-05) (aged 100)San Francisco, CaliforniaNationalityBritishCitizenshipAmerican (from 1977)Known forB2FH paperSpouseGeoffrey BurbidgeAwardsFellow of the Royal Society (1964)Henry Norris Russell Lectureship (1984)Gold Medal of the Royal Astronomical Society (2005)and othersScientific careerFieldsStellar n...

German general Oswald LutzBorn(1876-11-06)6 November 1876Öhringen, Oberamt Öhringen, Jagstkreis, Kingdom of Württemberg, German EmpireDied26 February 1944(1944-02-26) (aged 67)Munich, Gau Munich-Upper Bavaria, Nazi GermanyAllegiance German Empire  Kingdom of Bavaria  Weimar Republic Nazi GermanyService/branchArmyYears of service1894–1938, 1941–42Rank General der PanzertruppeCommands heldPanzer Troops CommandHead of Mechanized ForcesBattles/warsWorld War IW...

 

非常尊敬的丹尼尔·弗朗索瓦·马兰Daniël François MalanPC 第4任南非總理任期1948年6月4日—1954年11月30日君主乔治六世伊丽莎白二世总督吉迪翁·布兰德·范齐尔欧内斯特·乔治·扬森(英语:Ernest George Jansen)前任揚·史末資继任约翰内斯·格哈杜斯·斯揣敦 个人资料出生(1874-05-22)1874年5月22日 開普殖民地西瑞貝克(英语:Riebeek West)逝世1959年2月7日(1959歲—02—07)(84歲) �...

 

  لمعانٍ أخرى، طالع العامرية (توضيح). 33°17′51″N 44°17′26″E / 33.29750°N 44.29056°E / 33.29750; 44.29056 العامرية حي سكني شارع العمل الشعبي في حي العامرية ببغداد في أيلول 2011 الإحداثيات 20000)_region: 33°17′51″N 44°17′26″E / 33.29750°N 44.29056°E / 33.29750; 44.29056 تقسيم إداري  بلد  العراق ...

RememberAlbum studio karya Big BangDirilis5 November 2008Direkam2008Genre K-pop hip pop R&B dance-pop electropop Durasi39:12LabelYG EntertainmentProduser G-Dragon Yang Hyun Suk Kronologi Big Bang Number 1(2008)Number 12008 Remember(2008) Big Bang (2009)Big Bang2009 Singel dalam album Remember Sunset GlowDirilis: 5 November 2008 Strong BabyDirilis: 1 Januari 2009 Remember adalah album studio kedua dari boy band asal Korea Selatan, Big Bang. Album ini dirilis pada 5 November 2008 oleh Y...

 

Bagian dari seriGereja Katolik menurut negara Afrika Afrika Selatan Afrika Tengah Aljazair Angola Benin Botswana Burkina Faso Burundi Chad Eritrea Eswatini Etiopia Gabon Gambia Ghana Guinea Guinea-Bissau Guinea Khatulistiwa Jibuti Kamerun Kenya Komoro Lesotho Liberia Libya Madagaskar Malawi Mali Maroko Mauritania Mauritius Mesir Mozambik Namibia Niger Nigeria Pantai Gading Republik Demokratik Kongo Republik Kongo Rwanda Sao Tome dan Principe Senegal Seychelles Sierra Leone Somalia Somaliland ...

 

  لمعانٍ أخرى، طالع أميليا (توضيح). أميلياAmelia (بالإنجليزية) معلومات عامةالصنف الفني دراما، ملحميالمواضيع طيران — أميليا إيرهارت تاريخ الصدور 2009مدة العرض 111 دقيقةاللغة الأصلية الإنجليزيةالبلد كندا والولايات المتحدةمواقع التصوير هاميلتون — كولونيا — نوفا سكوشا موقع...

У этого термина существуют и другие значения, см. Дебар (значения). ГородДебармакед. Дебаралб. Dibra Флаг Герб 41°31′30″ с. ш. 20°31′38″ в. д.HGЯO Страна  Северная Македония Статистический регион Юго-Западный Община Дебар Градоначальник Хекуран Дука История и геогр...

 

カラカルパク自治ソビエト社会主義共和国 Қарақалпақстан АССРҚорақалпоғистон АССРКаракалпакская АССР ← 1932年 - 1992年 → (国旗) (国章) カラカルパクASSRの位置。 公用語 カラカルパク語、ウズベク語、ロシア語 首都 ヌクス市 議長 1932年 - 1992年 不明 面積 1987年164,900km² 人口 1987年1,139,000人 変遷 設置 1932年7月20日 カラカルパクスタン共�...