Google Translate

Hungarian English French German Italian Portuguese Russian Spanish

Pályák és térképek

Sok játék, legyen szó akár akcióról vagy stratégiáról, pályákra (level), vagy térképekre (map) van osztva. Lásd pl. Commander Keen, Heroes of Might And Magic, Stunts stb...

Ez a szemlélet nagyban növeli a játékélményt, a játékidőt, egyszóval növeli a játék értékét és újrajátszhatóságát. Főleg abban az esetben, ha szerkesztő programmal akár a játékos is elkészítheti saját pályáit, térképeit. Mindig is megvolt a varázsa az ilyen házi készítésű pályáknak, gondoljunk csak a Fragtown nevű Quake 1 pályasorozatra, vagy az Oblivion című játékhoz megjelent seregnyi mod-ra. A Mod, a modifikáció azaz módosítás rövidítése, és általában több módosítást magában foglal, nem csak új pályákat! Egyesek még a kódba is belenyúlnak, új grafikát, karaktereket, sztorit stb.. kreálnak az ezt megengedő, vagy támogató játékokhoz.

A pályakészítés az egyik legérdekesebb és legkönnyebb műfaja a modolásnak. A játék már kész, a szabályok élnek, és rendelkezésre áll egy jól konfigurált rendszer. A teendő nem más, mint "megfesteni" a pálya kinézetét, elhelyezni szereplőket, tárgyakat stb. majd adott esetben még eseményeket (script) is írni. Általában a retro játékok is használtak script nyelveket, de régen nem volt olyan nagy "divat" mellékelni a szükséges szerkesztő programokat a játékhoz. Ez persze nem gátolhat meg benne, hogy analizáld a térkép fájlokat és megfejtsd a szerkezetét. Ennek egy iskolapéldája a Transport Tycoon című óriási sikerű Chris Sawyer játék. Az igen lelkes fan-ok lényegében a fejlesztő segítsége nélkül visszafejtették a grafikai, nyelvi és a többi fájlok struktúráját. El is készült a 2000-es évek során egy olyan remake, az OpenTTD, ami az eredeti játék adatfájlait használja, de a program (és így a játék logika) teljesen újra lett írva! Ennek nagyon örülünk, hiszen a Transport Tycoon legnagyobb gyengéje az AI volt - amit az OpenTTD-ben sokat csiszolgattak.

A legtöbb esetben a pályák és térképek ábrázolhatóak egy vagy több mátrix-al (ha úgy tetszik táblázattal). Minden pályának vannak ezen felül egyedi tulajdonságai - játéktól függő. A legáltalánosabbak:

  • Azonosító/Név
  • Szülő pálya (A pályák strukturálása érdekében, érdemes megadni. Hasznos lehet, ha pl. úgy működik a játék, hogy egyes pályák eléréséhez először meg kell csinálni a szülő pályát!)
  • Szélesség (max. nagyon ritka, hogy a pályák mérete teljesen dinamikus)
  • Magasság (max.)
  • Adatcsomag (fájlnév, kiterjesztés nélkül. Ha alkalmazod ezt a tulajdonságot, elérheted, hogy akár minden pálya más-más grafikai, hang stb. adatfájlt használjon)
  • Bejárat (x-y koordináta, ahol a játékos kezdi a pályát. Megvalósítható úgy is, hogy ezt a tulajdonságot a pálya elején automatikusan generálja a program. Ehhez meg kell keresni egy "bejárat" típusú pályaelemet, lekérni a pozícióját, és módosítani ha szükséges.)
  • Kijárat (x-y koordináta)

Továbbá, szükség lesz természetesen a korábban említett mátrix-ra is. Ha a játék elég egyszerű, akkor elég lesz egy is. Tételezzük fel, hogy a térkép minden egyes pozíciójában csak 1 "valami" lehet. Mondjuk lehet Üres, lehet ott Ház, Fa, Szikla, valamint Játékos, és ellenfél. Ez persze nem túl árnyalt megoldás, de kezdésnek nagyon is jó. Így elég lesz egyetlen mátrix, ami egyszerre megmondja majd hogy hol mi van, és azt is ezáltal hogy hova léphet a játékos és hova nem.

A legegyszerűbb pályaszerkesztő programot úgy hívják Jegyzettömb (vagy Notepad++)! Ha finnyás vagy használj nyugodtan Excel-t, vagy Gnumeric-ot. A legjobb, hogy így nem kell külön pályaszerkesztőt írnod a játékodhoz. Mindkét program képes menteni a most bemutatásra kerülő formátumban (a játékprogram pedig könnyen fel tudja dolgozni majd).

A CSV (comma separated values) formátumú fájlok, tulajdonképpen szöveges fájlok, és pont nekünk találták ki a mostani helyzetben - ugyanis képes ábrázolni egy táblázatot. Találjuk ki, hogy a pályaelemeknek mi legyen a sorszáma:

  • Üres - 0
  • Ház - 1
  • Fa - 2
  • Szikla - 3
  • Játékos - 4
  • Ellenfél - 5

A pálya tulajdonságait is írd bele a CSV fájlba, így nem kell majd külön fájlból behívni ezeket az adatokat.

 

Letöltés: map_1.csv

A fenti példán bemutatott CSV-t egy ilyen kódszerkezettel tudod majd betölteni (pszeudo kód):

Példa #1
1 DO
2  
3 READ line ' Beolvas egy egész sort a CSV-ből
4 cols() = delimit(line) ' A függvény a ;-vel elválasztott értékeket egy tömbbe helyezi
5  
6 IF cols(1) = property THEN datasection = property
7 IF cols(1) = map THEN datasection = map
8 IF cols(1) = end THEN exit ' Kilép a DO-UNTIL ciklusból
9  
10 IF datasection = property
11 ' Pálya tulajdonságainak mentése
12 ' A tulajdonság neve a cols(1), míg az érték a cols(2)-ben lesz
13 ELSE
14 ' Pálya felépítésének mentése
15 ' Mindig egy sornyi adatot ad vissza a cols() tömb, annyi alkalommal ahány sorból áll a pálya.
16 ' cols(1), cols(2), ... cols(10)
17 ENDIF
18  
19 UNTIL end of file() ' Addig ismétli a ciklust, amíg minden sort fel nem dolgoztunk a CSV-ből!

Figyelem! Nem biztos, hogy ez a fájlformátum lesz a legalkalmasabb a te játékodhoz. Ez csupán egy iránymutató, egy lehetséges, egyszerű megoldásra. Merj kísérletezni, és kreatívan gondolkodni. Ha mégis a CSV mellett döntesz - érdemes - akkor ügyelj arra, hogy nem csak a ; jel lehet elválasztó, hanem pl. a vessző, vagy tab. Valamint, készítsd fel a kódodat arra az esetre is, ha egy cella nem tartalmaz értéket.

Mindent összevetve, a CSV egy jó kiindulási alap, ha pályákra vagy térképekre épülő játékot szeretnél írni.

Jó kódolást!

Zene

Google keresés

Váltó

Digitális Táregység


Számrendszer

#=

IMDb Keresés

Kód

Karakter

Szín

Szín kódtábla

Webmaster: GoobeMaster
Érvényes XHTML és CSS
Minden jog fenntartva! ® 2010 - 2017
Jogtulajdonos: United Voxels Ltd. (United Kingdom)

Check Google Page Rank

Technikai háttér: