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
Történet
FAQ
Board FAQ

Karakterek
NPCk
Tulajdonságok
Szakértelmek

Játékmenet
Harcrendszer
LWA
Küldetések
Tárgykombók

Háttérinfók
Értékelések
Előzetes
Interjuk
Development Diary
Letöltések
Galéria

2004.05.21. - Kwish

Development Diary #3 - Engine


<2004.05.19.> Sebastian Tusk technikai igazgató beszél arról néhány szót, hogy milyen engine támogatja a SSE közeljövőben megjelenő poszt-apokaliptikus RPGjét. (Őszintén szólva, szerintem nem nagyon van benne érdekes információ, inkább a játékelemekről beszélnének.)

Helló, itt Sebastian Tusk a TF technikai igazgatója. A játékfejlesztés azóta hobbim, mióta számítástechnikával foglalkozom. A vizsgám után közel öt évvel ezelőtt az SSE-hez szerződtem. A következő cikkecskében mesélek arról egy kicsit, hogy mi is volt a szerepem a játék létrehozásában.

Nos, mi is egy technikai igazgató feladata? Ha egy játékfejlesztő kitalál valamit, ami látni szeretne a játékban, az én feladatom kitalálni, vajon megvalósítható-e a dolog, hogyan lehet megvalósítani, milyen erőforrások kellenek hozzá, és meg kell azt is becsülnöm, hogy kábé mennyi idő alatt készülünk el vele, mármint hogy mennyi időbe telik, míg a koncepcióból a végső kód megszületik. Bizonyos esetekben, ha nagyobb probléma van, résztveszek a hibaelhárítás, rovarirtás becses folyamatában is.

2002 elején kezdtünk dolgozni a TF fejlesztésén, és az első feladat, amivel foglalkoznom kellett, hogy felmérjem a technikai szükségleteket. Ez alapvetően azt jelentette, hogy ki kellett találnom, vajon 2004-ben milyen hardware-el rendelkezik majd egy átlagos játékos, mit is jelent ez majd a támogatott jellemzők tekintetében, és milyen CPU és grafikus kártyák határozzák meg a minimális elvárást. Nincs olyan képlet, amit abban a koncepcionális fázisban használhattunk volna, úgyhogy a tapasztalat és az intuíció nagyon fontos szerepet játszott a dologban, mint ahogy az is, hogy tájékozottnak kellett lennem az API fejlesztők, és chip gyártók terveit illetően is.

Ha már van valami képed arról, hogy milyen hardware követelményeket szeretnél, lehetővé válik jobban meghatározni azt az enginet amit a terveid szerint használni szeretnél, s azt, hogy hogyan is fogod majd összerakni. Például a fejlesztők egyértelműen akartak járműveket, olyanokat amelyek meghatározott fizikai paraméterek szerint működnek a játékban, hasonlóan ahhoz, mintha valaki egy szimulátort próbálna ki. Úgy döntöttem belemegyek a dologba, ami aztán szükségszerűen azt eredményezte, hogy még egy programozót fel kellett vennünk.

A következő feladatunk az volt, hogy a szintek, területek tervezőinek létrehozzunk valamit, amivel már szórakozhatnak. Megközelítőleg három hónapunkba került mire befejeztük az első olyan modellt, amivel már dolgozni is tudtak. Ezzel már létrehozhattak területeket, és tárgyakat is helyezhettek rájuk.

Az engine specifikációja értelemszerűen fontos volt a csapat másik részének is, mivel megbecsülhettük, hogy mennyi poligonból épülnek fel a tárgyak, hogyan állnak fel a karakterek, hogy működik a textúrázás, mindezt a fejlesztők inputjai, és igényei szerint.

Ezt követően a csapat megkezdte a script engine programozását. Miután az alapok megvoltak, megkezdhettük a munkát a részletek kidolgozásán, anélkül, hogy a csapat többi tagjának várnia kellett volna az eredményre. Természetesen az idő múlásával az engine minden része fejlődött, s folyamatosan hozzátettünk valamit, illetve optimalizáltuk a meglevő dolgokat.

Ami a belső tesztelési folyamatainkat illeti mindenféle PCs konfigurációkat felállítottunk, hogy megbizonyosodjunk arról, a játék nem néz ki rosszabbul a meghatározott, különböző fajtájú grafikus kártyák használatával. Kihasználtuk az olyan társaságok segítségét is, mint az ATI vagy az nVidia, akik lehetővé tették, hogy futassuk a játékot az alap értékek mellett a laborjaikban. Mindezeken túlmenően egy külső céggel is megállapodást kötünk majd a végső szakaszban, hogy ellenőrizzük a rendszerünk működését, mivel nekik jóval komolyabb tesztrendszerek állnak rendelkezésükre.

Most, hogy elmondtam néhány dolgot a fejlesztés folyamatáról, mondanék egy pár dolgot magáról az engineről is. Dióhéjban a TF alatt futó engine DirectX9 kompatíbilis. Persze ennél sokkal több dologról is lehet beszélni.

Mielőtt ténylegesen elkezdtük a kódolást, azt gondoltam, hogy a külső és belső környezet létrehozása lesz az egyik legidőigényesebb rész. És igazam is lett. A belsők implementálása jóval trükkösebb dolog, mint gondolnátok. A tárgyak elhelyezése, az ajtók kezelése, és az útkeresés problémái csak néhány azon dolgok közül, melyek kihívást jelentettek. A másik dolog, amin sokat agyaltunk, a kamera, ami nincs rögzítve, és mindig olyan közel van a karakterhez, mint például.. a Gothic-ban.

Nagyon sok játék úgy oldja meg ezt problémát, hogy szépen eltünteti, ”lekeveri” a külső részt, ha belépsz egy épületbe. Erre példa a Morrowind, de a Fallout 3 is ilyen módon kezelte ezt a dolgot. A TF egyik jellemzője azonban a folytonos környezet. Egy kicsit sokáig tartott a dolog, de végül elégedettek vagyunk az eredménnyel. Nincs semmilyen töltögetés, ha beléptek egy épületbe. Átnézve az ablakon szemügyre vehetitek a belső részt, és ez fordítva is működik, láthattok minden karaktert is tárgyat. (Őszintén szólva, nem értem mi olyan nagy dolog ebben, hiszen a JA2 is tudta ezt a dolgot.)

Na persze bekódoltunk néhány igazán szép és különleges effektet is az enginebe. A TF világa egy hatalmas sivatagi pusztulat, így a hő miatti képremegés nyilvánvaló dolog volt számunkra. Ilyesmi hatással találkozhattok, ha egy forró nyári napon az átmelegedett talaj felett megpróbáltok elnézni. Mindezek mellett a szélfútta homok kavargása tovább erősíti a sivatagi érzést. Biztos vagyok abban is, hogy tetszeni fognak a fegyverekhez készített effektusaink is.

Igazán meg vagyok elégedve azzal a móddal, ahogy megvalósítottuk az eget, ami igazán jól sikerült. A pára effekt és a dinamikus árnyékok egészítik ki a benyomást. A másik lényeges elem a kezelőfelület beintegrálása volt. A megjelenítés az napi időszaktól függ. Éjszaka például valamiféle sejtelmes villódzás veszi körül. Ez elsőre furának tűnik, de higgyétek el, nemcsak azért tettük a játékba, hogy még egy vizuális trükkel elkápráztassunk benneteket. Nem, igazából azért készítettük ilyenre, hogy jobban beleolvadjon a kezelőfelület az aktuális képernyőn futó eseményekbe, mert rendszerint ezt a két dolgot egy játékon belül teljesen külön kezeli, s nem törődnek azzal, hogy passzolnak-e egymáshoz.

Már említettem a járművek fizikáját. Az autókat (és hasonló járműveket) a billentyűzeten keresztül irányíthatjuk. Majd láthatjátok, hogy a vezetés modellezése nagyon pontos (de persze még mindig szórakoztató), és olyan apróságokat is tartalmaz, mint például a felfüggesztés szimulálása.

Említettem már a Fordított Mozit (Inverse Kinematics)? ’Asszem még nem, pedig ez is azon elemek közé tartozik, melyet érdemes megemlíteni. Az IK röviden arra szolgál, hogy lemodellezzük a karakterek mozgását, s hogy hogyan lépjenek kapcsolatba a környezettel. Például a lábad helyzete attól függ, és az alapján kerül meghatározásra, hogy milyen talajon állsz. Képzeld el, hogy karaktered egy dombtetőn helyezkedik el. Most, az IK-nak köszönhetően a lábad nem fog közelebbinek látszani a dombhoz. (Itt asszem nem jött át valami, legalábbis nálam biztosan..) A másik példa erre a karakterek célzása. A fegyverük pont arra mutat, amerre a becélzott ellenfél áll, és követi annak mozgását. Nem egy előre beállított pózon alapszik. És a karakterek elfordítják a fejüket, hogy egy meghatározott tárgyat megnézzenek (Grim Fandango stílusban).

Mint már bizonyára észrevettétek néhány dolog amiről eddig beszéltem az FPS-ekben, meg a simekben található meg, és most fog először RPGben megjelenni. Ami igazán kellemes ebben az engineben, hogy a texture mapping esetében meglehetősen rugalmasan használható. A helyszínek tervezői szabadon méretezhetik és forgathatják a dolgokat, ahogy nekik tetszik, s nem köti a kezüket valami tile-alapú megközelítés.

Eddig igazán elégedettek vagyunk az eredménnyel. No persze folyamatosan dolgozunk a kódon, még akkor is, mikor ezeket a sorokat olvassátok. (No, speciel kétlem, hogy hajnali fél kettő fele olyan nagy lenne a meló arrafelé..) Jelenleg épp a Mező mélysége blur effektussal kísérletezünk. Nem igazán használjuk majd a játék közben, de igazán jól mutat majd az átvezető képeken.

Hardware követelmények? Nos, legalább egy 1.2 GHz CPU, és 256 MB RAM kell a PC-be. A játék persze futni fog a gyengébb konfigurációkkal is, de nem úgy, ahogy mi azt elképzeltük. A játékot Windows alá fejlesszük, bár tesztelni szeretnénk a WineX teljesítményt is a Linux-os felhasználóknak. Minden hibát ki akarunk javítani, s erre meglehetősen sok erőforrást fordítunk. A konzol port használata elvileg lehetséges lesz, de ez nem az a dolog, ami jelenleg szerepelne terveink között.

Az már biztos, hogy az SSE a TF után következő projectjében is ezt az enginet fogja használni, s még mindig keressük azokat a dolgokat, ötleteket, melyeket beintegrálhatunk. Az inspiráció részben más játékokból jön, de a közeljövő terveit is figyelembe vesszük, bár azt is kérem a többiektől, hogy mindig tájékoztassanak, ha úgy általában véve valami fejlődés történik a piacon.

Az egyik technológia amire jobban oda fogok figyelni, az ún. Polynomial Texture Mapping. Érdekes módon a HP Labs egyik csoportja fedezte fel ezt a módszert, ami arra szolgál, hogy különféle fényviszonyok között bizonyos felszíni effektusokat hozzunk létre (pl. bársony). Ezt például nagyon szeretném látni a jövőben a mi engine-ünkben is. Lehet, hogy majd a TF kiegészítőjében?

Remélem élveztétek ezt a kis áttekintést a TF engine-jéről. Ha kíváncsiak vagytok a mod részére a dolgoknak, semmiképp ne hagyjátok ki a következő részt, amiben többek között arról is mondok egy pár információt.


Sebastian Tusk
Technikai igazgató
SSE


RPGVault link az eredeti ángélus verzióhoz..


(Vissza)



Frissebb kapcsolódó cikkek:

2004.06.09. - Development Diary #4 - Grafika
2004.07.09. - Development Diary #5 - Küldetések
2004.07.28. - Development Diary #6 - Pályatervezés
2004.08.19. - Development Diary #7 - Hangok, szinkronizálás
2004.09.08. - Development Diary #8 - Modolás

Korábbi kapcsolódó cikkek:

2004.05.03. - Development Diary #2 - Karakter jellemzők, harc
2004.04.08. - Development Diary #1 - Bevezetés


Az összes kapcsolódó cikk felsorolása