Terep 2

A Wikipédiából, a szabad enciklopédiából
Ugrás a navigációhoz Ugrás a kereséshez
Képernyőkép a Terep 2 működése közben

A Terep 2 - vagy más néven Deformers - egy 3D-s autószimulátor, melyet Nagymáthé Dénes fejlesztett ki[1] és 1996 körül az interneten ingyen letölthetővé is tett. A játék vonzó eleme az élethű fizika, és a teljes szabadság: a pálya határain belül bármerre lehet autózni. A Terep 2 idejében az autós játékok nagy részében nem lehetett az előre kijelölt útszakaszról letérni, kivéve a Stunts nevű játékot. Ugyan a Terep 2-ben nincsenek fák és egyéb akadályok, ám van egy 300x600 háromszögből álló terep, melyen legalább tízféle, többé-kevésbé csúszós talajtípus van. Az autók képesek összetörni, akár totálkárosra is. A Terep 2-ben több autó is van, de ha elég ügyesek vagyunk, akkor akár saját textúrákat is készíthetünk az autóknak, a pályának pedig a domborzatát is megváltoztathatjuk! Az osztott-képernyős játékmód pedig lehetővé teszi, hogy ketten is játsszanak. A játéknak hamar nagy híre lett - főleg a magyar játékosok körében. A Terep 2 mára már klasszikusként szerepel a köztudatban.

A Terep 2 elindul egy 486 DX gépen is, azonban a mai Windows rendszereken való indításához szükség van a DOSBox emulátorra, nem elegendő a kompatibilitási mód átállítása.

  • A Terep 2 grafikája részletesen kidolgozott, habár megtartja a klasszikus MS-DOS 320x200-as felbontást. A Talaj és az autók textúrázva vannak: a talaj textúrája 16x16-os felbontású, míg a távolabbi háromszögek textúra nélkül vannak ábrázolva. A textúrákat ki lehet kapcsolni az F10 gomb megnyomásával.
  • A szimuláció teljesen rugalmastest-fizika, mass-spring szimuláció; ez tette lehetővé az autók deformációjat. A módszer különböző változatai manapság széleskörűen elterjedtek ruha- és rugalmas test-szimulációra. A Rigs of Rods és a BeamNG.drive használ például nagyon hasonló megközelítést. Mellesleg, a kerekek azért nem rugóznak felborult autón, mert a rugók, a valódi autókéhoz hasonlóan, előrefeszítettek és az autó súlyának negyedére vannak méretezve, így a kerék súlya nem elég ahhoz, hogy összenyomja őket.
  • A Terep2 teljesen gépi kódban (assembly nyelven) íródott, és a grafikai rendszere nem használ külső grafikai könyvtárakat, mint például OpenGL (akkoriban a 3D gyorsítókártyák nem voltak széleskörűen elterjedve). A grafikai rendszert nulláról írta meg a játék szerzője, Nagymáthé Dénes.

Grafika[szerkesztés]

A Terep2 játék grafikai megvalósítása nem támaszkodik C/C++ könyvtárra, hanem direkt erre a célra kifejlesztett eljárásokat használ. Ennek ellenére is szép a grafikája, a remake-je is próbálja utánozni ugyanezt a grafikai stílust. A Terep 2 textúrái az egyes háromszögeken valójában nem perspektivikus, hanem a már perspektívában levetített nagyobb háromszögek 2D-s texturálásán alapul (párhuzamos vonalak a két befogó oldal mentén).

texturing eljárások
Il remake XCTruck3D _Truck

Remake-ek[szerkesztés]

Az 1nsane játék megalkotásában nagy mértékben közreműködött Nagymáthé Dénes, mindazonáltal nem egy remake, mert más játék, másképp néz ki: a járművek törése viszont hasonlít.

A Terep2 soha nem vált nyílt forráskódúvá, tehát a remake itt azt jelenti, hogy teljesen más játék. A CTruck3D sorozat, kiváltképp az XCTruck3D _Truck nevezetű alverzió a Terep 2 remake-je. Grafikája a Terep2 stílusához és ilyen nagy-pixeles felbontáshoz tartja magát; annak ellenére, hogy semmi köze a DOS -hoz (ugyanis az X Window System-en keresztül rajzolja ki a pixeleket, amit csak-Linux/POSIX rendszerek használnak). A textúrázást is párhuzamos és nem perspektivikus vonalak segítségével csinálja, ezért a textúrák olyasmi torzulásokat mutatnak, amilyenek a Terep 2-ben gyakoriak, főleg ha egy talaj-háromszög közel áll a kamerához. A remake egy nyílt forráskódú program és standard C-ben íródott, tehát akárki megnézheti, hogyan épül fel. Van egy OpenGL-es alverzió is, a CTruck3D _Open, amely elég hűen visszaadja a Terep2 grafikai stílusát.

Fizika[szerkesztés]

A Terep 2 látszólag úgy éri el az autók élethű viselkedését, hogy minden autó úgy viselkedik, mint egy merev-test, melyet 4 rugó tart: ámbár minden egyedi rugó (a 4 közül) csak akkor lép működésbe, ha a csúcs amihez kapcsolódik, az közelebb kerül a talajhoz, mint maga a rugó nyugalmi hossza. Ha az autó egyik csúcs hozzáért a talajhoz: ez esetben egy ütközés van, egy merev-test és egy végtelen tömegű 'fal' között, ennek köszönhetően az autó nem süpped be a talajba.

Az érintkezés a talajjal visszapattanást eredményez a megfelelő szabályok szerint; attól is függ, melyik csúcs érintkezik.

kis Matlab/Octave program, ami bemutatja a Terep 2 fizikáját

Erre készült egy Matlab/Octave szimuláció. Ez a rugózást is beépíti és a talajról való visszapattanást is. Ebből kiindulva, az autó a játékban egy poliéder: van 27 csúcsa, egy helyzete és egy orientációja. A Terep 2-ben az autók poliéderek, és a merev-test fizikai törvényeit követik, a grafikai ábrázolásuk másodlagosak. Az autók kormányozhatósága viszont azon alapul, hogy a kerekek a barázdáik mentén nem gátolják a mozgást, oldalt viszont igen.

Erre elegendő kiszámolni, mekkora lökettel próbál a kerék érintési pontjánál elhelyezkedő pont oldal-irányba elmozdulni; fogjuk ezt a vektort és adunk az autó-poliéderek egy löketet az ellenkező irányba. Ezt a műveletet mind a 4 kerék esetén megcsináljuk: azontúl minden szimulációs lépés alkalmával megismételjük.

Ez csak egy közelítő megoldás, ugyanis az így szimulált autó oldalt lassan csúszik ha meredeken áll, akkor is, ha csak statikus tapadás van (pl. aszfalton). Ezt a jelenséget megfigyelhetjük a Terep 2-ben is. Ez azonban egy ralis játéknál nem baj, mert szinte soha nincs statikus tapadás, mert az autók állandóan csúszkálnak.

Ahhoz, hogy egy behúzott fékekkel álló autó meghatározatlan ideig stabilan álljon egy terep2-féle szimulációban, egy 4-vektoregyenletes rendszerbe kell foglalni a 4 érintő csúccsal kapcsolatos információkat, és kiszámolni a 4 megoldó löket-vektort, és ezeket beadni a merev-testnek. Mindenféle egzakt megoldás, ami a járművek statikus tapadását korrekten szimulálni tudja, az a klasszikus mechanika (van cikk a Wikin, aktív-linkelni kéne) komplikációiba torkollik. Mai terepautós videó-játékokban, főleg ha piaci termékek, erre a célra kész C/C++ könyvtárakat használnak (pl. Screamer 4x4).

Források[szerkesztés]

  1. Játékfejlesztés.hu - Klasszikusok I. - Terep 2 (magyar nyelven). 2003-2012 JF.hu Team, 2005. szeptember 12. [2010. szeptember 4-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. február 12.)