Objavljeno: 28.5.2024 | Avtor: Arnold Marko | Monitor Junij 2024

Računalniške igre iz domače delavnice

Razvoj iger povezujemo z velikimi studii, velikimi ekipami in velikimi stroški, a v resnici vse to ni nujno potrebno.

Pogosto menimo, da je za snovanje iger potrebno ogromno programerskega znanja in časa ter da v ta svet uporabniki z manj programerskega znanja sploh nimajo vstopa ali pa so omejeni na »instant« rešitve, kot je to primer pri Minecraftu ali Robloxu. Pa vendar je svet neodvisne produkcije, t. i. »indie« iger, precej veliko področje, ki je še kako živo. Predstavljamo dve polnokrvni odprtokodni razvojni orodji, ki tudi navadnim smrtnikom omogočata, da se podajo v čudežni svet ustvarjanja iger in za to ne potrebujejo niti veliko programerskega znanja niti velikanskih ekip.

Tudi ko odpremo vse elemente vmesnika GDevelop, ta ostane dokaj minimalističen.

Seveda ne gre pričakovati, da bi bile igre, narejene z Gdevelopom ali Godot Engine, enako kompleksne ali vizualno dovršene kot tiste, ki se jih ustvari z orodjem Unity ali Unrealom, vendar to tudi ni namen. Obe orodji sta primerni za izdelavo le grafično manj zahtevnih 2D-iger, le pogojno tudi iger 3D (predvsem Godot). Oba pa sta odlični učni orodji za razumevanje logike iger in njihovih gradnikov (figure, zvoki, grafike …), zato ju je mogoče uporabiti tudi v pedagoškem procesu. In kakšnega mladostnika pripraviti do tega, da preseže zgolj vlogo igralca in nemara postane snovalec svojih lastnih izdelkov.

Gdevelop za telebane

Če gledamo s stališča enostavnosti in primernosti za vse brez velikega znanja programiranja, je Gdevelop najzanimivejše orodje za razvoj igre. To namreč poteka brez klasičnega pisanja kode, saj se ta izdeluje sama ob pomoči grafičnega vmesnika, v katerem kombiniramo dogodke in dejanja. Narobe bi bilo, če bi rekli, da v tem primeru ne gre za programiranje, pa vendar se zdi delo bolj podobno nadgradnji dela v Scratchu ali podobnih orodjih za učenje programiranja.

Gdevelopov urejevalnik za razvoj iger brez pisanja kode.

Gdevelop je v veliki meri preveden tudi v slovenščino, kar ga naredi primernega tudi za rabo med mlajšo populacijo, ki bi se rada naučila logike izdelovanja iger. Obstaja kot namizna aplikacija, na voljo pa je tudi kot spletno orodje, pri čemer sta funkcionalnost in zasnova obeh različic skorajda enaki. Čeprav okoli Gdevelopa zbrana skupnost morda ni tako velika kot pri katerem od drugih pogonov, pa je zelo živa, še posebej izstopa veliko število vodnikov, predlog in narejenih iger, ki jih je mogoče predelati oziroma se iz njih učiti. Podpira tudi sodelovanje več razvijalcev pri istem projektu, prek »oblaka«. Zanimivo je, da so projekti v računalniku precej majhni in pregledni, saj obsegajo večinoma le eno datoteko javascript (.json), v katero se zapisuje celotna igra, in mapo z elementi (slike, zvok ...). Ob tem sta orodje in pogon (ki je večinoma pisan v C++) tudi precej hitra in dobro delujeta tudi na manj zmogljivih računalnikih. Gdevelop je narejen za razvoj 2D-iger, v zadnjih različicah pa so dodane tudi še dokaj omejene možnosti za 3D. Že nekaj časa so na voljo tudi razširitve, ki omogočajo ustvarjanje preprostih iger 3D, vendar so seveda neprimerljive s pravimi razvojnimi 3D-okolji in pogoni. Razširitve uvajajo tudi različne dodatne funkcije kot tudi že vnaprej izdelana »obnašanja« za elemente različnih iger (denimo, da se izstrelek premika v smeri drugega lika).

Igro je mogoče izvoziti za računalnik (Windows, MacOS ali Linux), objaviti na spletni strani skupnosti, jo izvoziti kot spletno igro za objavo na različnih igralnih portalih ali kot Facebook igro, mogoče pa jo je izvoziti tudi za Android ali iOS mobilne naprave. Pri tem je sicer za namizne operacijske sisteme, Android in iOS nekaj omejitev pri številu izvozov z enim klikom. Na dan lahko izvozimo do dve igri, za več pa je treba plačevati naročnino. Če zna razvijalec sam izvoziti igro z uporabo ustreznih razvojnih orodij za posamezno platformo, teh omejitev ni.

Razvojni vmesnik je zelo enostaven, na prvi pogled kar špartanski, saj je funkcij v menijih malo, večina stvari se dogaja v zavihkih, ki so razdeljeni na scene in dogodke. V scenske zavihke dodajamo objekte (figure, elemente, zemljevide …) in nasploh ustvarjamo grafično podobo igre, medtem ko v zavihkih z dogodki ustvarjamo logiko igre ob pomoči enostavnega urejevalnika, v katerem z miško iz nabora mogočih funkcij določamo pogoje in dejanja, ki se ob njih izvedejo. Ker se vse izbira iz kategoriziranih seznamov (tako dogodki, kot objekti na katere se nanašajo), ni potrebe po kakršnemkoli poznavanju jezika, saj se načelno vse izbira s klikanjem in z vlečenjem. Sicer je mogoče ustvarjati tudi globalne in lokalne spremenljivke (za denimo točke) ter klicati posamezne funkcije z vpisom besedila v različna polja, kjer lahko uporabljamo tudi matematične funkcije, denimo deljenje ali seštevanje.

Z nekaj kliki miške v Gdevelopu ustvarjamo kompleksna razmerja med posameznimi elementi igre.

Gdevelop je v zadnjih letih dobil tudi precej dodatnih zmogljivosti – denimo fizikalni pogon, sevalnik delcev in podobno, zato se da z njim ustvarjati vedno bolj izdelane igre. Kot smo že omenili, so za Gdevelop na voljo tudi naročnine, ki pa nimajo vpliva na samo razvijanje iger, temveč poenostavijo posamezna opravila, predvsem pri izvažanju iger za splet ali mobilne naprave. Uporabniku omogočajo še dostop do več že narejenih grafičnih elementov, dodajo analitiko za objavljene igre in tako dalje. Nič od tega sicer ni nujno potrebno, lahko pa poenostavi življenje, če bi kdo res napisal igro, za katero meni, da bi lahko postala uspešnica.

Godot Engine za bolj vešče

Zgodovina pogona Godot sega že v leto 2001. Do leta 2014 se je razvijal kot komercialni izdelek, tedaj pa je dobil status odprtokodnega programa, ki se vse do danes aktivno razvija. Omogoča ustvarjanje iger za namizne operacijske sisteme, mobilne naprave in splet. Izbor vrste igre, ki ga opravimo ob ustvarjanju projekta, je dokaj pomemben, saj se na podlagi tega izbere izrisovalnik (renderer), ki lahko daje prednost zahtevnejši grafiki in velikim scenam za namizne operacijske sisteme, prilagaja zmogljivost grafike mobilnim napravam, v združljivostnem načinu pa zaradi še manjše kompleksnosti grafike omogoča izdelavo iger za vse vrste platform – tudi za splet. Projekti imajo na disku precej razvejano strukturo map, podmap in datotek, kar je precej drugače kot v Gdevelopu, kjer se celotna igra nahaja v le eni datoteki.

Vmesnik Godot Engine ima veliko elementov, a ostaja pregleden tudi pri zahtevnejših zasnovah iger.

Godot Engine podpira razvoj tako 2D- kot tudi 3D-iger, a je pri zadnjih v primerjavi z bolj namenskimi pogoni manj zmogljiv. Pričakovano ponuja veliko orodij in funkcij za animiranje, fiziko, trke, delce in podobno, podpira pa tudi zemljevide TileMap za hitro izdelovanje večjega števila 2D-nivojev.

Zasnova iger temelji na vozliščih (nodes) in scenah (scene). Vozlišča so v bistvu osnovni gradniki igre – figure, slike, zvoki, kamere, maske trkov in tako dalje. Vsako vozlišče je mogoče nadgraditi z dodatnimi funkcijami, poleg tega pa jih je mogoče razvrščati kot nad- in podredne (parent-child) v drevesno strukturo oziroma scene, kar omogoča povezovanje in ustvarjanje zahtevnejših odnosov med elementi igre. Neki lik v igri lahko tako sestavimo iz figure, telesa in kamere, ki mu sledi, ter maske trkov. Vsaka tako ustvarjena scena se lahko podredno doda novi sceni ali se uporabi kot nova instanca (tako imamo lahko pet istovrstnih likov).

Čeprav gre še vedno za pogon, ki poudarja enostavnost ustvarjanja, pa v Godotu ne bo šlo brez programiranja, zato je zahtevnejši od Gdevelopa. Uporablja lastni jezik GDScript, ki je dinamičen in objektno orientiran (kot je tudi Python ali JavaScript), torej se vrsta podatkov določa ob samem izvajanju programa in ne tako kot pri statičnih (denimo C, C# ali Java), kjer je tipe treba deklarirati pred prevajanjem. Jezik še najbolj spominja na Python, vsaj kar se tiče sintakse, snovanja razredov, objektov in dela s spremenljivkami, zato je znanje Pythona kar dobro izhodišče za delo z njim. Godot Engine je moč uporabljati tudi v kombinacij z ogrodjem C# in .NET, a ker samo razvojno okolje tega ne podpira neposredno, je treba za to namestiti še dodatna razvojna orodja (tj. NET SDK), delo pa postane še bolj kompleksno.

GDScript je lastni jezik okolja Godot, ki še najbolj spominja na Python.

Vmesnik Godota je bolj »natlačen« kot tisti pri Gdevelopu, kar je tudi pričakovano, saj je zasnova bistveno drugačna in bolj spominja na klasična razvojna okolja za igre, nenazadnje pa ima tako 2D- kot tudi 3D-urejevalnik scen. Vseeno pa vmesnik ni nepregleden. Zelo logična razvrstitev in drevesna struktura projektov omogočata, da razvijalec ne izgubi pregleda nad posameznimi elementi in njihovimi razmerji. Predvsem ko je teh veliko, zna biti celo bolj pregleden od Gdevelopa. Drugače pa je pri izvažanju oziroma izgradnji igre za različne platforme. Zadnje različice imajo sicer nekaj osnovnih predlog za ta namen, a tudi te temeljijo na dodatnih orodjih in razvojnih kitih (SDK) ter zahtevajo nekaj dodatnega znanja in postopkov, medtem ko tako enostavnih izvozov, kot jih ponuja Gdevelop, ne pozna.

GDevelop

odprtokodno orodje za razvoj iger

Splet: gdevelop.io

Različice: Windows, MacOS, Linux, splet; plačljiv za iOS in Android

Cena: Brezplačen (naročnina za nekatere dodatne storitve in mobilne aplikacije).

Za: Ne zahteva predznanja programiranja, hitrost, enostavno izvažanje, razširljiv, veliko vodnikov, predlog in primerov.

Proti: Izvažanje z enim klikom za mobilne naprave je plačljivo, pri zahtevnejših projektih se preglednost hitro manjša.

  

Godot Engine

odprtokodno orodje za razvoj iger

Splet: godotengine.org

Različice: Windows, MacOS, Linux, splet, Android

Cena: Brezplačen.

Za: Tudi zahtevnejši projekti ostajajo pregledni, omogoča kombiniranje C# prek .NET, podpira 3D.

Proti: Zahteva več znanja tako za programiranje kot urejanje projektov in tudi izvažanje.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji