Világok építése kódsorokból: Hogyan lesz valaki játékfejlesztő?
A videojáték-ipar töretlen fejlődésével egyre többen álmodoznak arról, hogy saját játékot készítsenek. De hogyan válhat valaki játékfejlesztővé? Sokan csak a csillogó grafikát látják egy videojáték mögött, de vajon mi rejlik a kulisszák mögött? Mit jelent indie fejlesztőnek lenni? Ezekről a kérdésekről beszélgettünk Fischer Alexszel, a Prooktatás oktatójával, aki maga is aktívan dolgozik egy saját fejlesztésen. Alex azok mellett, hogy programozni tanít, minden szabadidejét egy monumentális sci-fi eposz építésére fordítja.
Mikor kezdtél el programozni?
- 2008-ban kezdtem el komolyabban foglalkozni a programozással. Ez még bőven a régi idők voltak – PHP-vel indultam, webes környezetben, ami akkoriban egy teljesen természetes belépő volt.
Klasszikus kezdés. Innen hogyan léptél tovább?
- 2009–2010 környékén bekerültem a game hosting világába. Játékszerverekkel foglalkoztam: konfigurálás, adatbázis-kezelés, hibajavítások.
Akkoriban még nem volt ennyire streaming-központú a gaming világ. Milyen játékok mentek?
-Igen, ez még a Twitch előtti korszak volt. Inkább a klasszikus multiplayer szerverek domináltak: Counter-Strike, World of Warcraft, San Andreas – ezek nagyon mentek Magyarországon is.
Te magad is játszottál, vagy inkább csak a technikai oldal érdekelt?
- Persze, játszottam is. Olyannyira, hogy versenyen is részt vettem: Egerben például második helyezést értünk el egy LAN-partyn a LAN Eger csapattal még 2008 környékén, azt hiszem ez volt a nevünk. Akkoriban sok ilyen esemény volt, és ezek elég meghatározó élmények voltak.
Később rendszerinformatikus szakon tanultam, ahol már C-t és Borland C-t is használtunk. Ott kezdett igazán megtetszeni a komolyabb, típusos programozás világa. Az élet azonban egy időre kicsit más irányba sodort.

Hogyan indult maga a fejlesztés?
- Az első év gyakorlatilag tanulással telt: Unreal Engine-t kezdtem használni, és újra elővettem a C++-t is. Szerencsére a C++ és a C# közel áll egymáshoz, így nem volt teljesen idegen a váltás, de azért így is komoly tanulási folyamat volt.
Beszéljünk a projektedről. Miről szól pontosan, és mi inspirált?
- Ez egy third-person nézetű action-shooter adventure játék, ami a 2040-es években játszódik. A kiindulópont sajnos elég aktuális, hiszen a Föld a klímaváltozás miatt lassan lakhatatlanná válik, szélsőséges homokviharok és élhetetlen környezet jellemzi. A játékos egy hivatásos katonát irányít, akit egy nagyvállalat bíz meg azzal, hogy keressen egy új, a Föld fénykorára emlékeztető bolygót. Stílusában és harcrendszerében a Mass Effect-et idézi, de az atmoszférája néhol nyomottabb, túlélősebb, kicsit a Days Gone világára emlékeztet, ahol a technológiai fejlettség és az emberi dráma találkozik.

Egy ekkora volumenű játék általában munkatársak százait igényli. Te hogyan bírod a tempót nappali munka és az oktatás mellett?
- Ez egy igazi bakancslistás projekt, egyfajta önkifejezés. Ahogy a költőnek a vers, nekem ez a játék a hobbim és a munkám egyben. 2022 végén kezdtem el komolyabban foglalkozni vele, és a tervek szerint a teljes verzió 2027 végén, 2028 elején láthat napvilágot. Való igaz, a munka 95%-át egyedül végzem: én felelek a pályadesignért, a kódolásért és a történetért is. Rengeteg logisztikát és fegyelmet igényel.
Beszéljünk a szakmáról. Sokan kérdezik tőlünk, milyen ismeretek kellenek egy játékprogram készítés elsajátításához. Te mit látsz elengedhetetlennek?
-Ez egy összetett folyamat, több pilléren nyugszik. Aki ebbe belefog, annak az alábbiakat mindenképp fel kell építenie:
1) Programozási nyelvek (C# és C++). Én Unreal Engine 5-öt használok, ami C++ alapú. Ez a nyelv adja a legnagyobb teljesítményt, de nehéz és típus-specifikus. Viszont fontos tudni, hogy a C# (amit a Prooktatásnál is tanítok) a tökéletes belépő. Aki érti a C# logikáját, az objektumorientált szemléletet és a változók kezelését, annak a C++ már csak egyetlen lépcsőfok.
2) Adatbázis-kezelés (SQL). Sokan meglepődnek, de a játékfejlesztéshez elengedhetetlen az SQL. A mentések, a karakterek statisztikái, a globális adatok kezelése mind adatbázis-alapú. Én már 2010-ben, játékszerverek konfigolásakor megtanultam a select, insert, delete alapokat – ezek nélkül ma sem tudnék boldogulni.
3) Játékmotor és algoritmusok. Érteni kell a fizikai motor működését. Az Unreal Engine-ben ismerni kell a Nanite rendszert, ami segít abban, hogy a borzasztóan részletes 3D modellek ne lassítsák le a játékot (FPS megőrzése). Ehhez komoly matematikai és logikai algoritmusokra van szükség.
4) Asset-menedzsment. Nem kell mindent egyedül modellezni, de tudni kell kezelni a külső forrásból származó elemeket, és ha kell, belejavítani a textúrákba vagy a hálóba (pl. Substance Painterben).
Ez hobbinak igen komoly, de mégiscsak egy hobbi. Milyen fejlesztésekben vagy benne főállásban?
- Főállásban mobilalkalmazások és vastag kliens alapú nagy szoftverek fejlesztésével foglalkozom, mint főprogramozó, jelenleg vállalkozási formában. Ez magában foglal ASP.NET dinamikus webalkalmazások fejlesztését is, kiegészítve a fő projekteket.
Így, hogy nincs főnököd, mi a motivációd titka? Mi segít, amikor elakad a projekt?
- Makacs embernek tartom magam, szerintem ez a motivációm. Engem borzasztóan idegesít, ha valamit nem tudok megoldani. Egyszerűen nem hagyom ott a gépet. Utánaolvasok, keresem a hibát, amíg meg nem találom. Legyen az 10 perc vagy 10 óra. Ezt a felfogást próbálom átadni a diákoknak is. A programozás lényege szerintem, olyan, mint egy rejtvény fejtés. Addig kell gondolkodni, amíg rá nem jövünk a megoldásra.
Mi a jó az indie játékok fejlesztésében?
- Indie fejlesztőnek lenni szabadságot jelent az alkotásban. Nem köt egy nagy cég, és nem kell megfelelni a megvalósításban, hanem az egész projektet én koordinálom. Ez lehetővé teszi, hogy a saját ötleteimet valósítsam meg, és a saját tempómban haladjak. Persze, az anyagi források szűkösebbek lehetnek, és lassabban halad a fejlesztés.

Aki nálad elvégez egy képzést, lesz -e azon a szinten az oklevél kézbevétele után, hogy ő maga is játékfejlesztő legyen?
- A válaszom az, hogy részben igen. A képzést és a tematikát úgy állítottuk össze, hogy a végén amellett, hogy egy papír lesz a hallgató kezében, lesz egy portfólió is, ami azt bizonyítja, hogy képes akár komplex játékmechanikákat leprogramozni. A C# nyelv alapos ismerete megnyithatja az utat a legnagyobb játékmotorok felé, mint például a Unity, az Unreal Engine vagy a Godot felé, amikkel később már lehet játékot fejleszteni.
Mi történik, ha a játék nem lesz átütő siker? Hogyan tekintesz majd erre az 5-6 évnyi munkára?
- Tanulásként. Lesz egy plusz skill-em, egy befejezett projektem, és elmondhatom, hogy megcsináltam. A kitartás a legfontosabb – ez tartott meg a programozói pályán is 2008 óta.
Mit tanácsolsz azoknak, akik hasonló álmokat dédelgetnek?
– Ne akarj rögtön a csúcsra ugrani. Kezdd az alapoknál! Egy jó fejlesztő nemcsak kódol, hanem érti az összefüggéseket. Ezért is fontos, hogy olyan környezetben tanulj, ahol a gyakorlati problémákra is kapsz választ.
Alex, köszönjük az interjút és a betekintést! Várjuk a 2027-es demót és addig is jó tanítást!