Főmenü
Frissítések
Hírek
Cikkek
Társoldal hírek
Végigjátszások

Aloldalak
Bard's tale
Dragon Age
Gothic 3
KotOR
KotOR 2
Kult
Lionheart
NWN 2
The Fall
The Roots
The Witcher
Titan Quest
ToEE
Társoldalak
WoW Hungary
Morrowind HQ
SW: Galaxies
Baldur.hu
Fallout HU
Dungeon Siege 2
Oblivion HQ

Egyebek
Linkek
Impresszum

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:

  1. A térkép generálónak automatikusan kell működnie, legalábbis részleteiben.
  2. 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).
  3. 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.
  4. 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