X-Ray (spelmotor)

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 6 juli 2021; kontroller kräver 4 redigeringar .
Röntgen

Motorns logotyp vid en presentation 2004.
Sorts Spelmotor ( lista )
Utvecklaren GSC Game World
Nyckelprogrammerare _ Oles Shishkovtsov, Alexander Maksimchuk, Dmitry Yasenev
Annonsdatum 13 november 2001
Hårdvaruplattformar IBM-PC-kompatibla datorer
OS som stöds Windows , Linux , Xbox 360 (begränsat stöd)
Skrivet i tungomål C/ C++
Licens Proprietär
senaste versionen 1.6.02 (byggd 4017) / 2 februari 2010
Första spelet på motorn STALKER: Shadow of Chernobyl / 20 mars 2007
Sista spelet på motorn STALKER: Call of Pripyat / 2 oktober 2009

X-Ray  är en spelmotor skapad av den ukrainska datorspelsutvecklaren GSC Game World för spelet STALKER: Shadow of Chernobyl .

Motorn introducerades för allmänheten redan 2001. Inledningsvis var det fokuserat på DirectX 8, men förfinades sedan många gånger för att matcha sin tid. Således dök stöd för DirectX 9 upp i den, och med lanseringen av STALKER: Clear Sky , lades DirectX 10 till . Efter lanseringen av patch 1.5.07 för STALKER: Clear Sky, dök stöd för DirectX 10.1 upp i spelet. I STALKER: Call of Pripyat lades DirectX 11 -stöd till motorn .

Programmerarna Oles Shishkovtsov och Alexander Maksimchuk [1] arbetade med den grafiska delen av motorn (de arbetade också på 4A Games på Metro 2033- projektet baserat på boken med samma namn av Dmitry Glukhovsky [2] ).

Motorns egenskaper och funktioner

Grafikmotor

Grafikmotorn , huvudkomponenten i X-Ray Engine, använder Deferred shading-teknik för att uppnå hög trovärdighet i ljusåtergivning med hög geometrisk komplexitet i scenen .  Flyttalsrendering med högt dynamiskt omfång stöds .

Till en början var motorn fokuserad på DirectX 8 , men sedan förfinades den många gånger för att matcha sin tid. Sålunda ersattes DirectX 8 av DirectX 9 , vars implementering var uppdelad i versioner, med dynamisk belysning och statisk belysning, implementerad med tekniken för fördröjd skuggning av Light map -typen , alltså i spelet STALKER: Shadow of Chernobyl , användaren kan välja version av det grafiska API :et . I version X-Ray Engine 1.5, som 2008 års spel STALKER: Clear Sky är baserat på, lade utvecklarna till DirectX 10 -stöd . Patch 1.5.07 för detta spel lade till stöd för DirectX 10.1 till motorn.

Den 9 september 2009 publicerade AMD-ATi Senior Marketing Manager Ian McNaughton ( Eng.  Ian “Cabrtosr” McNaughton ) en artikel på sin blogg "DirectX 11 - What to expect!", där han beskrev fördelarna och huvuddragen med Direct3D 11 . I den här artikeln sa han att "STALKER: Call of Pripyat", tillsammans med " BattleForge " och " Colin McRae: Dirt 2 ", kommer att använda DirectX 11 [3] [4] .

Den senaste versionen av motorn (1.6) stöder alltså följande Direct3D- versioner :

Grafikmotorn stöder hög detaljrikedom (upp till 4 000 000 polygoner per bildruta) och kan återge både inomhus- och utomhusutrymmen med hög kvalitet, ytan med öppna ytor kan nå 2 kvadratmeter. km. Det finns ett system med dynamisk förändring av dag och natt, stöd för olika vädereffekter som regn, vind, dimma.

Belysningssystemet är helt dynamiskt och per pixel . Mjuka skuggor är möjliga och Screen Space Ambient Occlusion -teknik används . Relief texturing-tekniker som används är Normal mapping och Parallaxmapping .

På grund av den fördröjda belysnings- och skuggtekniken som används kan motorn inte samtidigt använda den i kombination med helskärmskantutjämning i DX9-läge [5] .

Fysikmotor

X-Ray Engine använder den kostnadsfria fysikmotorn Open Dynamics Engine .

Game AI

Spelets artificiella intelligens i X-Ray Engine kallas "A-Life" ( engelsk  artificiellt liv  - ryskt artificiellt liv ) [6] .

Kärnan i [A-Life] är att karaktärerna i spelet lever sina liv och existerar hela tiden, och inte bara när spelaren ser dem. Detta strider mot de vanliga optimeringar som används vid spelutveckling [...] Vi har introducerat två termer som kännetecknar 2 karaktärsbeteendemodeller som skiljer sig åt i detaljgraden: offline och online. Karaktärens offlinebeteende är mycket enkelt när det gäller detaljer: karaktären spelar inte animationer, låter, hanterar inte aktivt inventering, bygger inte detaljerade utjämnade banor (även om den bygger banor enligt den globala navigeringsgrafen, men mer om det senare ), etc. Onlinebeteende har däremot en fullständig granularitet. Den där. det kan anses att offlinebeteende är frukten av onlinebeteende.

I vårt system, medan spelaren spelar på sin nivå, lever andra karaktärer på andra nivåer, d.v.s. är offline, dvs. använda offlinebeteende. Dessutom, på grund av den stora befolkningen, har inte alla karaktärer inom samma nivå onlinebeteende, utan bara de som befinner sig inom en given radie från spelaren (detta kan bero på nivåerna, vanligtvis runt 150 meter) eller på spelets begäran designers.

För att implementera detta övervakar simulatorn spelarens och objektens rörelse offline och översätter dem till online/offline. Vid beräkning av objekts övergång används ett standardtrick med tröghet: offlineövergångsradien är större än onlineövergångsradien.

Därefter är det värt att nämna navigeringen av objekt online och offline. Vi har nivåer i spelet, för var och en skapas en navigeringsgraf, som karaktärer använder för att röra sig online. Vi kallar det en detaljerad graf. För varje detaljerad graf skapas också dess mindre detaljerade analoga, vars hörn kan kopplas samman med hörnen på samma graf på en annan nivå/er. Den där. efter att ha kombinerat alla sådana grafer tillsammans får vi en graf som kombinerar alla nivåer. Den används av karaktärerna för att flytta offline. Det används också av karaktärer online när de uppfyller sina strategiska mål. Till exempel, om en karaktär online bestämmer sig för att gå till en annan nivå, då bygger han en bana längs den globala grafen och bygger sedan en bana längs den detaljerade grafen för sin nivå från sin position till punkten i den globala grafen. Om denna punkt redan är på en annan nivå, så teleporterar han dit och går automatiskt offline. För att förhindra att detta händer framför spelaren ställer vi in ​​övergångspunkterna för spelkaraktärer längre än spelarens övergångspunkter, någonstans "runt hörnet"

Ljudmotor

Ljudmotorn använder Creative EAX -teknik för högkvalitativ ljudgenerering i rymden. Sexkanals (5.1) ljudutgång stöds. Ljuddata lagras i MP3 , MP2 , WMA , ADPCM , Ogg mediabehållare .

Nätverk

Motorn använder en klient-server- nätverksmodell och distribuerad datorteknik . Motorn stödjer upp till 32 spelare i en match.

Lista över spel som använder X-Ray Engine

Namnet på spelet Spelets släppdatum Plattformar Motorversion
Oblivion Lost Inställt Windows , Xbox Alfaversion av X-Ray Engine 1.0
STALKER: Shadow of Chernobyl 20 mars 2007 Windows Röntgenmotor 1.0
STALKER: Klar himmel 22 augusti 2008 Windows Röntgenmotor 1.5
STALKER: Call of Pripyat 2 oktober 2009 Windows Röntgenmotor 1.6

Källkod läckt online

Den 28 april 2014 publicerades källkoden för X-Ray-motorn, version cirka 1.0007 (rc1), online på en fansajt. Arkivet på 7 MB var den kompletta källkoden för den faktiska C++- motorn , med undantag för spelets SDK , verktyg, plugin-program och tredjepartskomponenter.

Den 9 augusti postades den fullständiga källkoden för versioner som ungefär motsvarar patchar 1.0007 (rc1) (Shadow of Chernobyl) 1.5.10 (Clear Sky) av en av GSC-vänner på gameru.net-forumet.

Den 16 september släpptes Call of Pripyat-motorkoden (version 1.6.02).

Den 11 april 2015 publicerades källkoden för den aldrig färdiga X-Ray Engine 2.0 på samma gameru.net-forum och den 14 april koden för motorn för den största spelmodifieringen, Lost Alpha.

Även om den officiella senaste versionen av motorn är X-Ray Engine 1.6.02, utvecklas samtidigt mer avancerade versioner av motorn av spelfans, där många kritiska buggar har fixats jämfört med originalmotorn, nya funktioner har lagts till, stöd för multi-core processorer och multi-threading, samt port för Linux.

Med inofficiellt tillstånd från Sergey Grigorovich är det tillåtet att använda källkoden för X-Ray Engine 1.xx i icke-kommersiella projekt .

Anteckningar

  1. STALKER Team Fullständig sammansättning av utvecklingsteamet . stalker-game-world.com. Datum för åtkomst: 21 juni 2009. Arkiverad från originalet den 28 februari 2012.
  2. Maxim "Maxx" Mikheenko. Intervju: Metro 2033 . Land of Games (1 december 2007). Hämtad 21 juni 2009. Arkiverad från originalet 11 september 2014.
  3. Ian "Cabrtosr" McNaughton. DirectX 11 - Vad du kan förvänta dig!  (engelska) . AMD -bloggar (9 september 2009). Datum för åtkomst: 12 september 2009. Arkiverad från originalet den 28 februari 2012.
  4. Andrew Burnes. ATI på DirectX 11  Gaming . Voodoo Extreme 3D (11 september 2009). Datum för åtkomst: 12 september 2009. Arkiverad från originalet den 28 februari 2012.
  5. Röntgenmotor  . _ ModDB . Tillträdesdatum: 7 maj 2009. Arkiverad från originalet 28 februari 2012.
  6. Vitaly Kazunov (Lockust). STALKER: Clear Sky - en intervju om problemen med artificiell intelligens överlevnad i Tjernobyl-zonen . GameTech (13 juni 2008). — Intervju med Dmitry Yasenev, huvudutvecklaren av spel AI i spelet. Hämtad 14 maj 2009. Arkiverad från originalet 8 juli 2013.

Länkar