Construiți motor

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 23 mai 2016; verificările necesită 22 de modificări .
Construiți motor
Tip de Motor de joc
Dezvoltator Ken Silverman
Scris in Xi
Sistem de operare DOS
Platformă hardware MS-DOS
Licență cod de la autor - sub proprietatea BUILDLIC.TXT [1]
Site-ul web advsys.net/ken/build.htm
 Fișiere media la Wikimedia Commons

Build Engine  este un motor de joc împușcături la persoana întâi creat de Ken Silverman pentru 3D Realms . Ca și jocul Doom , Build Engine proiectează lumea jocului pe o grilă 2D de forme plane închise numite sectoare și folosește cele mai simple obiecte plate numite sprites pentru a popula lumea geometrică cu obiecte.

Build Engine aparține clasei așa-numitelor „ motoare 2.5-dimensionale ”, deoarece lumea jocului se bazează pe un avion cu o componentă de înălțime adăugată. Fiecare sector poate avea o înălțime diferită a podelei și a tavanului, precum și o pantă diferită a podelei și a tavanului. Ca rezultat al redării , lumea arată tridimensională. Calculul perspectivei se bazează doar pe distanța orizontală - prin urmare, liniile verticale corespunzătoare vârfurilor sunt strict verticale, indiferent de unghiul de vedere. Acest lucru cauzează o distorsiune semnificativă a perspectivei atunci când priviți în sus sau în jos la unghiuri înalte în majoritatea jocurilor cu motorul de construcție .

Specificații

Sectoare

Sectoarele sunt componenta principală a geometriei nivelului. Puteți lucra cu sectoare în timp real. Parametrii acestora (înălțimi, formă, unghiuri de înclinare) nu necesită recalculare la modificare. Acest lucru vă permite să faceți mediul din joc mai interactiv, cum ar fi distructibil (ca în Blood ).

Dezvoltatorii au folosit sprite-uri rezervate ( efectori de sector ), cărora li s-au atribuit etichete speciale de sus ( hi-tags ) și de jos ( lo-tags ) (numere cu o anumită semnificație), care au făcut posibilă ca lumea să fie mai dinamică (de exemplu, uși, butoaie care explodează etc.) . Aceleași etichete pot fi date podelei și tavanului sectorului pentru a da proprietăți speciale. De exemplu, un jucător care merge pe un podea cu etichete speciale ar cădea și ar cădea dintr-un alt tavan cu etichete speciale. În practică, aceasta a fost folosită pentru a crea rezervoare. Un sector poate primi etichete care îl transformă într-o uşă sau un lift. Sectoarele se pot suprapune, astfel încât unul să nu fie vizibil din cauza celuilalt (dacă într-o astfel de situație două sectoare sunt vizibile simultan, atunci cu o distorsiune severă). Acest lucru a făcut posibilă crearea, de exemplu, puțuri de ventilație situate deasupra sediului (deși acest lucru a făcut ca lucrarea ulterioară cu această parte a nivelului să fie mult mai dificilă, deoarece dezvoltatorul petrece aproape tot timpul în modul bidimensional). De asemenea, vă permite să creați lumi imposibile din punct de vedere al fizicii (de exemplu, un sistem de camere dintr-o clădire care este mai mare decât clădirea în sine). Toate aceste efecte au făcut ca lumea să pară tridimensională, până când a apărut motorul Quake .

Portaluri

Pentru a sorta avioanele în ordinea Z, Doom a folosit un arbore BSP care a fost construit de fiecare dată când WAD-ul a fost salvat. Spre deosebire de Doom, Build a folosit mecanismul portalului .

Segmentele care separă cele două sectoare sunt declarate „portale”. Motorul desenează mai întâi sectorul în care se află privitorul, amintindu-și toate portalurile. După aceea, începe recursiv redarea sectoarelor care sunt vizibile prin portaluri (fără a atinge ceea ce este deja desenat).

În motorul cu 2,5 dimensiuni, această metodă a fost mai bună decât arborele BSP din următoarele motive:

Voxels

Versiunile ulterioare ale motorului au făcut posibilă înlocuirea imaginilor din joc cu obiecte 3D realizate din voxeli . Această caracteristică a apărut prea târziu pentru a fi folosită în Duke Nukem 3D , dar a fost folosită în alte jocuri. Blood folosește voxeli pentru arme, muniție, upgrade și diverse decorațiuni (cum ar fi pietre funerare din Cradle to Grave).

De câțiva ani Ken lucrează la motorul Voxlap bazat pe tehnologia voxel.

Cameră peste cameră

Unele jocuri din motorul Build au folosit trucul de a combina podeaua și tavanul a două sectoare. Crearea unor astfel de structuri în timpul editării nivelului a fost dificilă, așa că deseori sectoarele au fost mutate în timpul încărcării nivelului (ceea ce a simplificat calculele efectuate de motorul de randare). Tehnologia camerei deasupra camerei a fost folosită în Shadow Warrior (schimbarea sectoarelor în timpul încărcării hărții) și Blood (fără compensare). Tehnologia în sine nu a fost încorporată în motor, creatorii de nivel s-au gândit la ea.

Dezvoltare ulterioară

Pe 20 iunie 2000, Ken Silverman a creat motorul Build Engine.

Versiunea 2.0 (prima și singura lansare oficială) a lui Matt Setler EDuke (un port pentru a rula Duke Nukem 3D pe sisteme de operare moderne ) a fost trimisă către 3D Realms ( sursele Duke Nukem 3D și EDuke erau încă în domeniul public). Lucrând cu versiunea beta 2.1 , Matt a încercat să încorporeze sursele Build în sursele Duke, dar proiectul a fost oprit înainte ca versiunile publice depanate să fie disponibile. Mai multe echipe de conversie Build au decis să lucreze direct cu sursele Build Engine ale lui Ken și nu cu sursele lui Duke. Ulterior, ca urmare a lucrării, a apărut editorul mapster. Multă vreme, portarea motorului Build către sistemele de operare multitasking a fost dificilă din cauza necesității de suprafețe foarte mari de memorie pentru computer, care nu erau disponibile în sistemele de operare multitasking. Problema a fost rezolvată prin conectarea memoriei virtuale .

Codurile sursă 3D Duke Nukem

La 1 aprilie 2003, 3D Realms a lansat codul sursă pentru motorul 3D Duke Nukem , în ciuda pretențiilor îndelungate că acest lucru nu s-ar întâmpla niciodată. După aceea, porturile lui Icculus și JonoF au apărut foarte curând . A devenit posibil să joci Duke Nukem 3D fără probleme pe GNU / Linux , Windows NT și alte platforme, iar interesul pentru porturi a crescut.

Portul icculus.org

Ryan Gorden (icculus) a creat primul port al motorului folosind SDL cu ajutor extern . Inițial a fost un port pentru Linux , mai târziu pentru Cygwin și chiar mai târziu pentru Win32 pur (la construcție, a fost folosit compilatorul Watcom C++ , care a fost folosit și pentru versiunea originală DOS (cu exactitatea cu care a fost folosit Watcom C++ ). pentru Windows și Build a fost scris în simplu C ) Au existat zvonuri despre portarea Eduke pe Windows, dar nu s-a întâmplat nimic.

Portul lui JonoF

Al doilea port pe Windows și mai târziu pe Linux de Jonathan Fowler (JonoF). Spre deosebire de portul icculus, acest port folosește DirectDraw în loc de SDL pe Windows și este semnificativ mai rapid. Multă vreme, motorul nu a suportat multiplayer , apoi a existat suport pentru multiplayer doar pentru doi jucători.

Sistemul Polymost (Polymost)

Autorul motorului și-a asumat sarcina de a actualiza Build Engine la un motor 3D cu drepturi depline. În notele de lansare JFDuke3D, Silverman scrie:

Când 3D Realms a lansat codurile sursă pentru Duke Nukem 3D, m-am gândit că cineva va face un port OpenGL - sau Direct3D . După câteva luni mi-am dat seama că nimeni nu lucrează la utilizarea accelerației hardware reale în Build, oamenii spun doar că nu este posibil. Mai târziu mi-am dat seama că singura modalitate de a realiza ceva este să faci totul singur.

Sistemul de randare polybridge folosește OpenGL pentru accelerarea hardware 3D. A fost introdusă și tehnologia Hightile , care permite înlocuirea resurselor standard de joc cu altele mai bune în diferite formate.

Polybridge a fost folosit în JFBuild de Jonathan Flower, JFDuke3D, JFSW și alte porturi bazate pe această bază de cod.

Alte porturi

Publicarea codului sursă EDuke 2.0 a adăugat capacitățile portului JonoF și a motorului Build Engine 2.1 la EDuke, în curând a apărut EDuke32, dar până în prezent doar EDuke este în dezvoltare.

Codul sursă pentru cea mai recentă versiune beta personală a EDuke 2.1 (care nu a ajuns niciodată la lansare) a fost publicat și după codurile sursă pentru EDuke 2.0. Există, de asemenea, un port bazat pe Icculus, cu nume de cod windeduke, care nu este în prezent în curs de dezvoltare.

EDuke conținea elemente ale codurilor sursă GI Nam și WW2 , care ar fi putut ușura dezvoltarea. A existat și o încercare de a recrea Blood pe motorul DarkPlaces și de a-l numi Transfuzie , dar din 2006 acest port este încă în dezvoltare timpurie.

Codurile sursă pentru Shadow Warrior au fost lansate pe 1 aprilie 2005, iar JonoF a publicat un port al jocului pe 2 aprilie 2005. Adevărat, el susține că a avut acces la codurile sursă pentru Shadow Warrior cu o săptămână înainte ca acestea să fie publicate.

Au fost lansate și codurile sursă pentru Witchaven , Witchaven II , Tekwar și Corridor 8 . Adevarul este discutabil este legalitatea publicarii lor.

Lista de jocuri Build Engine

Jocuri scrise în motorul de compilare principal

Jocuri scrise în coduri 3D Duke Nukem

Jocuri nelansate

Note

  1. Licențiat la icculus.org . Consultat la 16 iunie 2008. Arhivat din original la 14 mai 2008.
  2. Jocuri precum Doom - Liquidator: 1 și 2 . Consultat la 11 noiembrie 2012. Arhivat din original la 24 iunie 2016.

Link -uri