„Upali struju“ – izrada moje prve igre
Autor: Borna Mišetić, 2.c
Davne 2021. godine profesorica Emina Grmić dala nam je zadatak izraditi kviz s najmanje pet pitanja koja obuhvaćaju gradivo prvog razreda iz Algoritama i programiranja. Odlučio sam napraviti cijelu kviz igru u alatu Godot, no kao i s ovim tekstom koji čitate, taj zadatak sam ostavio za zadnji dan roka. Ideja mi je bila vrlo jednostavna: vanzemaljska letjelica na svemirskoj postaji treba popraviti struju, no vrata do struje su zaključana pitanjima kviza. Igrač mora vanzemaljcu pomoći odgovoriti na ta pitanja. Godot sam odabrao jer je vrlo lagan alat za koristiti te je lakši za samo pokrenuti i koristiti, dok alati poput Unityja trebaju dugo vremena za pokretanje jer su puni alata koji meni nisu u tom trenutku bili potrebni. Upoznat ću vas s procesom izrade, rezultatima izrade i mogućim poboljšanjima.
Proces izrade
Uz Godot, alat koji sam koristio za izradu grafike, koristio sam i Aseprite. Aseprite je odličan alat za izradu takozvane pixel-art grafike. Vrlo je moćan, ali i jednostavan za korištenje. Pomoću njega sam nacrtao nekoliko različitih elemenata: pozadinu, vrata, zidove, kutove, pod, gumbe i igrača. Za igrača sam nacrtao 3 različite slike kako bih od njih izradio animaciju. Ta animacija je služila kao provjera rada igre jer su svi drugi elementi na ekranu bili statički i nisu imali animacije. Nakon toga sam igraču, zidovima i vratima dao nevidljive kutije koje sprječavaju izlazak igrača iz prostora određenog za igranje. Dodao sam zatim mogućnost micanja igrača sa standardnim gumbima za micanje: W, A, S i D. Nakon toga sam dodao mogućnost okretanja grafike igrača, da se okreće ovisno o poziciji miša. Budući da grafika igrača ima na prednjoj strani svjetiljku, to je trebalo služiti kao način okretanja svjetiljke, no ja nisam stigao izraditi svjetlo. Sljedeći korak bio je složiti pitanja i gumbe. Napravio sam gumbe da izgledaju ovako:

Zatim sam im dodao nevidljivu kutiju koja provjerava kada je igrač došao u kontakt s njima. Kada igrač dođe u kontakt s njima, oni otkrivaju nevidljivi meni koji sadrži pitanje. Ti prozori su se nalazili tu od samog pokretanja igre, no bili su skriveni.


Ako igrač točno odgovori na pitanje, gumb, meni i vrata se brišu iz igre te igrač može nastaviti. Zadnju sam sobu prekrio još jednom nevidljivom kutijom koja, kada je igrač dotakne prikazuje poruku: „HVALA NA IGRANJU!“. Zadnje što sam osmislio je kratka priča i glavni meni koji se prikazuje pri pokretanju igre:


Funkcionalnost tipki „Igraj“ i „Započni“ uzeo sam iz jedne igre koju sam prije radio, no nisam nikad dovršio.
Što sam naučio izradom ove igre
Smatram da je dobro što sam imao rok za izradu ove igre jer me to motiviralo da je dovršim i pošaljem. Dobro i loše je to što sam to ostavio za zadnji dan. Naučio sam se brzo snalaziti s alatima i raditi pod pritiskom, ali nisam uspio popraviti neke od nedostataka igre te je to naškodilo kvaliteti proizvoda. Naučio sam kako funkcionira GDScript programski jezik kojeg rabi Godot te sam naučio crtati grafiku u Asepriteu.
Što bi se moglo poboljšati
Kao tvorac igre, smatram da su se pojedini dijelovi mogli bolje odraditi. Prvo što mi se ne sviđa jest nemogućnost orijentacije gumba u uvodnom tekstu ovisno o veličini ekrana:

Ako igrač stavi miš u centar svoga ekrana, algoritam koji sam napisao za okretanje igrača počne krivo raditi te se igrač i kamera počnu tresti. Ovo se može lagano popraviti tako da se okretanje igrača isključi ako je miš blizu središtu ekrana. Pokušao sam dodati zvuk, no nisam smislio kreativan način za snimiti zvuk letjelice te nisam uspio naći dovoljno dobar zvuk na internetu. Manjak dinamične svjetlosti umanjuje atmosferu i smisao same igre. Sam projekt „iza zastora“ je poprilično neuredan. TileMap sistem koji je služio za slaganje grafike u pravilnom redoslijedu trebao je imati samo dva sloja (jedan za pod, a drugi iznad za zidove, vrata i gumbe), no zbog nekog razloga meni se ta dva sloja nikako nisu htjela poravnati pa sam ja to riješio na najgori mogući način: dodavanjem dovoljno slojeva da se ne primijeti.

Nisam se brinuo o optimizaciji budući da je ovo poprilično jednostavna igra. Vjerujem da bih, da sam joj posvetio malo više vremena, uspio neke od tih poteškoća popraviti te bi sama kvaliteta završnog proizvoda bila značajno bolja.