Godot (mängumootor)

**Godot** on tasuta ja avatud lähtekoodiga mängumootor, mida kasutatakse 2D- ja 3D-mängude arendamiseks.  Godot's on visuaalne arenduskeskkond, kus saab mängu objekte väikese vaevaga muuta. Mängumootor võimaldab arendajatel luua mänge paljudele platvormidele, sealhulgas Windows, macOS, Linux, Android, iOS ja veebibrauserid. Godot' arendamist alustas Juan Linietsky koos Ariel Manzuriga ning seda tutvustati 2014. aastal.

## Omadused
### Stseenipõhine arhitektuur
Godot kasutab stseenipõhist arhitektuuri, kus iga projekt koosneb stseenidest. Stseenide eeliseks on nende omadus olla kergesti taaskasutatav. Stseenid koosnevad tippudest. Igal tipul on oma kindel tüüp ja funktsioon. Kokku moodustab stseen tippudest hierarhilise struktuuri. Lisaks on võimalik tippudele lisada skripte, et laiendata antud tipu funktsionaalsust. 

### Skriptid ja programmeerimiskeeled
Godot toetab selliseid programmeerimiskeeli nagu C++
, C# ja GDScript, mis on Godot' enda programmeerimiskeel. Kogukonna tugi on ka keeltele Rust, Nim, Haskell, Clojure, Swift ja D . Algselt oli ka visuaalne programmeerimine toetatud Godot' sisseehitatud keelega VisualScript, kuid selle toetamine lõpetati Godot' versiooniga 4.0 ja nüüd on võimalik visuaalselt programmeerida ainult läbi avatud lähtekoodiga kolmanda osapoole keele Orchestrator. 

### GDScript

Godot'l on oma sisseehitatud programmeerimiskeel GDScript. GDScript on kõrgetasemeline programmeerimiskeel, mille süntaks sarnaneb Pythoni omaga. Erinevalt Pythonist on GDScript optimeeritud Godot' stseenipõhise arhitektuuri jaoks ning võimaldab määrata muutujatele rangeid tüüpe. Godot' arendajad väidavad, et enne GDScripti loomist testiti paljusid kolmanda osapoole programmeerimiskeeli nagu Lua, Python ja Squirrel, kuid jõuti järeldusele, et mängumootori jaoks kohandatud ja optimeeritud keel annab parema tulemuse.

GDScript on pidevalt arenev keel ning iga Godot' uue versiooniga on keelde tehtud muudatusi ja täiendusi. Godot 2 versioonis lisati tüübitud massiivid  , mis võimaldavad kasutajatel kergesti muuta tavalist massiivi tüübitud massiiviks ja vastupidi ilma, et oleks vaja palju koodi muuta . Hilisemas 4.0 versiooni uuenduses lisati ka tüübitud sõnastikud, mis võimaldavad kasutajatel deklareerida tüübitud võtmeväärtuse paarid, suurendades veelgi skriptide tüübi turvalisust. Staatilised tüübid võimaldavad C++ back-endil optimeerimisi täide viia, mis tähendavad oluliselt suurenenud jõudlust; on täheldatud, et staatiliselt tüübitav GDScript töötab üle 40% kiiremini.

### 2D- ja 3D-mängude arendamine
Godot'l on eraldi 2D- ja 3D-mängumootorid. 2D-mängude arendamisel kasutatav 2D-mängumootor saab töötada iseseisvalt, ilma toetumata 3D-mängumootorile. Mõlemad mängumootorid saavad ka samaaegselt töötada, et luua mängudes kompleksseid segusid 2D-st ja 3D-st. Põhjus 2D mängumootori plussideks on 3D-mootoritele omaste keerukuste vältimine, mille tulemuseks on parem jõudlus. 3D-mängude arendamisel kasutab Godot graafika tehnoloogiad nagu OpenGL ES ja Vulkan.

## Ajalugu
### Kinnise lähtekoodi ajastu (2001–2014)
1999. aastal asutasid Juan Linietsky ja Ariel Manzur mänguarenduse konsultatsioonifirma CodeNix. 2001. aastal alustasid asutajad tööd mängumootori kallal, mis sellel ajal kandis koondnime ”Larvotor”, mis oli litsentsitud Argentina kolmanda osapoole ettevõtetele. Järgmise kümne aasta jooksul jõudis mängumootor kanda palju nimesid: Legacy, NG3D, Larvita ja lõpuks Godot. Nimi Godot viitab Samuel Becketti näidendile “Godot'd oodates”. Nimi tähistab lõpmatut soovi lisada mängumootorisse uusi funktsioone, et lihvida toode kõikehõlmavalt täiuslikuks, ehkki tegelikult ei saa toode kunagi kõikehõlmavaks. Kinnise lähtekoodi ajastul töötati ka paljude muude mängustuudiotega, seal juures ka Square Enixiga.

### Tasuta ja avatud lähtekoodi ajastu (2014 – tänapäev)
2014. aastal plaanis Linietsky Argentinast ära kolida ja avaldas Godot' lähtekoodi GitHubis MIT litsentsi all. 2015. aastal liitus Godot Software Freedom Conservancyga (SFC).  2016. aastal sai Godot 20 000 USA dollari suuruse Mozilla avatud lähtekoodi ”Mission Partners” auhinna, mida kasutati Godot'le WebSockets, WebAssembly ja Web GL 2.0 toe lisamiseks.  

Godot 3.0 värskendus hõlmas paljude kasutajate soovitud funktsioonide lisamist, mis nõudsid suurt mängumootori ümbertegemist. See oli kinnise lähtekoodiga ajastul äriliste piirangute tõttu võimatu. 2017. aastal sai Godot Microsoftilt 24 000 dollari suuruse annetuse, et rakendada Godot's C# skriptimiskeelena.  Pärast seda avati Patreon, mis võimaldas Linietskyl ja Verscheldel täiskohaga projekti kallal töötada elatudes inimeste annetustest. 2018. aastal anti välja Godot 3.0 versioon. 

2019. aastal moodustati kaks meeskonda. Linietsky meeskond keskendus Vulkani harule (hiljem avaldati haru Godot 4.0 versioonina) ja Verschelde meeskond keskendus 3.x versioonide edasiste uuendustega. Linietsky sõnul oli probleemiks see, et 3.x haru ehitati üles vanemate arhitektuuri põhimõtetel, näiteks ühetuumalised protsessorid. 4.0 versiooni mõte oli põhiarhitektuur ümber töötada kasutades kaasaegseid võtteid ja arhitektuuri.  2020. aastal sai Godot 250 000 dollari suuruse Epic Gamesi auhinna, mida kasutati kahe aasta jooksul Linietskyle ja George Marquesile palga maksmiseks, vabastades see läbi annetusraha muudeks otstarveteks . Godot sai samal ja ka järgmisel aastal toetusi ka Meta Platformsi Reality Labilt.  
2022 aasta alguses ilmus Godot 4.0 haru alfaversioon . Sama aasta augustis asutasid Linietsky ja mitmed teised Godot' meeskonna liikmed W4 Gamesi, et pakkuda mootoril põhinevaid kommertsteenuseid, sealhulgas konsooli porte, mida ei saa avatud lähtekoodiga koodibaasi lisada . Novembris teatas Godot kavatsusest minna üle SFC-lt oma loodud Godot Foundationile .

2023. aastal avaldati Godot 4.0 versioon. Samal aastal ilmus Godot' mängumootor ka Epic Gamesi ja Steami virtuaalsesse poodidesse.  Kuigi muidu on Steami ja Epic Gamesi versioon tavaversiooniga identne, siis veebipoe versioonidel puudub .Net/C# tugi . Sama aasta septembris teatas Unity Technologies enda mängumootori litsentsi muudatustest, "käitusaja tasude" lisamisest, mis võtavad kasutajatelt Unity mängude installimise eest tasu. Selle tulemusena annetas Re-Logic Godot'le 100 000 dollarit ja teatas, et toetab edaspidi Godot' 1000-dollariste annetustega igakuiselt, et toetada avatud lähtekoodiga mängumootorite arendust . 

## Godot' relevantsus
Godot on üha populaarsem valik indie-mänguarendajatele. Ka Eestis on tehtud mitmeid mänge Godot' mängumootoriga. Populaarsemad neist on Blastronauts  ja Buckshot Roulette.  

## Kogukond
Godot'l on aktiivne kogukond, kes panustab mängumootori arendamisse ning jagab teadmisi ja ressursse. Lisaks ametlikule dokumentatsioonile ja õppematerjalidele on olemas foorumid, Discordi serverid ja mitmesugused õppevideod YouTube'is. Kogukond pakub olulist tuge, aidates uutel kasutajatel mängumootoriga kiiresti tuttavaks saada. Kogukond tegeleb ka mängumootorile laienduste tegemisega nagu Lainefunktsiooni kokkulangemise laiendus jm.

## Viited