Ismerkedés a Unity motorral és a számítógépes grafikával
Ebben a szekcióban megismerkedünk a Unity fejlesztői környezetével, a számítógépes grafika alapjaival. Egyelőre még nem kezdünk el programozni, csak átnézzük, mi fán terem a játékfejlesztés, mi az a játékmotor és (egyelőre felületesen) megvizsgáljuk, hogyan működik a digitális kettő és három dimenziós képalkotás. Fontos célja ezen fejezeteknek, hogy elkezdjük építeni a szókincsünket a grafika és játékfejlesztés témakörei körül.
A C# programozás alapjai
A videojáték egy digitális médium. Elkészítéséhez mindenképp szükséges programozni. Ez történhet sok nyelven sőt akár grafikus programozási eszközökkel is. A Unity motorban a játéklogika írásának nyelve a C# (C Sharp), ezért itt ezen nyelven keresztül fogjuk megismerni a kódolás alapjait. A különböző programozási nyelvek általában nagy átfedésben vannak egymással, szóval az itt felszedett tudás könnyedén újrahasznosítható lesz egyéb keretrendszerekben, nyelveken is. Mindazonáltal mi itt különös figyelmet fogunk fordítani a játékfejlesztés specifikus és azon belül is kimondottan Unity-vel kapcsolatos sajátosságokra.
A játékmotor alatti programozás alapjai Unity-ben
Most nekiállunk, az előző szekcióban felszedett C# programozói tudásunkat kamatoztatni a Unity-ben. Saját kóddal fogjuk ellátni a játék-objektumainkat ezáltal egyedi viselkedést rendelve hozzájuk. Különös figyelmet fogunk fordítani a 2 és 3D-s térre, az ebben történő mozgásra és forgásra. Emellett megismerjük az olyan alapvető játékfejlesztői eszközök alapjait, mint a hangrendszer vagy a felhasználói input.
Haladó C#, manuálisan definiált típusok
Ideje mélyebben beleásnunk magunkat az objektum orientált programozás rejtelmeibe. Most megtanuljuk, hogy hogyan definiálhatunk saját típusokat, és ezen a új típusokat hogy használhatjuk ki hatékonyan, mint Unity játékfejlesztők. Emellett egyéb modern programozói eszközökkel, koncepciókkal és hasznos adatszerkezetekkel is megismerkedünk ebben a szekcióban.
A fizikai szimuláció
Majd minden játékban jelen van valami féle fizika, néhol egyszerűbb, van ahol bonyolultabb. Gyakorlatilag ha egy objektumnak van fizikai kiterjedése, alakja, ami befolyásolja a játék futását, akkor már beszélhetünk fizikai szimulációról. Itt nem csak azt fogjuk átnézni, hogy hogyan tudjuk beállítani a Unity motor beépített fizikai rendszerét, hogy az alkalmazkodjon a játékunk speciális igényeihez, de arról is, mi zajlik a háttérben fizikai szimulációkor és miért. Csak ennek teljes megértésével lehetséges hatékonyan és magabiztosan irányítani a játékaink fizikáját.
Egyéb fontos játékfejlesztői eszközök
Ezen szekcióban befejezzük a megismerését a legalapvetőbb játékfejlesztői eszközeinknek. Végre megtudjuk, hogy lehet felépíteni egy felhasználói felületet, hogyan kell váltani scene-ek közt és mi a logikája a Unity animációs rendszerének. Nem csak a Unity Editor-on beül fogunk dolgozni. Olyan új programozói technikákat is átveszünk mint például, hogy hogyan kell véletlen számot generálni, editorban szerkeszthető függvényt írni, vagy késleltetve végrehajtani egy metódust. Végül átnézzük hogy lehet futtatható build-et készíteni Unity szoftverünkből.
Még több haladó programozás
A programozás alapjait már megismertük. Változók, vezérlési szerkezetek, metódusok: Ebből már bármit meg lehet építeni, de ez az építkezés, nem lesz feltétlen kényelmes, átlátható és optimális. Most ideje magasabb szintű fogalmakat és technikákat is megtanulni, amikkel jóval hatékonyabban és elegánsabban valósíthatók meg vízióink. Emellett elméleti szinten is mélyíteni fogjuk a progrmozói tudásunk. Jelen szekcióban nem kifejezetten Unity specifikus fejlesztésre fogunk, koncentrálni, inkább általános programtervezésre, ami persze játékok készítésére is ugyanúgy hasznos, mint bármi egyéb szoftverre.
Hatékony játéktervezés és -fejlesztés
Most beszéljünk a játékfejlesztés azon aspektusairól, amik valamivel kevésbé konkrétak. Nem fogunk ebben a szekcióban új programozói eszközökkel megismerkedni, hanem arról lesz szó, hogy hogyan tudjuk a már korábban megtanultakat hatékonyabban kihasználni.
A játékfejlesztés matematikája
“A játékfejlesztés, és úgy általában a programozás nem tartalmaz túl sok matematikát.” Ezt a mondatot sokszor elmondtam mielőtt elkezdtem volna oktatni mindezt. Azóta egy kicsit óvatosabb vagyok ilyen kijelentésekkel. Nem változott a véleményem arról, hogy nem kell sok matek, viszont az nyilvánvalóvá vált számomra, hogy mennyire mást takar különböző emberek számára a “nem túl sok matek” kifejezés. Most inkább így fogalmaznék: Általában nem kell több matek a programozáshoz, mint az általános és középiskolás anyag egy szűk része. Ha ezen ismeretekkel kapcsolatban is bizonytalanok vagytok, akkor kiemelném, hogy a kellő tudás szép lassan haladva felszedhető a programozói mellé. Ez így hogy hangzik? Most nézzünk pár példát!