Programiranje za apsolutne početnike: Izrada igara u Renpyju

Renpy_01_Tehnologija_narodu_kolumnaIdeja ovog vodiča je kroz brzu izradu igre u Renpyju pokazati kako programiranje može biti vrlo zabavno i ljudima koji tome baš nisu vični. Što je Renpy? To je open source engine za izradu igara, najčešće vizualnih novela, ali i avantura, mozgalica te RPG (role-playing) igara. No, Renpy se ne mora koristiti isključivo za igre, već je idealan za izradu npr. virtualne šetnje Križevcima. Dostupan je za sve operacijske sustave (Linux, Windows, MacOS), a također ima podršku za izradu igara za Android te iOS. Na internetu se mogu pronaći različiti dodaci za Renpy, a dostupno je nekoliko visokoprofesionalno izrađenih igara.

Što su vizualne novele? Radi se o računalnim igrama koje najbolje možemo opisati kao interaktivne priče. Upravo je priča u središtu svake igre, kroz koju igrač napreduje prema jednom od više mogućih završetaka, ovisno o razini slobode kakvu je zamislio i dao mu autor igre. Renpy je implementiran u Pythonu, programskom jeziku opće namjene, prilično jednostavnom za korištenje, a opet dovoljno moćnom za izvedbu profesionalnih projekata. Python se nerijetko koristi za učenje programiranja, čak i na osnovnoškolskoj razini.

Kome je Renpy namijenjen? Djeci i mladima koje zanima programiranje, ali ne znaju kako početi; nastavnicima i odgajateljima koji žele zainteresirati djecu za programiranje; računalnim entuzijastima i hobistima; Python programerima i drugima koji žele relativno brzo i jednostavno izraditi igru; piscima koji žele napraviti interaktivnu priču uz čim manje znanja programiranja. Važno je naglasiti da Renpy nije programski jezik za sebe niti je zamjena za Python, već može pomoći u lakšem svladavanju Pythona.

1) Instalacija i pokretanje Renpyja

Renpy se može slobodno dohvatiti sa službenih web stranica. Za Windows korisnike preporuka je dohvatiti Renpy klikom na prvi, zeleni gumb. Za Linux korisnike preporuka je Renpy svakako instalirati sa službenih stranica, a ne iz repozitorija vlastite Linux distribucije, jer neke Linux distribucije u svojim repozitorijima ne sadrže ne-slobodne dijelove Renpyja. Renpy se zatim pokreće klikom na datoteku renpy.sh u direktoriju gdje se raspakira dohvaćena arhiva. U nekim Linux distribucijama potrebno je prethodno u upravitelju datotekama (file manager) omogućiti pokretanje .sh datoteka.

Renpy_02_Tehnologija_narodu_kolumnaOvaj vodič nadalje pretpostavlja korištenje instalacije Renpyja za Windows korisnike, iako je postupak sličan i na drugim operacijskim sustavima. Dohvaćenu arhivu potrebno je raspakirati (extract) u željeni direktorij. Pri prvom pokretanju programa prikazat će se ekran kao na slici.

Renpy_03_Tehnologija_narodu_kolumnaNovi Renpy projekt se kreira klikom na +Create new project. Pri korištenju Renpyja prvi put potrebno je kreirati novi ili odabrati neki postojeći direktorij za pohranu projekta.

Renpy_04_Tehnologija_narodu_kolumnaNovom projektu potrebno je dati naziv i odabrati jezik, a budući da među dostupnim jezicima nema hrvatskog može se odabrati engleski i kliknuti za nastavak (continue).

Renpy_05_Tehnologija_narodu_kolumnaZatim se odabiru postavke za izgled izbornika unutar igre. To se može kasnije mijenjati, a oni napredniji korisnici mogu dodavati i vlastite postavke. Time je Renpy projekt kreiran.

Renpy_06_Tehnologija_narodu_kolumna2) Instalacija i podešavanje Notepad++

Datoteke Renpy projekta imaju nastavak .rpy i za rad s njima može se koristiti programski alat Notepad++. Može ga se dohvatiti sa službenih web stranica te instalirati sa svim prethodno postavljenim opcijama. U direktoriju s prethodno kreiranim Renpy projektom treba zatim podesiti da Notepad++ bude glavni program za otvaranje .rpy datoteka, desnim klikom miša na datoteku te odabirom programa Notepad++ kroz opcije Open with… –> Choose default program… Nije preporučljivo koristiti “obični” Notepad jer on ima problema s formatiranjem .rpy datoteka, no može se koristiti i neki drugi alat, npr. jEdit ili editra.

Renpy_07_Tehnologija_narodu_kolumnaKad se na glavnom ekranu Renpyja klikne na kreirani projekt prikazat će se ekran kao na slici. Ovdje je potreno objasniti čemu služe ove tri datoteke u projektu: (1) script.rpy – ovo je glavna (main) datoteka i tu je zapravo skrivena većina programskog koda koji piše sam autor igre, od dijaloga do logike; (2) options.rpy – u ovoj datoteci su postavke koje se podrazumijevaju za određenu igru, npr. rezolucija prozora, što je vrlo važno jer rezolucija prozora treba biti manja ili jednaka rezoluciji slika koje se koriste za pozadinu (za početničke projekte preporučuje se niska rezolucija, npr. 800*600); (3) screens.rpy – u ovoj datoteci su pohranjeni neki od glavnih elemenata igre, npr. glavni izbornik.

3) Programiranje u Renpyju

Dvoklikom na script.rpy datoteka se otvara u Notepad++, u kojoj je sljedeći programski kod već generiran:

Renpy_08_Tehnologija_narodu_kolumnaNakon proučavanja programskog koda može se na glavnom ekranu Renpyja kliknuti na “Launch project” te odigrati igru koja je izrađena. Savjet je zapamtiti što se dogodilo, a kroz dijaloge se kreće klikom miša ili tipkom Enter.

Povratkom u Notepad++ mogu se uočiti linije koje započinju znakom # (ljestve). To su tzv. komentari i nisu važni za samo izvršavanje programa, ali služe prvenstveno kao podsjetnici autorima igri. Na početku osmišljavanja igre se definiraju objekti za slike i za likove unutar priče. Svaka slika i svaki lik moraju biti posebno definirani svojim objektom. Npr. slika se može dodati ovom linijom koda:

image eileen happy = “eileen_happy.png”

Naredba “image” kaže Renpyju da se radi o slici, “eileen happy” je ima objekta, a “eileen_happy.png” je ime slike koja se koristi.

Likovi se dodaju naredbom kakva je vidljiva u 7. retku. Naredba “define” programu kaže da se definira neki objekt. ‘e’ je ime objekta. Character određuje da će novi objekt biti lik u priči. ‘Eileen’ određuje ime lika, što se može promijeniti u bilo koje ime, međutim navodnici moraju ostati. Color označuje kojom bojom će se prikazivati ime lika.
Label , kao npr. ovaj u 11. liniji koda je kontrolna točka, međutim to za sada nije važno. Return u zadnjoj liniji označava kraj programa. U 13. liniji koda je sljedeće:

e “You’ve created a new Ren’Py game.”

“e” je ime objekta koji označava koji lik će pričati dijalog u tome trenutku. U dvostrukim navodnicima je dijalog koji lik u igri treba izreći. Vrlo važna napomena: Python je, za razliku od većine drugih programskih jezika, osjetljiv na razmake i tabulatore, dapače on ih koristi za strukturu programa.

4) Prvi zadatak

U ovom zadatku ćemo dodati još jednog lika u našu priču i izradit ćemo dvije nove linije dijaloga. Da bismo to napravili potrebno je promijeniti kod koji trenutno imamo u sljedeći:

Renpy_09_Tehnologija_narodu_kolumnaZatim pokrenimo projekt i pogledajmo kako igra ide. Sada razmislite malo što se točno s tim promjenama u kodu promijenilo u igri? Napomena: Ako vam Renpy javlja grešku najčešće se radi o tome da ste zaboravili zatvoriti navodnike ili ste negdje krivo koristili razmake tj. tabulatore. U ovom vodiču pretpostavljamo da se svugdje umjesto tabulatora moraju koristiti 4 razmaka.

5) Drugi zadatak

U ovome zadatku ćemo naučiti kako igraču dati izbor te kako dodati slike i pozadinu u igru. Za početak pronađite jednu sliku za vašeg lika, po mogućnosti to neka bude .png slika bez pozadine, otprilike veličine 500*400. Zatim pronađite neku sliku za pozadinu, može biti .jpg, iste rezolucije kao vaša igra. Sada prekopirajte te dvije slike u “game” direktorij unutar direktorija samog Renpy projekta. Preimenujte slike u test.png i u test.jpg (vodite računa o formatima slika). Sada preuredite programski kod u script.rpy da izgleda ovako:

Renpy_10_Tehnologija_narodu_kolumnaSada opet pokrenite program, odigrajte igru i razmislite što se promijenilo dok ponovno analizirate programski kod.

Ovime je vodič za izradu igara u Renpyju završen. Za daljnje učenje i izradu vlastitih vizualnih novela preporučuju se online tutorijali. Ovaj vodič je objavljen kao dio “Sata hodiranja” (Hour of Code), globalnog obrazovnog pokreta koji obuhvaća desetke milijuna učenika i studenata diljem svijeta. Svaki učenik bi trebao imati priliku naučiti informatiku. To pomaže njegovanju vještine rješavanja problema, logike i kreativnosti. Počevši rano, učenici će imati temelj za uspjeh u karijeri u 21. stoljeću.

Vezano

Komentari su zatvoreni.