Főoldal
Bard's tale
Dragon Age
Gothic 3
KotOR
KotOR 2
Kult
Lionheart
NWN 2
The Fall
The Roots
The Witcher
Titan Quest
ToEE
Általános
Jellemzők
Rendszerspeci

Világ
Mitológia
Gothic I
Gothic II
Területek
Csoportok

Háttérinfók
Értékelések
Előzetesek
Interjúk
Így készült

2006.09.17. - Kwish

Engine interjuhé Philipp Krause-val

A német PC Games Hardwere oldalon megjelent egy hosszú interjuhé Philipp Krause engine programozóval. A szöveg angol fordítása egy lelkes rajongónak köszönhetően megjelent az RPGDot fórumán. Szóval ez egy két áttételes cikk, így olyan amilyen, és sok olyan tech-blabla volt benne, ami totál ződ, azokat a részeket tessék hangos kacaj kíséretében átugrani (különösen javallt annál a shaderes résznél, tralala). Volt ahol inkább kihagytam :-/

PCGH: Magatok fejlesztettétek ki az enginet. Miért nem licenszeltetek egyet? Mi az előnye egy saját engine fejlesztésének?
Különféle engineket teszteltünk. A legfontosabb oka annak, hogy végül nem licenszeltünk egyet sem az volt, hogy akkor egyetlen olyan engine sem létezett, ami töltögetés nélkül tudott volna kezelni egy akkora világot, mint a Gothic 3. A másik ok az a speciális munkafolyamat volt, ami egy ilyen folytonos világ elkészítéséhez szükséges. Ez azt jelenti, hogy a Game Editorunk teljesen passzol az igényeinkkel, s lehetővé tette, hogy a hihetetlen mennyiségű adattal is hatékonyan dolgozzunk a Gothic 3-ban. Azt sem szabad elfelejteni, hogy egy saját enginet ingyen használhatunk a következő játékainknál is.

PCGH: Az új engineben megtalálható még a Gothic 2 engine valami maradéka, vagy teljesen újra írtátok az egészet?
Teljesen a semmiből írtuk meg. Persze használtuk a Gothic 1 és Gothic 2 készítése során szerzett tudásunkat a tervezési fázisban. E egyetlen kódot sem használhattunk az enginek igen eltérő architektúrája és a Gothic 3 engine-nel szemben megfogalmazott magasabb követelmények miatt.

PCGH: Olyan közbenső cuccokat használtok, mint a Speedtree és az Emotion FX. Mi az erőssége ezeknek a szoftvereknek? Van még egyéb ilyen beintegrált program is a játékban?
A Speedtree napjainkban már standard engine komponenssé vált, és elég meggyőző a vizuális minősége és a gyors szerkesztő képessége. Ezenkívül még az Ageia Novodex-Enginejét, meg néhány kisebb nyílt-forráskódú cuccot használtunk a szerkesztő tervezésénél.

PCGH: Melyek azok a legfontosabb grafikai jellemzők, melyek lehetővé teszik, hogy álljátok a versenyt (pl. víz, látótávolság, részletezettség)?
A Gothicot mindig is az életteli és részletesen kidolgozott játékvilág jellemezte, nem pedig a különleges grafikus effektek. De ez nem azt jelenti, hogy ez utóbbiak hiányoznának a Gothic 3-ból. Úgy próbáltuk megtervezni a technikai aspektusokat, hogy támogassák a "Gothic-látványvilágot", ne pedig megsemmisítsék. Mivel nincs annyira kipolírozva a játék, mint az Oblivion, vagy néhány FPS, így sokkal visszafogottabban használtuk a látványelemeket, pl. a Spectacular Highlights-ot. A Gothic különleges atmoszférájának szintén része az időjárási rendszer. Különböző beállításokat hoztunk létre a Gothic 3 különböző területeinek esetében. Ezenkívül folytonos lesz az átmenet ezen területek és beállítások között.
Ezenkívül a Depth of Field effektus hihetetlen tiszta látképet biztosít majd (kb. 500 méter távolságra). A rendkívül rugalmas árnyékoló rendszerünknek köszönhetően a fejlesztők ezzel könnyen boldogultak.
A Gothic 3 teljes világa kézzel készült. Ez igaz a komplexen modellezett tájakra, mint ahogy a tereptárgyakra is, legyen az a legapróbb dolog, vagy akár egy teljesen felszerelt ork erődítmény. De a grafika mellett van még jónéhány kiemelkedő technikai teljesítmény a Gothic 3-ban, mint pl. az AI, ami lehetővé teszi az NPCk számára, hogy az egész világot beutazzák a dinamikus ösvénykeresési mechanizmus miatt.

PCGH: Melyek a renderelő rendszer technikai jellemzői? A shader 1 és shader 2 hardverrel rendelkező játékosok is láthatják ezeket?
Az egyik kiemelkedő dolog a fény és árnyék rendszer. A fényrendszer a dinamikus fényhatások mellett támogatja még a pixelenként eloszlást, a tükröződő fényt és az izét (hehe, szóval ezt, bocs: per pixel spherical harmonics ambient lighting with per vertex amient occlusion, aki tudja mi ez, szólhat). Hogy az összes ilyen hatást lássátok, ahhoz szükségetek van egy shader 3 technológiás vga kártyára. Ez kiszámolja a részletes árnyékokat és statikát pixelenként. A 2 és 3 shader közötti különbség ezenkívül már csak a kártyák specifikus eltéréseiből adódhatnak. Például hogy az adott kártya támogatja-e a Depth of Field effektet, vagy sem. A Parallax és Bump Mapping mindkét shader által támogatott dolog. A shader 1 kártyák viszont csak a pixelenkénti fényt és a parallax mappinget bírják kezelni.

PCGH: Hogyan állították össze az árnyékolást, a shadereket? Hagyjátok, hogy a HLSL-Kódból legyenek összeszerkesztve, attól függően, hogy a kártya milyen shader-modellt támogat, vagy pedig előre elkészített csomagocskákat hoztatok létre a különböző grafikus kártyák számára a lehetőségeik függvényében (ha ez utóbb, akkor milyen kártyákról van szó)?
A HLSL-Shadert használtuk. Minden shader verzióhoz, és minden shader grafikus megvalósításához (mint ahogy általában lenni szokott: víz, növényzet, partcile effektek, ég... ) különböző HLSL-shadereket írtunk. Az ilyesféle shaderek csak az alap funkciókat adják, mint pl. a fény kiszámítása, vagy elhelyezése, és ezeket még kiegészíti a többi kód, amit a shader makró tesz hozzájuk. Így például ha a shadernek szüksége van valami színeloszlásra, akkor a shader kódnak nincs szüksége a textúra, vagy a konstans beolvasására, hanem csak arra a makróra, amit helyettesít az engine által a szerkesztő folyamatban berenderelt shader kód. Szóval eltérő shaderek generálódnak a különböző részek esetében. Ezeket a shadereket aztán úgy kezeljük, hogy a legenerált shader csak egy adott időpontban létezik.
A Gothic 3 szerkesztőjében a shader egyszerű részeinek közel minden kombinációja legenerálható. Lehetséges összekeverni, vagy egymásba olvasztani a textúrákat, vagy manipulálni a textúrák koordinátáit pl. a parallax mapping használatához.

PCGH: Kihasználjátok a shader model 3 technikai lehetőségeit? Ha igen, akkor használjátok a shader model 3-at például az olyan dolgokra, mint a "dynamic branching" és a "high interpolator counts", hogy növeljétek a teljesítményt? Vagy olyan új effektek létrehozására használjátok, ami csak a "vertex texturing", vagy az "FP32 rendereléssel" lehetséges?
Csak néhány helyen használjuk a shader 3 modellt "dynamic branching"-re, mivel... (indoklás kihagyva, talán több kárt okoz, mint használ. Pillanatnyilag nincs olyan effekt, mely a "vertex texturing"-re, vagy az "FP32 renderelésre" épülne.

PCGH: Használja a Gothic 3 az FP16-HDR világítást?
Nem, nem használunk FP-HDR -Renderelést.

PCGH: Volt időtök arra, hogy felmérjétek a windows vistához kapcsolódó Direct3D10-et, vagy a shader model 4-et?
Mivel a Gothic 3 megjelenésekor ezeknek a dolgoknak még nem lesz hardver támogatása, így nem is töltöttünk velük túl sok időt. De az is biztos, hogy akkora lépés van a DX9 és DX10 között, hogy az nagyon sok rendszer teljes felülvizsgálatát igényli majd.

PCGH: A renderelési folyamatot optimalizáltátok az SLI, vagy Crossfire rendszerekhez?
Szorosan együttműködünk az nVidia-val és az ATi-val is, s célunk, hogy mindkét rendszert támogassuk. De az még nem dőlt el, hogy ezek már a megjelenéskor benne lesznek a játékban, vagy csak egy patchel kerülnek be.

PCGH: A széles felbontás (16:10) vagy a multi megjelenítés támogatott?
Nem.

PCGH: Az engine optimalizált a multi-magos procikra? Ha igen, mely számításokat végzitek különálló módon? Milyen mértékű teljesítmény növekedést várhatunk?
A multi-core felhasználók előnyt élveznek a egymagos felhasználókkal szemben a Gothic 3-ban, a folytonos világnak köszönhetően, melyben mindig tölteni kell az új elemeket, forrásokat (textúrák, a világ részei) a háttérben. A szokásos egyéni számítási tételek (mint a hang és a fizika) mellett, saját számítási módja lesz a világelemeknek, a statikus pálya elemeknek, és a screen-geometria összegyűjtésének.
A teljesítmény növekedés olyan 30%-os.

PCGH: Mi állt a duál-magos optimalizálás fókuszában, a teljesítmény növelés, vagy a jobb grafika, vagy esetleg az ambiciózusabb AI és fizika?
A fő hangsúlyt arra fektettük, hogy sokkal simább legyen az előrehaladás a Gothic 3 hatalmas világában.

PCGH: Miért döntöttetek a Novodex fizikai enginejének licenszelése mellett a saját fejlesztés helyett? Mi ennek az előnye?
Nos, a saját fizikai engine megírása igazán nehéz feladata, különösen ha a költségét összeveted a Novodex licensz díjával. Ráadásul a Novodex egy folyamatosan fejlődő rendszer, aminek jó a teljesítménye és stabilan fut. A Gothic 3-ban egyébként nincs túlságosan fizika, a játékmenetet sem befolyásolja. A Ragdoll csak egy kiegészítés a megszokott "Rigid-body" fizikához, azoknál az effekteknél, melyek a fizikai enginet használják.

Kérdező: Thilo Bayer
Forrás: PCGames Hardware - Gothic 3: Technik-Talk mit Engine-Programmierer Philipp Krause
Angol fordító: Roi Danton
Angol forrás: RPGDot forum - Tech interview - Anyone up for a translation job?




Frissebb kapcsolódó cikkek:

2006.09.20. - Gameplay Monthly interjuhé
2006.10.09. - FiringSquad interjuhé
2006.10.11. - Interjuhé a zenei anyag készítéséről
2006.10.12. - Közösségi kérdezz-felelek
2007.01.14. - Karácsonyi interjuhé

Korábbi kapcsolódó cikkek:

2006.09.15. - Áttekintő interjuhé az Aspyr-tól
2006.09.06. - WoG interjuhé
2006.05.20. - RPG Codex interjuhé #2
2006.05.14. - IGN RPGVault interjuhé
2006.05.03. - RPG Codex interjuhé #1


Az összes kapcsolódó cikk felsorolása