A játékprogramozó feladata az én szememben elsősorban nem az, hogy “megírja” a végleges játékot magát, hanem hogy ideális eszközöket építsen az adott játék kapcsán felmerülő ötletek megvalósítására amit a játék-dizájnerek kezébe adhat.
Egy videojáték ötlet ritkán állja meg a helyét önmagában manapság. Egy nagy adag kísérletezés és tesztelés kell ahhoz, hogy eljussunk egy ötletből valami olyanig, ami kimagaslik a mai felhozatalból.
A fejlesztő feladata, hogy olyan keretet teremtsen, amiben minél hatékonyabban és rugalmasabban lehet kipróbálni és variálni játékmechanikai ötleteket.
Tehát a programozó elsősorban nem a játékot készíti el. Ez a játék dizájner feladata. A programozó eszközöket készít, amivel az adott játékot le lehet gyártani. Minél kisebb a projekt annál gyakoribb, hogy a két pozíció nem különül el. Én magam is szeretek mindkét feladatkörben részt venni.
Viszont ekkor is érdemes külön választani a két feladatot. Amikor kódolok, akkor felteszem a programozó kalapomat és eszközöket készítek és nem csak egy konkrét mechanikát programozok le egy az egyben. Amikor ezzel végzek, akkor kalapot cserélek és a dizájner perszónám nekiáll használni az eszközöket.
Ez azért hasznos hozzáállás, mert ha egy eszközzel nehéz dolgozni, akkor a munka jóval lassabb. Kevesebb tartalom, pálya, puzzle, boss, kihívás készül el vele egységnyi idő alatt vagy ami még rosszabb, férc munkát végzünk.
addig nem álljunk neki a játékot gyártani, amíg nincsenek meg az ideális eszközeink. A valóságban ez a két fázis nem különül el ilyen élesen, de az alaplogika áll. Ezen eszközök és rendszerek elkészítése gyakorlatilag a játékmotor funkcionalitásának kibővítését jelentik. Ehhez elengedhetetlen, hogy saját UI felületeket is készíthessünk. A legegyszerűbb verziója mindennek a [SerializeField]
beállítások használata, de külön Editor kódot is rendelhetünk MonoBehaviour
és ScriptableObject
osztályokhoz, amik egyedi módon szabályozzák a kirajzolást.
Emellett készíthetünk egyedi megjelenítést bármilyen szerializált típushoz, és azt attribútumokkal is módosíthatjuk. Végül teljesen független menürendszereket is építhetünk bármilyen feladatra.