|
2007.03.21. - Kwish
Drakensang: The Dark Eye - DevDiary #4
|
A Drakensand Info lehozta a fejlesztői napló negyedik részét (lehozta a harmadikat is, csak ez valahogy kézre esett), a térkép kialakításáról van benne szó(ra sem érdemes).
|
Mit csinál pontosan egy programozó játékfejlesztőként? Pontosan erről szeretnék most nektek mesélni, mégpedig a játék áttekintő térképének fejlesztése kapcsán. Vezető programozóként ez számomra elég trükkös feladat volt, ezért is döntöttem úgy, hogy a fejlesztői naplónak készülő első cikkemet a térképről írom meg.
Nem is olyan régen a titkárnőnk fia meglátogatott minket. Miután a Radon Labs különböző részein végigkísérték, elért végül a programozók szobájába.
“Mit csinálnak ezek a fickók?“ - “Fizetést kapnak azért, hogy játékokkal játszanak.“
Valóban, elég nehéz röviden elmagyarázni, hogy egy programozó mit is csinál egy számítógépes játék fejlesztésénél. Talán egy példán keresztül könnyebb lesz megérteni a dolgot. A játékfejlesztői dokumentáció első verziója az alábbi dolgokat tartalmazta a térképpel kapcsolatban.
|
Amikor a játékos első alkalommal belép egy még fel nem fedezett területre, akkor csak egy üres térképet lát majd. Ahogy felfedezi a helyszínt, úgy rajzolódik ki a térkép (automapping) és a különleges érdeklődésre számot tartható területek jelölésre kerülnek (pl. miután először meglátogatja Hesinde templomát)
|
A programozó, kódoló szempontjából ez eltérő rendszer követelményekhez vezet, ami aztán lehetővé teszi az áttekintő térkép kifejlesztését.
Az áttekintő térképet létre kell hozni minden egyes helyszín és labirintus, dungeon esetében, és a fel nem fedezett területeknek először még rejtve kell maradnia. Ezek a területek úgy válnak láthatóvá, ahogy a játék - és végül de nem utolsósorban - a játékos előrehalad, a különleges helyszíneket és karaktereket pedig be kell jelölni rajta.
Nagyon gyorsan előálltunk az első ötlettel arra vonatkozólag, hogy ezt miként is oldhatnánk meg. Íme a munka egyes lépései időbeli sorrend szerint:
- Screenshot készítése madártávlatból
- Rá kell passzintani a képet az adott területre
- A területet átméretezhetővé kell tenni
- Rá kel helyezni egy ún. “felfedezés takarást / maszkot“ (relevation map)
- Meg kell mutatni a jelölőket a térképen
|
A screenshot elég hamar elkészült, de elég nehézkes volt úgy átméretezni a képet, ahogy szükségünk lett volna rá. A relevation map-et elég egyszerű módon megalkottuk: létrehoztunk egy textúrát, amit rátettünk az egész térképre, majd ily módon elmentettük. Egy csomó kisebb módosítást végre kellett hajtanunk annak érdekében, hogy a jelölők a megfelelő módon látszódjanak, de végül ezt is sikerült elérnünk.
Miután legeneráltuk az első minta térképet egy ideig semmi sem történt. Hébe-hóba hallottunk valami káromkodást a pályaszerkesztő részlegtől - de ebben nincs semmi rendkívüli.
Végül aztán Sven, a Pályaszerkesztés Vezetője bejött és azt mondta:
Ez nem működik. Túl sokáig tart a térképek létrehozása és átméretezése, és minden egyes alkalommal, mikor megváltoztatunk valamit a térkép hibásan mutatja a dolgot. Ráadásul a mentések is túlságosan nagyok. Igazából ez a renderelt térkép egyáltalán nem nyűgözi le az embert. Oh... meg tudtok arról, hogy megfeledkeztetek az átfedő területekről?
A fejhallgatómon keresztül ez leginkább valahogy így hangzott: A térkép nem jó * mordulás * csináljatok jobbat, vagy megruházunk benneteket.
Egy hosszabb megbeszélés eredményeképp végül definiáltunk még néhány újabb követelményt:
- A térkép generálónak automatikusan kell működnie, legalábbis részleteiben.
- Lehetővé kell tenni azoknak a területeknek a meghatározását, melyeken térképet lehet generálni. Ezek a területek átfedhetik egymást, vagy akár egymáson is lehetnek (a részletezettebb térkép érdekében).
- A térképeket nem a játék belső screenshotjaiból kellene generálni, hanem Maya-val (ez egy olyan 3D szerkesztő eszköz, melyet a legtöbbször használunk). Ezzel lehetséges lenne bizonyos tárgyakat eltüntetni, és a térkép különféle részeit egyedileg lehetne renderelni.
- Az újonnan felfedezett területek felfedésének sokkal hatékonyabban kell végbemennie.
|
Elég nehéz volt előre megmondani, hogy mennyi erőfeszítést igényelnek ezek a változások. Bárhogy is van, egyetlen egy programozó néhány hetet eltölthet ezzel a munkával.
Végül létrehoztunk egy olyan rendszert, mely megfelelt a legtöbb követelménynek.
Hogy meghatározzuk azokat a területeket, melyeket térképeket hozunk létre, ún. cube-okat helyeztünk el a terület fájlokban. Az adott területen található tárgyakat csoportokba soroltuk, pl. a talaj / felszín egy csoport; a berendezési tárgyak is egy csoportot képeznek stb.
A térképek egyedi rétegeit scripttel generáltuk le. Ezeket aztán külön-külön átdolgoztuk photoshopban, s végül összeraktuk őket egy nagyon csini kis térképen.
Mikor mindezzel megvoltunk, Sven idejött hozzám, és azt mondta: Nos, ez már csecse kis térkép. De... hogyan csináljak ebből mini-térképet... ?!
:)
Szerző: Nico Pogoczelski, vezető programozó, Drakensang
Forrás: Drakensang - Official Dev Diary #4: Developing the overview map
Korábbi kapcsolódó cikkek:
2007.02.19. - Drakensang: The Dark Eye - DevDiary #2 2007.01.18. - Drakensang: The Dark Eye - Csúszás... 2006.12.21. - Drakensang: The Dark Eye - Elf videócska 2006.11.10. - Drakensang: The Dark Eye - RPG Codex interjuhé 2006.11.06. - Drakensang: The Dark Eye - Közösségi kérdezz-felelek
Az összes kapcsolódó cikk felsorolása
|
|