Írjunk játszva szakdolgozatot

Amikor apukám először mutatta meg a Commodore 64-es gépén, hogy hogyan tudok egy játékot elindítani rajta, talán meg is bánta, mert ezután nem lehet kirobbantani a képernyő elől.

A Commodore 64 bekapcsolás után

A Commodore 64 bekapcsolás után

Még mindig emlékszek a kék képernyőn villogó kurzorra, ahová a következő sorokat kellett begépelnem:

LOAD"$",8
LIST

Ezután kiválasztottam annak a játéknak megfelelő sort, amivel játszani akartam és átírtam a következőre (a Commodore-on alapértelmezetten a beírt karakterek felülírták a kurzor pozícióján találtakat):

LOAD"IMPOSSIBLE MISSION",8
RUN


Az Impossible Mission játékmenete

Az Impossible Mission játékmenete

Számomra ez a játék tényleg “lehetetlen” volt, egyszer sem sikerült végigjátszanom, de nem tántorított el attól, hogy mindig újra és újra megpróbáljam. Az öreg Commodore még mindig működőképes és ugyanúgy tudok játszani rajta, mint 20 évvel ezelőtt.

A szakdolgozatom

Ennyi év elteltével sem változott a játékok iránti szeretetem, így játékfejlesztést választottam a szakdolgozatom témájának. A hangzatos cím pedig: Cross-platform játékfejlesztés Unity-ben.

Az, hogy ezzel a témával fogok foglalkozni, már jó pár éve adott volt, de a megvalósítandó játék akkor lett biztos, amikor Bonyolultságelmélet előadáson kiderült, hogy vannak kifejezetten nehéz játékok, amelyek megoldásának kiszámítása algoritmikusan belátható időn belül lehetetlen.

Ilyen játék a szókoban is.

Az 1988-ban MS-DOS-ra íródott Soko-Ban

Az 1988-ban MS-DOS-ra íródott Soko-Ban (maga a játék korábbi)

A játék célja egy labirintusban dobozokat, megadott helyre juttatni. Egyszerre csak egy dobozt lehet mozgatni, és klasszikusan csak tolni lehet őket, húzni nem. Egy pályának akkor van vége, ha az összes doboz a helyére került.

Ezt fogom megvalósítani a Unity játékmotor segítségével.

Miért Unity?

Habár több 2-dimenziós játékmotor és játékfejlesztő környezet létezik, a legfontosabb számomra, hogy a lehető legtöbb platformra el tudjam juttatni az elkészült programom.

Ezekre a platformokra lehet exportálni Unityvel:

Asztali
Windows OS X Linux
Telefon
Windows Phone 8 iOS Android
BlackBerry 10
Konzol
Xbox One Playstation 4 Wii U
Xbox 360 Playstation 3 Wii
PlayStation Vita

…és a Unity Web Playeren keresztül böngészőben is lehet játszani.

A Unity elsősorban 3-dimenziós játékok fejlesztésére lett tervezve, de kiválóan alkalmas 2D-sek készítésére is.

Néhány példa:

Hello Unity!

A játékmotor ingyenesen letölthető a fejlesztő honlapjáról. A programkód írásához használhatunk UnityScriptet, Boo-t, vagy C#-ot. Én az utóbbiban fogok fejleszteni.

A program debugolásához lehet használni a Unityba beépített MonoDevelopot, vagy a Unity VS segítségével Visual Studiot.

Miután mindent feltelepítettünk, neki is láthatunk egy új projektet készíteni: a Unityt megnyitva kiválaszthatjuk a UnityVS csomagot a fentebb említett okból, és a legördülő menüből a 2D opciót. Így a kameranézetünk alapból ortografikus lesz, a képként behúzott elemeket pedig spriteként kezeli az IDE.

A Unity Store-ból rengeteg (akár ingyenesen is) letölthető és felhasználható forrás van, a demó kedvéért egy sprite-csomagot töltöttem le. A kezelőfelületen könnyűszerrel összállíthatók a játékelemek.

Build Settings a Unityben

Build Settings a Unityben

A kész jelenet (scene) elmentése után a File > Build Settings… menüponttal jutunk el oda, hogy kiválasszuk melyik platformra szánjuk a játékunkat. A Build gomb lenyomása után elkészül a Visual Studio projekt, amelyet megnyitva kipróbálhatjuk azt. A Visual Studio Configuration Manager…-ében ne felejtsük el az architektúrát átállítani, mert alapértelmezetten ARM-ra készül a build.

Buildelés a Visual Studioban

Build a Visual Studioban


A kész "játék"

A kész "játék"