Bevezetés
A PlanetX egy űrben játszódó stratégiai játék, amelyet a Tumuslak Vorvahes Team fejlesztett 2007-ben. A csapat tagjai már az ősidők óta kedvelik a sci-fi-t és a stratégiai játékokat, így kézenfekvő volt az ötlet, hogy mi is készítsünk egy ilyen stílusú programot. Az elképzelés eredetileg Samuraj fejéből pattant ki. A gondolatot aztán tett követte, és afféle „na akkor essünk neki” hozzáállással meg is kezdtük a fejlesztést. A programot végül Turbo Delphiben írtuk meg, ami adott volt, hiszen a csapat tagjai ezt a programozási nyelvet ismerik legjobban.
A játék egy több égitestből álló rendszerben zajlik. A játékos – beállításoktól függően – két vagy három ellenséges gépi flotta ellen harcol. A cél az ellenség bolygóinak elfoglalása. Kezdetben minden játékos egy bolygót birtokol. A kék szín a játékos bolygóit jelképezi, a zöld az ellenség bolygóit jelzi, míg a barna a semleges planéták színe. Egy támadó és egy védő flotta összecsapásából mindig a nagyobb létszámú egység kerül ki győztesen, a létszám a csata után azonos mértékben csökken (a vesztes flotta nullázódik). Ha a támadó győz, akkor az adott bolygó a birtokába kerül, és a továbbiakban innen is indíthat támadásokat.
Ha valaki szeretné kipróbálni a játékot, akkor az alábbi címeken érheti el:
http://tumuslak.uw.hu/tdownload/planetx.zip
http://ilab.hu/jf/gp.php?id=bfa3adbced01314
Megjegyzés: az eredeti cikket a Jatekfejlesztes.hu portál által kiírt „Postmortem cikkíró versenyre” készítettem, a mondanivaló tagolása is a pályázati kiírás feltételei alapján történt.
A három legjobban sikerült rész
Én azt tartom a legnagyobb sikernek, hogy egy teljes, működőképes program került ki a kezünk közül. Ez a garázsprojektek általános sorsát ismerve úgy gondolom, hogy elég nagy szó, ugyanis az amatőr fejlesztések többsége az idő hiánya, a lelkesedés alábbhagyása vagy a teljesíthetetlen elképzelések miatt sajnos félbemarad. Az eltúlzott célok kitűzésének a hibájába az idők során a mi csapatunk is többször belefutott, ez esetben viszont teljesíthető elvárásokat támasztottunk önmagunkkal szemben. Az eredmény végül egy működőképes - igaz, nem AAA kategóriájú - játék lett. A tanulság: merjünk kicsit álmodni, így nagyobb eséllyel fejezzük be azt, amit elkezdtünk!
A második pozitívum, hogy sikerült egy jó, együttműködésre képes csapatot összehoznunk. A tagok már hosszú évek óra ismerik egymást, és a PlanetX közös fejlesztése mindenkinek nagy élményt jelentett. A munka zömét jelentő programozást ketten végeztük Samurajjal, de a tervezésben és tesztelésben, illetve a grafikai feladatokban jelentős segítséget kaptunk másoktól is (többek között a Jatekfejlesztes.hu közönségétől). A fejlesztés során több alkalommal tartottunk találkozókat, amelyeken részletesen megbeszéltük a felmerülő problémákat. Hasznosak voltak a „brainstorming” jellegű gyűlések is, melyeken sok hasznos új ötlet merült fel. Ezeknek egy részét megvalósítottuk, más részét pedig elvetettük, de közben érvényesült a „több szem többet lát” elve. A profi fejlesztők sem egyedül dolgoznak, a csapat ereje nagyon sokat jelent. A tanulság: hozzunk össze egy jó csapatot, és ne akarjunk mindent egyedül megcsinálni!
A legnagyobb személyes sikerélményt a program AI-jának elkészítése jelentette számomra. A gépi ellenfél elkészítése elsősorban azért jelentett kihívást, mivel a PlanetX előtt a legkomolyabb „AI”, amit írtam, egy Tic-Tac-Toe játék gépi ellenfele volt, így semmilyen tapasztalatom nem volt a témában. Úgy gondolom, hogy végül sikerült olyan AI-t alkotni, ami meg tudja izzasztani a játékost. A tanulság: kihívások esetén se álljunk meg, hanem - akár hosszas kísérletezések árán - oldjuk meg a feladatot!
A három legrosszabbul sikerült rész
Programozói szempontból nézve az volt az egyik komoly hiba, amit elkövettünk, hogy a program paramétereit a forráskódba bedrótozva kezeltük. Jobb esetben ez azt jelentette, hogy megfelelő névvel ellátott konstansokat hoztunk létre, de néha még ez sem történt meg. A helyes út a paraméterek külső fileban történő elhelyezése lett volna. Ha a paramétereket egy külső (pl. ini vagy xml fileban) helyeztük volna el, akkor a játékot nem csak a programozók, hanem a designerek vagy a teszterek is tudták volna módosítani. (Megjegyzem, hogy a későbbi fejlesztéseinkben átálltunk a paraméterek ily módon történő kezelésére.) Tanulság: ne „drótozzunk” a programban, hanem a fontos paramétereket vezessük ki valamilyen könnyen, egyszerűen szerkeszthető fileba.
A másik probléma, ami felmerült a fejlesztés során, az a grafikusok hiánya volt. A logók elkészítésében kaptunk segítséget, de az ellenfelek képét interneten találtuk (úgy gondolom, hogy ez egy garázsfejlesztés során bocsánatos bűn). Ezzel arra szeretnék rámutatni, hogy míg egy profi fejlesztés során fel lehet venni - pénzért - jól képzett szakembereket az egyes pozíciókba, addig egy hobbifejlesztés esetén nem biztos, hogy minden feladatra találunk megfelelő embert, ami végül a játék minőségének rovására megy. Tanulság: próbáljunk meg minden pozícióra megfelelő embert keresni, még ha ez nem is mindig könnyű feladat.
A harmadik probléma, amit megemlítenék, hogy manapság az olyan jellegű és méretű játékok, mint a PlanetX, inkább böngészős játékként jelennek meg, nem pedig egy letölthető exe formájában. A PlanetX sokkal több emberhez eljuthatott volna, ha pl. Flashben készítjük el. Mint említettem, a Delphi, mint fejlesztőeszköz adott volt, így esélyünk sem volt böngészős játék készítésére. Persze ehhez időt és energiát kell fordítani a szükséges eszközök megismerésére. Tanulság: kis játékok készítéséhez célszerűbb Flasht vagy Silverlightot használni.
Konklúzió
Fel lehet tenni a kérdést, hogy mit csináltam volna másképp? Erre hamarosan megkapjuk a választ, ugyanis nemrég kezdtem bele a PlanetX II fejlesztésébe. Ez a program már nem Delphiben készül: az első projekt tanulságai alapján a második verzió már böngészős játék lesz, mégpedig Microsoft Silverlight alapokon. A program a cikk írásának pillanatában sajnos még nincs olyan állapotban, hogy egy játszható verziót be tudnék mutatni, de reményeim szerint hamarosan a közönség elé lehet majd tárni az új játékot.
A PlanetX-szel kapcsolatos visszajelzések többsége nagy örömünkre pozitív volt. Így munkánk végül elérte a célját: sok embernek adtunk néhány kellemes, játékkal töltött órát, és közben persze mi is sokat tanultunk az amatőr játékfejlesztésről.
Utolsó kommentek