Doom Engine

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Doom Engine
software
Tip Motor grafic
Dezvoltator Software id
Data primei versiuni 10 decembrie 1993 ; Acum 27 de ani [1]
Sistem de operare Multiplatform
Limba C [2]
Asamblare [2]
Licență GPL
( licență gratuită )
Site-ul web ftp://ftp.idsoftware.com/idstuff/source/ [ link rupt ]

Doom Engine (numit și id Tech 1 [3] [4] ) este motorul grafic dezvoltat pentru shooter-ul Doom de prima persoană , de către id Software . Ulterior a fost portat la majoritatea consolelor de jocuri și a sistemelor de operare existente. Codul sursă al motorului a fost pus la dispoziția publicului pe 23 decembrie 1997 sub o licență care nu permitea utilizarea acestuia pentru producția comercială; [5] în 1999 a fost din nou licențiată sub licența publică generală GNU . [5]

Istorie

Doom Engine a fost scris în principal de John Carmack , cu părți de cod auxiliar scrise de alte componente ale id , pe sistemul de operare NeXTSTEP ; [2] și se bazează, spre deosebire de motorul 3D Wolfenstein anterior, în principal pe limbajul C cu ajutorul a doar 2 funcții în asamblare . [2] John Carmack a recunoscut că Doom Engine ar fi putut fi scris mai mult în limbaj de asamblare , dar că acest lucru ar crește viteza de redare doar cu 15%, apoi a abandonat ideea. [2] Dezvoltarea motorului grafic a fost articulată grație unui program CAD special creat de id, numit DoomED , care vă permite să manipulați pereții, tavanele și podelele mediului de joc cu o ușurință extremă. [2]

Tehnologie

Trăsături majore și minore

În mod similar cu motorul Wolfenstein 3D , Doom Engine se bazează în principiu pe o hartă bidimensională (adică jocul în forma sa originală), care, totuși, pe baza poziției vizualizării jucătorului, returnează o redare 2.5D , similară cu 3D real. [4] Principiul, totuși, deși similar, nu este identic cu cel al Wolfenstein 3D ray casting : în Doom , de fapt, viziunea jucătorului determină ce porțiune a lumii să vadă, dar nu ce porțiune a lumii (sau nivelul ) este creat. [6] Crearea stratului este de fapt încredințată unei partiții de spațiu binar de sistem, care împarte lumea jocului în substraturi mai mici (deja preprocesate) ramificate cu o structură de date pentru arbore ; prin urmare, în funcție de mișcarea jucătorului, nivelul se va dezvolta treptat în spațiul în care acesta se mișcă. [6] Cu toate acestea, viziunea jucătorului, deși este mai puțin importantă decât în Wolfenstein 3D , decide în prezent ce ar trebui să arate partiția binară în timp real (indiferent de porțiunea de nivel creată), schimbându-se dinamic cu fiecare mișcare a camerei. [6] Mai mult, având partiția binară care arată doar ceea ce vede jucătorul, este surprinzător de capabilă să elimine sau să nu lucreze pe secțiunile care nu sunt observate de jucător (un punct mort ), putându-se concentra doar pe ceea ce este de fapt și redat în prezent; permitând viteze de procesare cu performanțe rapide și peste normă. [6]

Cu toate acestea, motorul are limitări: dezvoltându-se pe bidimensionalitate , deci cu un singur plan (plan XY), vederea nu poate fi îndreptată spre axa verticală a sistemului de referință cartezian - este de fapt posibilă mutarea conului vizual doar din de la dreapta la stânga sau invers. [4] Mai mult, din nou datorită mapării bidimensionale, nu este posibil să se aplice camera-peste-cameră , adică tehnica, tipică în loc de 3D real , care vă permite să suprapuneți două camere sau porțiuni de niveluri , unul deasupra celuilalt. [4]

Motorul Doom a fost dezvoltat pentru a profita din plin de procesoarele Intel 80486 , [2] și revine la potențialul său maxim, o redare VGA cu rezoluție de 320 × 200 pixeli și o adâncime de culoare la 256; acceptând o rată de reîmprospătare de 35 hertz . [7] Comparativ cu vechiul motor 3D Wolfenstein, este, de asemenea, capabil să aplice cartografierea texturilor pe podele, tavane și pereți de joc (acesta din urmă, texturile pereților , pot fi, de asemenea, animate sau transparente); și are o redare a iluminatului care poate varia în funcție de diferite sectoare de joc. [7]

Structura stratului

Exemplu de reprezentare a nivelurilor Doom

Bazându-se pe bidimensionalitate , Doom Engine a fost dezvoltat pentru a construi jocul, în funcție de utilizarea anumitor criterii și elemente esențiale.

  • Unitate de baza:

Unitatea de bază este vârful , care reprezintă un singur punct. Vârfurile dacă sunt unite formează o linie (numite linedefs ); fiecare linie poate avea două „fețe” numite sidedefs ; dacă are doar unul, va forma un perete solid, în timp ce dacă are ambele linia va fi invizibilă și acceptabilă (cu excepția cazului în care are texturi sau proprietăți de blocare). Un poligon format din cel puțin trei sidedef-uri se numește sector , adică părțile care alcătuiesc nivelurile jocului.

  • Sidedefs:

Flancurile laterale pot fi folosite pentru a arăta texturile pereților sau, în cazul texturilor cu transparență, grile și altele asemenea. Acestea pot fi folosite pentru a declanșa evenimente (cum ar fi deschiderea ușilor dacă sunt introduse de jucător).

  • Sectoare:

Fiecare sector are unele proprietăți: principalele și obligatorii sunt înălțimea, tipul de textură al podelei și tavanului și intensitatea luminii (de la 0 la 255). Există, de asemenea, proprietăți opționale: de exemplu, puteți seta o lumină intermitentă sau îl puteți face pe jucător să sufere daune în timp ce călătoriți într-un anumit sector (util pentru simularea bazinelor de lavă sau acid). În cele din urmă, este posibil să se facă sectoarele mobile, să se creeze ascensoare, uși (care se deschid de jos în sus) și prese.

  • Obiecte:

Toate obiectele (monștri, arme, decorațiuni etc., cunoscute sub numele de lucruri ) sunt poziționate într-un nivel cu o coordonată bidimensională (ca un vârf); este, de asemenea, posibil să se indice caracteristici suplimentare, de exemplu, prezența unui obiect doar ca în cazul modului multiplayer deathmatch .

Notă

  1. ^ Doom , pe GameFaqs . Accesat la 2 august 2016 .
  2. ^ a b c d e f g Alexander Antoniades, Monsters from the Id: The Making of Doom , pe gamasutra.com , ianuarie 1994. Adus pe 2 august 2016 .
  3. ^ Rage: id Tech 5 First Look , pe firingsquad.com , 3 august 2007. Accesat la 2 august 2016 (arhivat din original la 29 septembrie 2007) .
  4. ^ a b c d A History of id Tech , ign.com , 28 aprilie 2011. Adus pe 2 august 2016 .
  5. ^ a b Tim Brookes, How to Play Classic '90s Shooters on A Modern Computer , pe makeuseof.com , 13 mai 2016. Accesat la 2 august 2016 .
  6. ^ a b c d Alberto Paoluzzi, Grafică computerizată și CAD . Accesat la 2 august 2016 .
  7. ^ a b Doom Engine , pe moddb.com . Accesat la 2 august 2016 .

Elemente conexe

linkuri externe