Játékfejlesztés okostelefonra és asztali rendszerekre, egyszerűen

Aki próbálta, tudja: játékot fejleszteni kihívás és élmény, egyszerre. Ha nulláról indulunk, sok időt kell ráfordítanunk, ha valami látványos, izgalmas, és újszerű dologgal akarunk előrukkolni. Akkor is, ha nem gondolkodunk Blizzardos méretekben, csak egy jópofa, szórakoztató játékban. Van azonban számtalan tényező, amelyek egyszerűsíthetik a kezdő játékfejlesztők dolgát. Ilyen például a korábban nálunk is bemutatott Game Guru, amely a végletekig egyszerűsíti például egy 3D-s FPS elkészítését. Vagy az ingyenes hozzávalók játékfejlesztőknek, amelyekről szintén korábban írtunk. Ma pedig egy újabb, nagyszerű megoldást mutatunk, amellyel a játékfejlesztés okostelefonra és asztali rendszerekre egyaránt megoldható, ráadásul nagyon egyszerűen.

AppGameKit: játékfejlesztés okostelefonra és asztali rendszerekre

Ha valakinek ismerősen cseng esetleg a Dark Basic neve (réges-régen, egy messzi galaxisban lehetett vele játékokat fejleszteni), annak erős déjà vu élménye lesz majd az elkövetkező percekben. A bemutatásra kerülő AppGameKit ugyanis tulajdonképpen a Dark Basic leszármazottja. Igaz, jócskán átdolgozva.

Kezdjük ott, hogy az AppGameKit alkalmas Windows, macOS, Linux, iOS és Android játékok fejlesztésére egyaránt. Ráadásul ehhez dolgozhatunk akár Windows, akár macOS környezetben. A Steamben megvásárolható fejlesztőrendszer ugyanis mindkettőn fut (sőt, Raspberry Pi-re is elérhető, oda ráadásul ingyen). De még akár HTML5-be is exportálhatjuk kész játékainkat.

Ez így már kapásból jó pont, mi rendkívül szeretjük a cross-platform megoldásokat. Ezen felül az AppGameKit segítségével 2D és 3D játékok egyaránt készíthetők, ráadásul nincs megkötve a kezünk: bár a fejlesztőkörnyezet alapvetően a saját BASIC alapú nyelvét használja, összelőhető a Visual Studio vagy Xcode környezetekkel is, így akár C++ nyelven is fejleszthetünk, miközben meglehetősen egyszerűen kihasználhatjuk az AppGameKit lehetőségeit, a megszokott IDE környezeten belül. Így nem kell időt fecsérelnünk az sprite-ok, hangok, fizika, ütközésvizsgálat stb. leprogramozására, egyszerűen használhatjuk az AGK erre hivatott részeit a C++ környezeten belül.

BASIC, modernizálva

De térjünk vissza az alap felálláshoz: miután letöltöttük az AppGameKit-et és a hozzá esetlegesen megvásárolt kiegészítő csomagokat a Steamből – ezekben szabadon felhasználható grafikai elemek, objektumok, teljes játékok mintakódjai találhatók, így jól jöhetnek a kezdetekhez -, egy viszonylag egyszerű kódszerkesztő felületre jutunk. Bal oldalt láthatjuk a megnyitott projekteket és a hozzájuk tartozó forráskód fájlokat, mellettük pedig azonnal ott a kódszerkesztő. Utóbbi igyekszik segíteni a munkánkat azzal, hogy ha elkezdünk begépelni egy utasítást, feldobja a lehetséges befejezéseket, illetve az adott utasításhoz tartozó szintaktikát is mutatja. A kód “elrendezése” kevésbé az erőssége, így például az if feltételes utasításoknál nekünk kell vizuálisan “gyomlálni” a kódot. De ez mondjuk inkább kényelmi kérdés. Viszont, mivel az AppGameKit-ben mindent kódban kell megadni, így aztán érdemes azt áttekinthetően rendezni, különben egy összetettebb játéknál bele fogunk zavarodni. Mentségére szolgáljon, hogy például a ciklusokat viszont szépen jelöli, és ezeket össze is “zárhatjuk”, hogy jobban átlássuk a kódot.

Ha már szóba került: az AppGameKit-ben teljesen a kódolásra leszünk kénytelenek hagyatkozni. Nincs integrálva látványos és praktikus IDE felület, ahol elrendezhetjük a gombokat, objektumokat, 3D környezetet, játékteret stb. Persze azért akadnak könnyítések, Windowsra például találunk a Utilities részben egy alaptudású szerkesztőt, illetve FPS játékokhoz segítségül hívhatjuk a nyílt forráskódú FPS Creator alkalmazást, vagy éppen a korábban ismertetett Game Gurut, amelyhez vásárolható egy külön konvertáló modul is. Ez utóbbi csak Windowsra elérhető sajnos, ott viszont nagyban megkönnyítheti az életünket, hiszen a GameGuru egy nagyon sokoldalú játéktervező felülettel rendelkezik. A benne megtervezett teljes játéktér (fák, domborzat, égbolt, növényzet, épületek, víz, fények stb.) átemelhető az AGK-ba. Így végül pályákat terveznünk nem fejben kell, hanem teljes kényelemben, 3D grafikus felületen (utána a fejlesztés már folytatódhat akár Macen is).

Ez azért jócskán felgyorsítja a 3D-s fejlesztések ütemét (bár a GameGuru pályák konvertálása igen időigényes, pláne első alkalommal, amikor a teljes GameGuru könyvtárat átalakítja a program a későbbi feldolgozáshoz). Kicsit elakadtunk a felületek és játékterek megtervezésénél, de lássuk be, azért ez is fontos szempont ilyenkor.

Maga a kódolás egészen kellemes folyamat, köszönhetően annak, hogy a BASIC alapú AGK nyelvezet viszonylag gyorsan és egyszerűen megtanulható. Elsajátítását egy igen részletes, példákkal bőségesen illusztrált online súgó segíti, amely az alapoktól kezdve, a nyelvi utasításkészleten át, gyakorlati példákkal kiegészítve ismertet meg minket az AGK használatával (sajnos csak angolul). Egyébként pusztán a súgót tallózva is kiderül, hogy milyen sok lehetőség rejlik az AGK-ban: 2D és 3D fizikai modellezés, shader használat, zene- és hangfájlok kezelése, népszerű 3D objektum formátumok támogatása, csontváz-rendszer, multiplayer opciók, integrált benchmark funkciók, videolejátszás stb.

Játékainkat optimalizálhatjuk billentyűzetes, joystickos, vagy akár érintőképernyős használatra egyaránt, sőt, ki tudjuk használni a mobileszközök mozgásérzékelőit és a GPS funkciót is. De elérhető a programból az okostelefonok kamerája, az mobil rendszerek hirdetési funkciói, van fájlkezelés, ütközésvizsgálat, sprite animáció stb. Sőt, akár Facebook elérést is integrálhatunk a játékba, viszonylag könnyedén. Minden egyben van ahhoz, hogy egy jó ötlet alapján remek kis 2D, vagy 3D játékokat dobjunk benne össze. Azt kell mondjuk, az AGK segítségével valóban egyszerű a játékfejlesztés okostelefonra és asztali rendszerekre egyaránt.

Export, és mobil appok tesztelése, egy mozdulattal

Ha elkészültünk vadonatúj játékunkkal, jöhet a tesztelés, s persze a publikálás. Tesztelés szempontjából az AGK elkényeztet minket, hiszen Windowsra, macOS-re gyakorlatilag egy mozdulattal elkészíthetjük az önállóan futtatható változatot, ami tesztre vagy közreadásra egyaránt tökéletes. Ha digitálisan aláírt macOS alkalmazást szeretnénk, akkor azt az Xcode-on keresztül tudjuk megoldani.

Szerencsére C++ kódolást ez sem igényel, mert az AGK Player forráskódját mellékelték, így részletesen követve a leírást, egy Apple fejlesztői fiók birtokában könnyedén elkészíthetjük a végleges, digitálisan aláírt programot.

Okostelefonos rendszereknél már egy fokkal bonyolultabb a helyzet, hiszen a publikáláshoz itt sem ússzuk meg a megfelelő fejlesztői előfizetést az Apple, vagy a Google rendszereihez. Ha viszont van élő Apple vagy Google fejlesztői fiókunk, akkor az AGK-ból könnyedén exportálhatjuk a megfelelő IPA vagy APK appokat, az alkalmazásboltok számára megfelelő változatban.

Azt azért jó tudni, hogy az iOS és macOS alkalmazások fejlesztéséhez itt is egy Macre lesz szükségünk. Teszteléshez viszont nincs szükség semmi extrára, van ugyanis az AppGameKit felületén egy igen prakitkus, Broadcast feliratú gomb.

Ha letöltjük az AppGameKit Player iOS-re készült, vagy androidos változatát (mindkettő teljesen ingyenes), és az okostelefon/táblagép ugyanazon wifi hálózathoz csatlakozik, mint a fejlesztésre használt számítógépünk, akkor erre a gombra kattintva azonnal láthatjuk a készülő játékot a hordozható eszköz képernyőjén. Amíg ki nem lépünk a Player appból, addig nyugodtan tudjuk tesztelni a játékot, akár a kapcsolat megszakítása után is.

Extra érdekesség, hogy játékainkat akár HTML5 változatban is közzétehetjük. Egyébként az így exportált játékoknál is van lehetőség teljes képernyős üzemmódba váltani.

Összegzésül

Mindent egybevetve nekünk nagyon szimpatikus kezdeményezésnek tűnik az AppGameKit. Akár az alapból használható BASIC oldaláról, akár a Visual Studio-ba vagy Xcode-ba integrálva, a natív fejlesztés irányából vágunk bele vele a munkába, kétség kívül ez az egyik legegyszerűbb módja a játékfejlesztésnek. Legalábbis ha kellően testreszabható, egyedi játékokat akarunk készíteni, szemben más, rengeteg kötöttséggel és korlátozással megtűzdelt fogd és dobd stílusú játékkészítő szoftverrel. A kódolástól egyáltalán nem kell megijedni, alap programozási ismeretekkel – az angol nyelvű súgót használva – gyorsan belejövünk, de van amúgy megvásárolható digitális kézikönyv is.

https://www.youtube.com/watch?v=rKMTSpqrnXM

Ha mindent megveszünk, akkor azért nem éppen olcsó mulatság, az árakat itt találják meg. Természetesen semmi sem kötelez minket, hogy az Asset csomagokat is megvásároljuk, azok inkább kiindulási alapnak jöhetnek jól, gyorsíthatják a program lehetőségeivel való ismerkedést. Végezetül pedig egy jó hír: van próbaverzió is, amelyet innen lehet letölteni. Emitt pedig letölthető néhány játék, amelyek az AGK-val készültek.

Ne maradjon le erről sem!

Mint a legtöbb weboldal, mi is használunk sütiket az oldalon. Elfogadom Adatkezelési tájékoztató