Hirdetés

Alkalmazásfejlesztés badára: Az első játék megalapozása

Bevezető

Most, hogy túl vagyunk az elméleti bevezetőkön és Gyufa Hello Bada alkalmazásán, eljött az idő, hogy belecsapjuk a levesbe: készítsük el életünk első játékalkalmazását badára! Gondolkodtam, hogyan tudnám az OpenGL ES 1.1 lehetőségeit egyszerűen és szórakoztatóan bemutatni, és arra jutottam, hogy a legcélszerűbb egy egyszerű játék fejlesztése során, lépésről lépésre végighaladni az egyes komponenseken. Gyufával, a társszerzővel tutorial-szerűen képzeltük el a blogot, így ez tökéletesen illik a koncepcióba. Na de nézzük is, miről van szó.

A játék

Nem kell semmi komolyra gondolni, az egyik legegyszerűbb alkalmazást választottam. A régi motorosok talán még emlékeznek a “Pong” (infók erre: http://en.wikipedia.org/wiki/Pong) nevű játékra, pontosabban játékgépre. Egy hűtőszekrény méretű gépet képzeljetek el, amelybe egy kis fekete-fehér kijelzőt építettek be (szerencsére a mi készülékünk egy csöppet fejlettebb). Ez volt a világ egyik legelső játéka, 1972-ben készítette el az Atari. A játék bonyolultsága egy fakockáéval vetekszik, egy 2D-s tenisz-szerű programról van szó, a pályán két játékos és egy labda, azaz két téglalap és egy kör található. A labdánkat át kell lőnünk az ellenfél térfelére úgy, hogy az ne tudja visszaadni. Akinek ez alapján nem ismeri, az alábbi képről biztosan be fog ugrani. Ennek a játéknak azóta megjelentek különböző változatai, az egyikben például oldalra is fal került, ahonnan visszapattant a labda. Ez utóbbit fogom elkészíteni a blog keretein belül, de lesz benne egy kis csavar: a játék 3D-s lesz, az ujjunkat végighúzva a képernyőn állíthatjuk a nézetet. A játék elkészítése még ezzel a kis bónusz feature-rel megtoldva sem egy bonyolult feladat, viszont az OpenGL rejtelmeinek bemutatására tökéletes.

Menetrend

Az előző posztban elkészített keretrendszert fogjuk használni kiindulási alapként, ezt még felkészítjük animáció- és textúrakezeléssel. A fejlesztést 3-4 poszttal fogom dokumentálni, ezekre heti rendszerességgel számíthattok. Na de térjünk rá a játékra: az implementálás három fő részből áll: le kell kódolni a grafikus felületet, a játéklogikát és az irányítást (a programozó szemlélettel rendelkezőknek biztosan feltűnt a hasonlóság a modell-view-controller architektúrával). Utóbbi kettő a blog szempontjából nagyjából érdektelen, elsősorban a grafikára fogok összpontosítani. Mivel 3D-s játékról beszélünk, 3D-s elemeket fogunk használni. A fal és a játékosokat reprezentáló csúszka értelemszerűen téglatestek, míg a labda egy gömb. Előbbiek egyszerűen felépíthetőek, utóbbi már érdekesebb. Aki olvasta az OpenGL bevezetőt (link erre), tisztában van vele, hogy egy objektum felépítéséhez háromszögeket kell használnunk. A gömböt is ezekből fogjuk elkészíteni, ehhez szükséges lesz majd egy kevés analízis-beli háttér. A labda objektum tartalmazni fog egy kétdimenziós vektort, ez kvázi a labda mozgásának irányát reprezentálja, ütlközéskor ezek változnak meg. A képen látható GUI-t megtoldom még egy kis eredményjelzővel, valamint hozzáadok egy kis fog effektet is.

Kezelés

A csúszkánkat természetesen az ujjunkkal vezérelhetjük, ugyanígy irányíthatjuk a kamerát is, viszont előbbit a kijelző aljának, utóbbit a felső részének tapperolásával tehetjük meg (lásd ábra). Az ellenfél csúszkáját pedig az AI fogja vezérelni (hahaha). Tervezem még a multiplayert is, bluetooth segítségével, ez azonban elég ingoványos terület számomra. A kész alkalmazást feltöltöm majd a Samsung Apps Store-ba, hogy bárki kipróbálhassa, ehhez azonban szükségem van egy névre. A jelenlegi “Pong” jogi akadályokba ütközik, arról nem is beszélve, hogy egyáltalán nem eredeti. Ha bárkinek eszébe jut valami, ne tartsa magában!

holdmester

Azóta történt

Előzmények