Programiranje 2D igara u aplikaciji Construct 2

zoran_hercigonja

Zoran Hercigonja

Sažetak

Programiranje uvijek predstavlja izazov samo po sebi, no još je veći izazov udružiti znanja i vještine iz različitih područja u jedan gotov proizvod kao što je video igra. U radu učenici su isprogramirali kompleksan scenarij igre preko alata za grafičko programiranje. Spajanjem različitih znanja u samom procesu formalnog učenja kao i znanja stečenih samoreguliranim učenjem te informalnim učenjem, zajednički su izradili scenarij igre i pretvorili taj scenarij u jezik kodova to jest naredbi. Uspješno su prilagodili i preveli semantiku govornog jezika scenarija u scenarij grafičke igre. Rad izvještava o rezultatima, preprekama, izazovima s kojima su se učenici suočili te kreativnim rješenjima.

Ključne riječi: Construct 2, Igra, Grafičko programiranje, Vještina, Scenarij igre

Uvod

Construct 2 je vrlo jednostavna i ne zahtjevna komercijalna aplikacija za kreiranje i dizajniranje dvodimenzionalnih igara. Ne zahtijeva klasično kodiranje, nego kodiranj putem odabira grafičkih ikona [2] Ikone se razvrstavaju tehnikom pritisni–povuci (drag and drop). Dostupan je kao besplatna download verzija sa stranice u probnom roku korištenja od trideset dana (30). Dostupan je u više komercijalnih inačica. Ukoliko se koristi za osobnu upotrebu, cijena iznosi clip_image001129.99$ dolara. Za poslovnu upotrebu, cijena iznosi 429.99$ dolara. Naravno u cijenu su ubrojene i nadogradnje te mogućnost za distribuciju igara[2]. Kompatibilan je za rad u više operacijskih sustava: Windows, Mac OS.

Slika 1. Construct 2 glavno sučelje

Sučelje Construct 2 aplikacije, je vrlo intuitivno i jednostavno za korištenje. Sastoji se od nekoliko dijelova. S lijeve strane, nalazi se Properties sa svim podacim o pojedinom objektu ili pozadini.Podaci su vezani uz veličinu, posebne efekte, animacije i slično. Odmah do njega, clip_image002nalazi se tab za dizajniranje objekata i pozadine. Objekti se mogu vlastoručno nacrtati i dizajnirati, ali se mogu preuzeti u obliku slike. Isto vrijedi za pozadinu. Do taba za kreiranje osnovnih objekta i pozadine, nalazi se takozvani Eveent Sheet koji služi kao editor za programiranje igre. S krajnje desne strane, nalaze se slojevi za rad. Na svaki sloj, moguće je uključiti pojedinačne objekte ili stvoriti novu pozadinu.

clip_image004Slika 2. Dodavanje osnovnih animacija

Postupak programiranja započinje odabirom ključnih objekata, dizajnom isith te dodjeljivanjem pojedinačnih akcija. Isto vrijedi i za pozadinu.Svaki element igre, moguće je smjestiti na vlastiti sloj čime se olakšava rad.

Slika 3. Određivanje odvijanja akcija

Nakon dizajniranja i animiranja objekata, potrebno je u Eveent Sheet programski odrediti redoslijed odvijanja akcija. Kada je to određeno, pozivanjem naredbe Run Layouti koja se nalazi na samom vrhu sučelja aplikacije, pokreće se kreirana igra.

Radionica-grafičko programiranje igara

U radionici programiranja igara je sudjelovao kombinirani razredni odjel s učenicima 1, 2, 3, 4 razreda Druge gimnazije Varaždin, ukupno 10 učenika. Radionica je provedena u ukupno 14 sati izborne nastave informatike. Od tih 14 sati šest sati je otpalo na učenje programiranja u programskom sučelju Construct 2 zatim osmišljavanje scenarija i naposlijetku odabira osnovnih grafičkih elemenata koji su uključeni u samu igru.

Temeljni grafički oblici igre

Valja naglasiti da su osnovni objekti korišteni u igri dodatno oblikovani pomoću alata za oblikovanje slika Gimp 2.6.10. Izvorno su preuzeti s internetskih izvora, a dodatno su oblikovani za potrebe programiranja računalne igre. Dakle objekti koji su se koristili za programiranje igara su bili sljedeći, a koje su odabrali učenici su:

1. Pozadina sa uzorkom svemira:

clip_image002[4]

Osnovne postavke:

Slika pozadine je preuzeta s interneta, ali je učeničkom intervencijom i inicijativom, pretvorena u crnu pozadinu s crvenim točkicama.

U originalu točkice su bile bijele boje. Pozadina je statičkog karaktera i prekrivala je velik dio radnog prostora alata Construct 2.

Rubovi te slike pozadine su programski u svojstvima ograničeni kao rubovi unutar kojih se sadržavaju svi objekti igre. To znači se ni jedna objekt nije mogao kretati izvan slike pozadine.

2. Crveni svemirski brod kojim upravlja igrač:

clip_image002[5]

Osnovne postavke:

Brod je imao dvije funkcionalosti. Mogao se pomicati samo u dva smjera po x-osi koordinatnog sustava: dakle –x i +x os. Osim toga brod je trebao moći ispaliti dva hica prilikom svakog pritiska lijeve tipke miša.

 

3. Zelena laserska zraka, kao simbol ispaljenog projektila

 Osnovne postavke: 

clip_image002[6]U izvorniku kao projektil je bila uzeta slika metka s interneta. No učenici su zajedničkom odlukom, odlučili da to bude laserska zraka izrađena u Gimp-u.

Lasersku zraku je u scenariju igre trebalo udvostručiti što znači da prilikom lijevog klika miša, brod ispaljuje dvije paralelne laserske zrake. Zrake kao objekt ugrađen na objekt svemirskog broda, trebale su pratiti brod po osi x u oba smjera. Isto tako kada laserska zraka bude ispaljena i pogodi nepriajteljski objekt, treba nestati.

U slučaju da promaši neprijateljski objekt, zraka u sudaru s rubom pozadinske slike nestaje. Dakle trebalo je isprogramirati nekoliko efekata zrake.

4. Neprijateljski objekti

clip_image012Osnovne postavke:

Slike neprijateljskih objekata su preuzete s interneta. Učenici su sami donijeli odluku o dizajnu i broju neprijateljskih objekata.

clip_image016Funkcionalnosti neprijateljskih objekata su bile sljedeće: nasumično pojavljivanje objekata unutar rubova pozadinske slike. Objekti su se mogli kretati samo po y- osi u negativnom smjeru. Ukoliko je neki od neprijateljskog objekta bio pogođen zelenom laserskom zrakom, trebao je nestati. Dakle efekt nestajanja se trebao stvoriti u trenutku doticaja zrake s tim objektom. U trenutku kada bi objekt nestao na jednome mjstu, paralelno s tim se trebao pojaviti na drugom mjestu. Ako je nepriajteljski objekt dotaknuo rub pozadinske slike, nestao je i paralelno clip_image002[7]se stvorio na nekom drugom mjestu unutar rubova pozadinske slike.

Svaki puta kada bi laserska zraka pogodila neprijateljski objekt, osim što bi nestao, pojavila bi se simulacija eksplozije koja je postignuta podešenim svojstvom unutar Construct 2 aplikacije.

S druge strane u doticaju s igračevim svemirskim brodom, trebao je izazvati efekt nestajanja igračevog broda.

5. Oznaka kraja igre

clip_image001Osnovne postavke:

Planirano je da oznaka kraja bude samo u obliku tekstualnog prikaza „Game Over“. No učenici potaknuti retro igrama, odlučili su se za dizajn oznake kraja igre u retro stilu. Oznaka je napravljena u Gimpu.

Oznaka je trebala biti povezana s objektom broda igrača i neprijateljskog objekta. Sudarom broda igrača i neprijateljskog objekta, iskače oznaka za kraj igre i igra se zamrzne.

Scenarij igre

Dogovoreni scenarij igre, sadržavao je sljedeće postavke. Igra je trebala nalikovati igri „Chicken Invasion“ samo s drugim elemenima. Dakle moraju postojati neprijateljski objekti u obliku svemirskih brodova koji se nasumično pojavljuju unutar slike pozadine. Njihovo kretanje je ograničeno od gornjeg ruba prema dolje točnije od pozitivne y-osi prema negativnoj. Brzina gibanja je postavljena na srednju brzinu. Zatim postoji glavni objekt kojim upravlja igrač. No igračev svemirski brod kreće se samo lijevo-desno po pozitivnoj i negativnoj x-osi ne prelazeći rubobe slike pozadine. Brod mora moći ispaljivati projektile odnosno laserske zrake u neprijateljske objekte. Laserske zrake su duplicirane i istovremeno se lansiraju prilikom pritiska lijeve tipke miša. Sudarom laserske zrake i nepriajteljskog objekta, postiže se efekt nestajanja nepriajteljskog objekta i nasumične pojave istog na nekom drugom mjestu. Zraka u sudaru s brodom treba nestati. Kod sudara zrake i broda, treba se pojaviti efekt eksplozije koja s vremenom iščezava. U slučaju sudara broda igraa i neprijateljskog broda, brod igrača se pozicionira na mjestu gdje je zadešen sudarom i iskače poruka o kraju igre.

Postupak rada i poteškoće u razvijanju igre

Iako sama struktura igre ne izgelda osobito kompleksna. Bez obzira na izgled, zadavala je mnogo problema, posebice kada se radilo o uskalđivanju dva ili više objekata igre.

clip_image020 Slika 4. Prikaz programirane sturkture igre

Na samom početku, trebalo je u programski editor unijeti sve potrebne elemente i sliku pozadine razvući po cijelom ekranu. To je bio najlakši dio koji je bez problema odrađen.Drugi dio se ticao broda igrača i podrazumijevao je odabir upravljača u obliku miša i određivanje osi po kojoj će se brod gibati. Brzinu nije trebalo odrediti, jer je određena manevrom miša.

clip_image021 
Slika 5. Pozicioniranje temeljnih objekata

Početne vrijednosti je trebalo podesiti i nad laserskom zrakomi neprijateljskim brodom. Oba su usmjerena u smjeru y- osi, samo što je svki od objekata imao određeno kretanje u jednom dijelu osi y. Nakon toga, bilo je potrebno testirati brzinu gibanja objekata po y- osi. Tu se utrošilo malo više vremena zbog testiranaj i određivanja željene brzine gibanja.

clip_image022 
Slika 6. Dodavanje funkcionalnosti objektima

Drug korak je bio posebno problematičan, a ticao se usklađivanja kretanja dviju laserskih zraka. Naime problem je bio u tome što se zrake nisu istovremeno ispaljivale nakon lijevog klika miša. Događalo se to da jejedna zraka bila ispaljivana prerano, a druga prekasno. Idući problem je bio prekalpanje zraka. Učenici su dugo određivali razmak između zraka dok nisu došli do optimalne udaljenosti po x – osi od 10 piksela. Događalo se to da se pri svakom pomaku broda igrača, jedna od zraka zalijepila za drugu. Problem je bio u tome što u modu za obradu slika zrake nije bila pravilno postavljena na brod. Bilo je potrebno sidro slike zrake postaviti na vrh broda igrača.No i taj je problem efikasno riješen.

clip_image023 
Slika 7. Određivanje nasumičnog pojavljivanja neprijateljskih objekata

Ovaj dio vezan az problematiku određivanaj pojavljivanja pojedinog neprijateljskog objekta je riješen vrlo jednostavno. U Construct 2 postoji naredba random kojom se određuje nasumično pojavljivanje objekata. Uz tu naredbu, potrebno je bilo odrediti i učestalost pojavljivanja. Učestalost je postavljena na 3 iz razloga što su vrijednosti veće od 3 predstavljale poteškoću za igrača. Svaka vrijednost veća od 3 značclip_image024ila je i veći broj nepriajteljskih brodova. To je dovodilo do toga da nije bilo moguće izbjegavati te brodove i igrač je neprestano gubio igru.

Slika 8. Uređivanje odnosa objekata igre

Posljednji, a najtži dio je podrazumijevao usklađivanje radnji četiri različita tipa objekata. Najprije je trebalo odrediti akciju koja će se zbiti u slučaju sudara laserske zrake i nepriajteljskog broda. Učenicima je ovaj koncept bio dosta otežavajući pa je bilo potrebno intervenirati ponavljanjem if-else uvjetovanja, ovdje pretvorenog u naredbu collision. clip_image025Dakle kada su se dva objekta sudarila, oba su morala nestati, u suprotnom nepriajteljski brod se kretao dalje po osi y kao i laserska zraka samo u različitim smjerovima. Uz to, bilo je potrebno uključiti još jedno if-else uvjetovanje.

Slika 9. Gotova igra u Construct 2

Dakle u igrici je stvoreno ugniježđeno grananje. Grananje je glasilo: kada se objekti sudare, moraju nestati i ako se sudare, pojavljuje se efekt eksplozije. Zatim eksplozija nestaje kada igrač ponovno pritisne lijevu tipku miša. Kod ovog grananja, bilo je ptorebno ponovno raditi dijagrame tijeka na ploči. Naravno učenici 4 razreda su poučavali učenike ostalih razreda pomoću dijagrama tijeka. Njima je zbog vieš iskustva u programiranja taj koncept ugniježđenog if-else uvjetovanja bio jasan. Kada je razjašnjen taj koncept, više nije bilo problema s poslejdnjim dijelom kreiranja igre. Isti koncept samo s drugim objektima,bio je primijenjen nad brodom igrača, neprijateljskim brod i poruci o završetku igre. Dakle u ugniježđeni if su ušli sljedeći uvjeti: kada se objekti sudare, zaustavi igru; kada je igra zaustavljena, ispiši poruku o kraju igre.

Zaključak

Nakon utrošenih 14 sati rada na kreiranju računalne igre, učenici su dobili jasniju predodžbu o tome koliko je bilo koji koncept programiranja intelektualno zahtjevan te koliko procedura i apstrakcija zahtijeva, prije nego je vidljivo ostvaren kroz neki scenarij igre. Naravno učenici su upotrijebili mnogo znanja ne samo iz područja logike i programiranja, nego i iz područja grafičkog dizajna. Ovaj vid kreiranja igara, omogućio im je jedan način kreativnog izražavanja. Učenici su dobili uvid u svoje sposobnosti i propuste. Sada imaju jasniji fokus za daljnje usavršavanje i rad na sebi. Ova radionica je iziskivala dosta iscrpnog rada i izučavanja. Učenici su prošli cijeli postupak nastajanja programa. Uspješno su spojili sve bitne koncepte programiranja u jedan. Krenuvši od scenarija to jest pseudokoda programa, preko dijagrama tijeka pa sve do gotovih konstrukcija pomoću naredbi alata Construct 2. Radionica programiranja igara je imala pozitivna utjecaj na stvaranje pozitivnog stava prema radu te bila glavni izvor motivacije i nadahnuća za učenike koji su imali potrebu kreativno se izraziti u tom području.

Literatura

  1. Programiranje igara [pritupano 22.01.2017.]
  2. Construct 2 službena stranica [pristupano 22.01.2017.]

Učenje programiranja grafičkim programiranjem igara

zoran_hercigonja

Zoran Hercigonja

Sažetak

Živimo u vremenu u kojem su djeca izložena neprestanoj interakciji s modernih tehnologija, koje omogućavaju udaljenu komunikaciju, pretraživanje raznih sadržaja i igranje igara. Sam koncept tekstualnog programiranja takvoj generaciji koja je zbog učestale izloženosti tehnologijama, razvila vrlo osebujne vizualne sposobnosti,postaje demotivirajuć i odbojan. Učenici bi trebali naučiti logički i apstraktno razmišljati to jest naučiti stvarati apstraktne modele rješenja, a tek onda te modele realizirati u programski kod. Povećati motivaciju znači nastavni sadržaj prilagoditi očekivanjima učenika. Ukoliko učenici imaju vrlo razvijene vizualne sposobnosti, potrebno je koristiti rješenja i metode koje zdovoljavaju to područje. Uključiti grafičko programiranje prije tekstualnog programiranja, znači naučiti ih razmišljati. Programiranje treba promatrati kao alat pomoću kojeg se razvija apstraktno mišljenje. Upravo to rješenej je priakzano u ovom radu.

Uvod

Oko 1970-ih godina programiranje se dosta populariziralo [1]. Na programiranje se tada gledalo kao na puko mehaničko nizanje linija koda u nekom programskom editoru. No danas programiranje podrazumijeva rješavanje problema, otklanjanje grešaka, razvijanje logičkog razmišljanja i računalnog razmišljanja, a to podrazumijeva razvoj strategija za rješavanje problema koji se mogu odnositi i na neprogramerska područja [1]. Prema tome, može se reći da je programiranje jedan specifičan način razmišljanja koji parira matematičkom razmišljanju i rješavanju problema. Upravo zbog toga se može reći da programiranje mijenja način razmišljanja [2]. Programeri iz 1970-ih, bile su osobe koje imaju sposobnosti linearnog razmišljanja i izvršavanja rutina [3]. Eksponencijalnim razvojem tehnologije, koncept programiranja se promijenio. Od današnjih se programera traži kreativnost. Dakle današnje je doba krcato popularnim tehnologijama koje osiguravaju i postojanje računalnih igara različitih kategorija. Stoga učenje programiranja na standardni način, „suhoparnim“ pisanjem linija koda, postaje odbojno u nastavi. Većina djece već u osnovnim školama ima negativno mišljenje o računalnoj znanosti [3]. Isto tako treba uvažiti da su djeca 21. stoljeća cijeli život okružena mobitelima kao i njihovim naprednim mogućnostima te drugim uređajima koji preferiraju učenje kroz igru u odnosu na „ozbiljan“ rad [3]. Dakle djeca rođena u digitalnom vremenu imaju razvijene izvanredne vizualne sposobnosti što je zapravo karakteristika učenja temeljenog na računalnim igrama.

Igre su vrlo prilagodljivi medij koji se može prilagoditi svakoj tehnologiji od neolitika do visoke tehnologije. Postoji velik broj vrsta igara: ratne igre, slagalice, logičke, strateške,društvene i druge [4]. Samo učenje programiranja ne podrazumijeva učenje i usvajanje novih pojmova, već uvježbavanje vještine primjene naučenog na rješavanje konkretnog problema u problemskoj situaciji. To ukazuje na potrebu za stvaranje stalne interakcije. Djeca rođena u digitalno doba, očekuju stalnu interakciju u radu s tehnologijama. Tako da standardno programiranje u obliku ispisivanja programskog koda i testiranja rješenja na primitivnom programskom editoru poput Logo, Python, Basic ili C++ ispisa na editoru, postaje monotono i demotivirajuće. Učenicima zbog smanjene motivacije za programiranje, opada i uspješnost učenja samog programiranja. U nastavku to znači da se treba okrenuti rješenjima koja bi povećala motivaciju učenika i pobudila interes za učenje programiranja. Poznato je da porastom motivacije, raste i uspješnost savladavanja nastavnog gradiva. Isto je i s programiranjem. Potrebno je prilagoditi razinu očekivanja učenika nastavnim gradivima. Učenici bi u programiranju trebali imati mogućnost stalne interakcije poput one u igrama. To znači da mogu odmah na licu mjesta dobiti vizualni pregled nad rezultatima svoga rada. To bi ih motiviralo i zainteresiralo za daljnje produbljivnje interesa za učenjem programiranja. Dakle kod učenike važnije naučiti logički i računalno razmišljati to jest naučiti stvarati apstraktne modele rješenja, a tek onda te modele pretočiti u linije koda. Do sada na području rješavanja ovog delikatnog problema, zabilježena je intervencija 2009. godine. U programu za programiranje robota od lego kocaka, stvoren je algoritam kretanja robota ne upisivanjem naredbi nego odabirom programskih naredbi koje su izvedene u obliku grafičkih ikona. Klikom na ikonu, odabere se određena programska naredba kojom se robota potakne na aktivnost. Dakle programom Lego Mindstorms NXT, isprogramirano je da se robot kreće ravno 2 sekunde, zatim se zaustavi i nastavi se kretati još 2 sekunde [5]. Iako je time interes učenika za programiranjem bio povećan, ovakvo rješenje samo po sebi je dosta skupo. Najskuplji dio je elektronička oprema za realizaciju takvog rješenja (robot od lego kocaka i licencirana aplikacija). Ovim radom i israživanjem predložena su dva rješenja za programiranje s kojima programiranje postaje lakše i puno zanimljivije od „suhoparnog“ i monotonog ispisivanja programskog koda. Takvim rješenjima bi se trebalo zagarantirati povećan interes učenika za programiranjem, olakšano učenje pojedinog programskog konstrukta i stvoriti podlogu za logički i računalni način razmišljanja.

Aplikacije za programiranje igara

Aplikacije za programiranje igara namijenjene su stvaranju raznih scenarija računalne igre u dvodimenzionalnoj ili trodimenzionalnoj grafici. Postupak programiranja, ne sastoji se od tekstualnog upisivanja linija koda u programski editor, već grafičkim načinom pisanja programa. Programira se tehnikom pritisni–povuci (drag and drop), odnosno slaganjem grafičkih ikona. Grafički način pisanja programa isključuje sintaktičke i leksičke pogreške koje se javljaju pri tekstualnom unosu što olakšava smišljanje rješenja i izradu programa. Aplikacije za programiranje igara, sadržavaju identične programske konstrukte poput većine programskih jezika. Svaki programski konstrukt poput: uvjetovanja, grananja, petlja, funkcija, izveden je u obliku grafičke ikone s istom svrhom i funkcijom kao i u standardnom programiranju u jezicima Python, Logo, C++ ili Basic.

GameMaker-Studio 1.4

GameMaker-Studio 1.4 je komercijalna aplikacija za razvoj dvodimenzionalnih i trodimenzionalnih računalnih igara. Podržana je kao desktop verzija za Windows i Mac OS operacijske sustave te za sustav Android. Dostupna je kao besplatno download rješenje na ovoj stranici  za probno korištenje u trajanju od trideset (30) dana. U probnoj inačici, korisniku ove aplikacije, dostupni su neograničeni resursi za kreiranje igara poput raznovrsnih gotovih oblika i pozadina. Osim probne verzije, moguće je kupiti licenciranu verziju Multiplatform development za 149,99$ dolara. Tom verzijom se kupuju i prava na dodatne nadogradnje u obliku dodataka ili plug-ins. Drugu licenciranu verziju Complete Studio package za profesionalni rad, moguće je nabaviti za 799.99$ dolara[6]. U tu se verziju se ubraja mogućnost distribucije igara, te korištenje dodatnih resursa za korištenje na mobilnim aplikacijama poput aplikacije Android.

imageSlika 1. GameMaker-Studio 1.4. glavno sučelje

U GameMakeru-Studio 1.4. postoje sve programske strukture koje se uobičajeno koriste u programiranju: uvjetna naredba, while, repeat, do i for petlje, funkcije i nizovi. Programiranje grafičkim ikonama, sastoji se od kreiranja prvotnih objekata koji će poslužiti imagekao glavni likovi u igrici. Takve objekte nazivamo Sprites.  To su grafičke ikone ili slike koje predstavljaju objekte. Možemo ih sami nacrtati ili ih preuzeti iz neke baze sličica. Uz njih, potrebno je kreirati i sobu Rooms to jest predložak u kojeme će se odvijati radnja. Kao i kod Sprites objekata i ovdje je moguće izraditi valstiti preldožak ili koristiti neki iz baze sličica.

Slika 2. Izbornik za kreiranje osnovnih objekata

imageSvi objekti, podvrgnuti su opdređenim gibanjima koje nazivamo akcijama ili Actions. Akcije se mogu odvijati nad događajima podijeljene u nekoliko grupa. Postoje akcije gibanja i/ili skakanja Move, akcije za rad s objektima Objects, akcije za mjerenje vremena Timing, akcije za rad s uvjetima i upitima Quesions, akcije za različite načine bodovanja Score, akcije crtanja Drawing i druge.

Slika 3. Izbornik s kcijma za objekte

imageNakon prethodno uređenih koraka program je moguće testirati naredbom pokreni ili Run. Igra će se pokrenuti otvaranjem sobe Rooms u kojoj će se nalaziti svi odabrani objekti s dodijeljenim funkcijama.

Slika 4. Dodavanje aktivnosti objektima

Construct 2

Construct 2 je vrlo jednostavna i ne zahtjevna komercijalna aplikacija za kreiranje i dizajniranje dvodimenzionalnih igara. Ne zahtijeva klasično kodiranje, nego kodiranj putem odabira grafičkih ikona [7]. Ikone se razvrstavaju tehnikom pritisni–povuci (drag and drop). Dostupan je kao besplatna download verzija sa stranice u probnom roku korištenja od trideset dana (30). Dostupan je u više komercijalnih inačica. Ukoliko se koristi za osobnu upotrebu, cijena iznosi 129.99$ dolara. Za poslovnu upotrebu, cijena iznosi image429.99$ dolara. Naravno u cijenu su ubrojene i nadogradnje te mogućnost za distribuciju igara[8]. Kompatibilan je za rad u više operacijskih sustava: Windows, Mac OS.

Slika 5. Construct 2 glavno sučelje

Sučelje Construct 2 aplikacije, je vrlo intuitivno i jednostavno za korištenje. Sastoji se od nekoliko dijelova. S lijeve strane, nalazi se Properties sa svim podacim o pojedinom objektu ili pozadini.Podaci su vezani uz veličinu, posebne efekte, animacije i slično. Odmah do njega, nalazi se tab za dizajniranje objekata i pozadine. Objekti se mogu vlastoručno nacrtati i dizajnirati, ali se mogu preuzeti u obliku slike. Isto vrijedi za imagepozadinu. Do taba za kreiranje osnovnih objekta i pozadine, nalazi se takozvani Eveent Sheet koji služi kao editor za programiranje igre. S krajnje desne strane, nalaze se slojevi za rad. Na svaki sloj, moguće je uključiti pojedinačne objekte ili stvoriti novu pozadinu.

imageSlika 6. Dodavanje osnovnih animacija

Postupak programiranja započinje odabirom ključnih objekata, dizajnom isith te dodjeljivanjem pojedinačnih akcija. Isto vrijedi i za pozadinu.Svaki element igre, moguće je smjestiti na vlastiti sloj čime se olakšava rad.

Slika 7. Određivanje odvijanja akcija

Nakon dizajniranja i animiranja objekata, potrebno je u Eveent Sheet programski odrediti redoslijed odvijanja akcija. Kada je to određeno, pozivanjem naredbe Run Layouti koaj se nalazi an samom vrhu sučelja aplikacije, pokreće se kreirana igra.

Provedeno testiranje i rezultati

Metode i materijali

Istraživanje je provedeno na satu informatike nad nekolicinom učenika Druge gimnazije Varaždin. Na izbornom satu informatike, odabrane su dvije grupe učenika trećih razreda. Grupe su se sastojale od učenika s osrednjim znanjem i vještinama programiranja. Svaka grupa učenika je radila u jednoj aplikaciji. Predviđeno vrijeme provođenja istraživanja je bilo dvanaest (12) sati. Od dvanaest sati, dva sata su utrošena na upoznavanje i učenje osnovnih funkcionalnost rada s aplikacijama, a drugih deset sati za izrađivanje jednostavne dvodimenzionalne igre. Odluka o izradi dvodimenzionalne igre, potekla je iz ograničenja aplikacije Construct 2. Naime ta aplikacija nema mogućnosti kreiranja 3D igara. Svaka grupa učenika je dobila isti zadatak. Željela se utvrditi razina motivacije učenika te zainteresiranost za programiranje kroz koncepte programiranja računalnih igara. Temu i scenarij igre su određivali sami učenici u grupi. Osnovni kriterij izrade igara kojeg su se učenici u obje grupe morali čvrsto držati je bio korištenje programskih konstrukata. Učenici su u obje grupe za izradu igre, trebali koristiti uvjetne naredbe (za ispitivanje uvjeta i postavljanje pitanja) i ponavljanje naredbi (petlje).

Rezultati

Nakon dvanaest sati rada, uz minimalne intervencije nastavnika, učenici su uspjeli na vrijeme završiti obje igre. U igrama je uvažen osnovni kriterij određen u metodama i materijalima. Dvije grupe, izradile su dva različita scenarija svojih igara. Učenici koji su igru programirali u Construct 2 bili su gotovi gotovi puno ranije od učenika koji su programirali u GameMaker-Studio 1.4. Razlog je bio sljedeći. Aplikacija GameMaker-Studio 1.4. ima dosta kompleksno sučelje. To znači da se svaka aktivnost mora odrađivati u novome nepovezanome dijaloškom okviru što djeluje dosta zbunjujuće. Ukoliko je za svaki objekt otvoreno više dijaloških okvira, može doći do konfuzije i zatvoriti se pogrešni dijaloški okvir. imageKod Construct 2 aplikacije, učenci nisu imali takvih problema jer nije bilo mnogo dijaloških okvira koji bi ometlai u radu. Bez obzira na to učenici su pokazali i dizajnerske vještine i vrlo promišljne scenarij.

Slika 8. Primjer igre izrađene u aplikaciji GameMaker-Studio 1.4.

imageScenarij igre izrađene u GameMaker-Studio 1.4. temelji se na glavnom objektu (ovci) koja jede travu (nepomični objekti) i te koji u koliziji sa samopokretljivim objektima koji mijenjaju smjer svakih pola sekunde biva vraćen na početak igre.

Slika 9. Primjer igre izrađene u aplikaciji Construct 2

Scenarij igre u Construct 2 temelji se na glavnom objektu pokretanom od strane igrača, koji se suočava s uspješnim savladavanjem prepreka. Prepreke su raznovrsne od ravnih staza, stepenica, do vrlo strmih objekata. Ukoliko glavni objekt ne savlada prepreku, vraća se na početak igre.

Već na samom početku rada u ovom istraživanju prilikom uvođenja u rad ovih aplikacija, učenici su pokazali velik interes za izradu igara pomoću grafičkog programiranja. Iako se radilo o učenicima s osrednjim znanjem i vještinama programiranja, napravili su vrlo uspješne i zabavne igre savladavajući pritom osnovne programske konstrukte: varijable, petlje i uvejtne naredbe. Izrađene igre su rezultat logičkog promišljanja. Sa sigurnošću se može reći da je motivacija bila na razini.Prilikom izrade zadataka, bile su potrebne minimalne intervencije nastavnika. U povremenim intervenicjama, učenici bi eventualno tražili savjete oko dizajna pojedinih objekata. Učenci koji su u radu na aplikaciji Construct 2, ranije završili svoju igru, bili su motivirani za izradu dodatka svoje igre. No izvedba zamišljneog scenarija je bila dosta kompleksna i zahtjevla bi dodatnih pet sati rada. Sa sigurnošću se može reći da je programiranje igara u obje aplikacije jako zainteresiralo i motiviralo učenike.

Zaključak

Učenje programiranja grafičkim programiranjem igara, pokazalo je vrlo dobre rezultate. Postignuta je zadovoljavajuća razina motivacije i interes za programiranje. Učenici osrednjih razina programiranja pa i oni koje nikad programiranje kao proces nije zanimalo, pokazali su veliki interes za rad u ova dva programa. Učenici su proniknuli u značenje i funkciju programskih konstrukata programske petlje i uvjetne naredbe kroz kreiranje igra, bez mukotrpnog i „suhoparnog“ i vrlo demotivirajućeg tekstualnog pisanja programskog koda. Praktičnim radom i paralelnom vizualnom intervencijom s aplikacijama, stvorili su logičko i računalno razmišljanje te tako proširili svoja znanja. Osim toga učenici su se okušali i u vještinama timskog rada. Učenici su osim znanja iz područja logike i programiranja koristili i proširivali svoja znanja iz područja dizajna. Što se tiče samih aplikacija, pokazale su se izrazito korisnim. Iako je GameMaker-Studio 1.4. pokazao neke manjkavosti tijekom rada, to nije uvelike utjecalo na kreiranje konačnog rješenja i uspješnosti rješavanja zadatka. U svrhu popularizacije programiranja, bilo bi potrebno uvesti više ovakvih aplikacija.

Popis literature

  1. Bubica, N. Mladenović, M. Boljat, I. Programiranje kao alat za razvoj apstraktnog mišljenja [pristupano 03.01.2016.]
  2. Resnick, M., i dr. Scratch: Programming for all. Communications of the ACM. 2009
  3. Mladenović, M. Učenje i poučavanje programiranja temeljeno na igrama [pristupano 03.01.2016.]
  4. Kirriemuir, J. McFarlane, A. Literature Review in Games and Learning, Futurelab, Bristol, 2004.
  5. Deljac, S. Učenje programiranja programiranjm robota i igara [pristupano 03.01.2016.]
  6. Službene stranice aplikacije GameMaker-Studio 1.4. [pristupano 03.01.2016.]
  7. Službene stranice aplikacije Construct 2 [pristupano 03.01.2016.]
  8. Službene stranice aplikacije Construct 2 [pristupano 03.01.2016.]