X-Ray (motor de joc)

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 6 iulie 2021; verificările necesită 4 modificări .
Raze X

Sigla motorului la o prezentare din 2004.
Tip de Motor de joc ( Lista )
Dezvoltator Lumea jocurilor GSC
Programatori cheie Oles Shishkovtsov, Alexander Maksimchuk, Dmitri Yasenev
Data anunțului 13 noiembrie 2001
Platforme hardware Calculatoare compatibile cu IBM PC
Sistem de operare acceptat Windows , Linux , Xbox 360 (suport limitat)
Scris în limbi C/ C++
Licență proprietate
ultima versiune 1.6.02 (build 4017) / 2 februarie 2010
Primul joc la motor STALKER: Shadow of Chernobyl / 20 martie 2007
Ultimul joc la motor STALKER: Call of Pripyat / 2 octombrie 2009

X-Ray  este un motor de joc creat de dezvoltatorii ucraineni de jocuri pe computer GSC Game World pentru jocul STALKER: Shadow of Chernobyl .

Motorul a fost prezentat publicului încă din 2001. Inițial, a fost concentrat pe DirectX 8, dar ulterior a fost rafinat de multe ori pentru a se potrivi cu timpul său. Astfel, a apărut suportul pentru DirectX 9, iar odată cu lansarea STALKER: Clear Sky , a fost adăugat DirectX 10 . După lansarea patch-ului 1.5.07 pentru STALKER: Clear Sky, în joc a apărut suportul DirectX 10.1. În STALKER: Call of Pripyat , a fost adăugat la motor suport DirectX 11 .

Programatorii Oles Shishkovtsov și Alexander Maksimchuk [1] au lucrat la partea grafică a motorului (au lucrat și la 4A Games pe proiectul Metro 2033 bazat pe cartea cu același nume a lui Dmitry Glukhovsky [2] ).

Caracteristicile și caracteristicile motorului

Motor grafic

Motorul grafic , componenta principală a motorului X-Ray, folosește tehnologia de umbrire amânată pentru a obține o fidelitate ridicată în redarea luminii cu o complexitate geometrică ridicată a scenei .  Este acceptată redarea în virgulă mobilă cu interval dinamic înalt .

Inițial, motorul a fost concentrat pe DirectX 8 , dar ulterior a fost rafinat de multe ori pentru a se potrivi cu timpul său. Astfel, DirectX 8 a fost înlocuit cu DirectX 9 , a cărui implementare a fost împărțită în versiuni, cu iluminare dinamică și iluminare statică, implementate folosind tehnologia de umbrire întârziată de tipul hărții Light , astfel, în jocul STALKER: Shadow of Chernobyl , utilizatorul ar putea selecta versiunea API -ului grafic . În versiunea X-Ray Engine 1.5, pe care se bazează jocul STALKER: Clear Sky din 2008 , dezvoltatorii au adăugat suport DirectX 10 . Patch-ul 1.5.07 pentru acest joc a adăugat suport DirectX 10.1 la motor.

Pe 9 septembrie 2009, AMD-ATi Senior Marketing Manager Ian McNaughton ( ing.  Ian „Cabrtosr” McNaughton ) a publicat un articol pe blogul său „DirectX 11 - La ce să te aștepți!”, în care descria avantajele și principalele caracteristici ale Direct3D 11 . În acest articol, el a declarat că „STALKER: Call of Pripyat”, împreună cu „ BattleForge ” și „ Colin McRae: Dirt 2 ”, vor folosi DirectX 11 [3] [4] .

Astfel, cea mai recentă versiune a motorului (1.6) acceptă următoarele versiuni Direct3D :

Motorul grafic acceptă detalii ridicate (până la 4.000.000 de poligoane per cadru) și este capabil să reda atât spațiile interioare, cât și cele exterioare cu o calitate înaltă, suprafața spațiilor deschise putând ajunge la 2 metri pătrați. km. Există un sistem de schimbare dinamică a zilei și a nopții, suport pentru diferite efecte meteorologice precum ploaie, vânt, ceață.

Sistemul de iluminare este complet dinamic și pe pixel . Sunt posibile umbre fine și se folosește tehnologia Screen Space Ambient Occlusion . Tehnologiile de texturare în relief utilizate sunt cartografierea normală și maparea Parallax .

Datorită naturii tehnologiei de iluminare amânată și umbrire utilizată, motorul nu o poate folosi simultan împreună cu anti-aliasing pe tot ecranul în modul DX9 [5] .

Motor de fizică

Motorul X-Ray utilizează motorul fizic gratuit Open Dynamics Engine .

Joc AI

Inteligența artificială a jocului din X-Ray Engine se numește „A-Life” ( în engleză  artificial life  - Russian artificial life ) [6] .

Esența [A-Life] este că personajele din joc își trăiesc viața și există tot timpul, și nu doar atunci când jucătorul le vede. Acest lucru este contrar optimizărilor obișnuite folosite în dezvoltarea jocului [...] Am introdus doi termeni care caracterizează modele de comportament a 2 caractere care diferă prin gradul de detaliu: offline și online. Comportamentul offline al personajului este foarte simplu în ceea ce privește detaliile: personajul nu redă animații, sunete, nu gestionează activ inventarul, nu construiește trasee netezite detaliate (deși construiește căi conform graficului global de navigare, dar mai multe despre asta mai târziu). ), etc. Comportamentul online, în schimb, are o granularitate completă. Acea. se poate considera că comportamentul offline este rodul comportamentului online.

În sistemul nostru, în timp ce jucătorul joacă la nivelul său, alte personaje trăiesc la alte niveluri, de exemplu. sunt offline, adică utilizați comportamentul offline. Mai mult, din cauza populației mari, nu toate personajele din același nivel au comportament online, ci doar cele care se află într-o anumită rază de jucător (acest lucru poate depinde de niveluri, de obicei în jur de 150 de metri) sau la cererea jocului. designeri.

Pentru a implementa acest lucru, simulatorul monitorizează mișcarea jucătorului și a obiectelor offline și le traduce în online/offline. Când se calculează tranziția obiectelor, se folosește un truc standard cu inerție: raza de tranziție offline este mai mare decât raza de tranziție online.

În continuare, merită menționată navigarea obiectelor online și offline. Avem niveluri în joc, pentru fiecare dintre acestea fiind creat un grafic de navigare, pe care personajele le folosesc pentru a se deplasa online. Îl numim un grafic detaliat. Pentru fiecare grafic detaliat, este creat și analogul său mai puțin detaliat, ale cărui vârfuri pot fi conectate cu vârfurile aceluiași grafic al unui/alte nivel/e. Acea. după ce combinăm toate astfel de grafice împreună, obținem un grafic care combină toate nivelurile. Este folosit de personaje pentru a se deplasa offline. De asemenea, este folosit de personaje online atunci când își îndeplinesc obiectivele strategice. De exemplu, dacă un personaj online decide să meargă la un alt nivel, atunci el construiește o cale de-a lungul graficului global, apoi construiește o cale de-a lungul graficului detaliat al nivelului său de la poziția sa până la punctul graficului global. Dacă acest punct este deja la un alt nivel, atunci el se teleportează acolo și iese automat offline. Pentru a preveni ca acest lucru să se întâmple în fața jucătorului, am setat punctele de tranziție pentru personajele jocului mai departe decât punctele de tranziție ale jucătorului, undeva „după colț”.

Motor de sunet

Motorul de sunet folosește tehnologia Creative EAX pentru generarea de sunet de înaltă calitate în spațiu. Ieșirea sunetului cu șase canale (5.1) este acceptată. Datele audio sunt stocate în containere media MP3 , MP2 , WMA , ADPCM , Ogg .

Rețea

Motorul utilizează un model de rețea client-server și tehnologie de calcul distribuită . Motorul acceptă până la 32 de jucători într-un meci.

Lista de jocuri care utilizează motorul X-Ray

Numele jocului Data lansării jocului Platforme Versiune de motor
Oblivion Lost Anulat Windows , Xbox Versiunea alfa a X-Ray Engine 1.0
STALKER: Umbra Cernobîlului 20 martie 2007 Windows Motorul cu raze X 1.0
STALKER: Cer senin 22 august 2008 Windows Motor cu raze X 1.5
STALKER: Apelul lui Pripyat 2 octombrie 2009 Windows Motor cu raze X 1.6

Cod sursă scurs online

Pe 28 aprilie 2014, codul sursă pentru motorul X-Ray, versiunea aproximativă 1.0007 (rc1), a fost postat online pe un site de fani. Arhiva de 7 MB a fost codul sursă complet pentru motorul C++ real, cu excepția SDK -ului jocului , a utilităților, a plug-in-urilor și a componentelor terțe.

Pe 9 august, codul sursă complet al versiunilor care corespund aproximativ patch-urilor 1.0007 (rc1) (Shadow of Chernobyl) 1.5.10 (Clear Sky) a fost postat de unul dintre prietenii GSC pe forumul gameru.net.

Pe 16 septembrie, a fost lansat codul motorului Call of Pripyat (versiunea 1.6.02).

Pe 11 aprilie 2015, codul sursă al motorului X-Ray 2.0, neterminat, a fost postat pe același forum gameru.net, iar pe 14 aprilie, codul pentru motorul celei mai mari modificări de joc, Lost Alpha.

Deși cea mai recentă versiune oficială a motorului este X-Ray Engine 1.6.02, în același timp, versiuni mai avansate ale motorului sunt dezvoltate de către fanii jocului, în care au fost remediate multe erori critice față de motorul original, noi au fost adăugate caracteristici, suport pentru procesoare multi-core și multi-threading, precum și port pentru Linux.

Cu permisiunea neoficială a lui Sergey Grigorovici , este permisă utilizarea codului sursă al X-Ray Engine 1.xx în proiecte necomerciale .

Note

  1. Echipa STALKER Componența completă a echipei de dezvoltare . stalker-game-world.com. Data accesului: 21 iunie 2009. Arhivat din original la 28 februarie 2012.
  2. Maxim „Maxx” Mikheenko. Interviu: Metro 2033 . Țara Jocurilor (1 decembrie 2007). Consultat la 21 iunie 2009. Arhivat din original pe 11 septembrie 2014.
  3. Ian „Cabrtosr” McNaughton. DirectX 11 - La ce să vă așteptați!  (engleză) . Bloguri AMD (9 septembrie 2009). Data accesului: 12 septembrie 2009. Arhivat din original la 28 februarie 2012.
  4. Andrew Burnes. ATI pe DirectX 11  Gaming . Voodoo Extreme 3D (11 septembrie 2009). Data accesului: 12 septembrie 2009. Arhivat din original la 28 februarie 2012.
  5. Motor cu raze X.  ModDB . Data accesului: 7 mai 2009. Arhivat din original la 28 februarie 2012.
  6. Vitali Kazunov (Lockust). STALKER: Clear Sky - un interviu despre problemele supraviețuirii inteligenței artificiale în zona Cernobîl . GameTech (13 iunie 2008). — Interviu cu Dmitry Yasenev, principalul dezvoltator al jocului AI din joc. Consultat la 14 mai 2009. Arhivat din original la 8 iulie 2013.

Link -uri