Mine sisu juurde

Godot (mängumootor)

Allikas: Vikipeedia
Godot' mängumootori logo

Godot on tasuta ja avatud lähtekoodiga mängumootor, mida kasutatakse 2D- ja 3D-mängude arendamiseks. [1] 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[2] ning seda tutvustati 2014. aastal.[3]

Stseenipõhine arhitektuur

[muuda | muuda lähteteksti]

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[4]. Lisaks on võimalik tippudele lisada skripte, et laiendata antud tipu funktsionaalsust.

Godot 3.4 liides

Skriptid ja programmeerimiskeeled

[muuda | muuda lähteteksti]

Godot toetab selliseid programmeerimiskeeli nagu C++[5] , C# ja GDScript[6], mis on Godot' enda programmeerimiskeel. Kogukonna tugi on ka keeltele Rust, Nim, Haskell, Clojure, Swift ja D [7]. 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.[8]

Kuvatõmmis GDScripti faili muutmisest sisseehitatud koodiredaktoris Godot' versioonis 3.4

Godot'l on oma sisseehitatud programmeerimiskeel GDScript.[9] 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.[10]

GDScript on pidevalt arenev keel ning iga Godot' uue versiooniga on keelde tehtud muudatusi ja täiendusi. Godot 2 versioonis lisati tüübitud massiivid [11] , mis võimaldavad kasutajatel kergesti muuta tavalist massiivi tüübitud massiiviks ja vastupidi ilma, et oleks vaja palju koodi muuta [9]. 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.[12] 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.[13][14]

2D- ja 3D-mängude arendamine

[muuda | muuda lähteteksti]

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.

Kinnise lähtekoodi ajastu (2001–2014)

[muuda | muuda lähteteksti]

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.[15][16][17][18] 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.[19] 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)

[muuda | muuda lähteteksti]

2014. aastal plaanis Linietsky Argentinast ära kolida ja avaldas Godot' lähtekoodi GitHubis MIT litsentsi all.[20] 2015. aastal liitus Godot Software Freedom Conservancyga (SFC). [21] 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. [22]

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. [23] 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. [24] 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 [25][26]. Godot sai samal ja ka järgmisel aastal toetusi ka Meta Platformsi Reality Labilt. [27][28][29] 2022 aasta alguses ilmus Godot 4.0 haru alfaversioon [30]. 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 [31][32]. Novembris teatas Godot kavatsusest minna üle SFC-lt oma loodud Godot Foundationile [33][34][35][36].

2023. aastal avaldati Godot 4.0 versioon. Samal aastal ilmus Godot' mängumootor ka Epic Gamesi ja Steami virtuaalsesse poodidesse. [37] Kuigi muidu on Steami ja Epic Gamesi versioon tavaversiooniga identne, siis veebipoe versioonidel puudub .Net/C# tugi [38]. 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 [39].

Godot' relevantsus

[muuda | muuda lähteteksti]

Godot on üha populaarsem valik indie-mänguarendajatele. Ka Eestis on tehtud mitmeid mänge Godot' mängumootoriga. Populaarsemad neist on Blastronauts [1][40] ja Buckshot Roulette. [41]

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[42] jm.

  1. 1,0 1,1 Ilves, Viljam. Biome Hazard Creation for Blastronaut Game. Bakalaureusetöö. Tartu Ülikool, 2024.
  2. "Historia de Godot". Headsem. 15 September 2017. Available at: https://www.headsem.com/godot-engine-el-motor-de-videojuegos-open-source-mas-completo/
  3. Linietsky, Juan (4 March 2016). "Godot 2.0: Talking with the Creator". 80.lv. Retrieved 18 June 2016. Available at: http://80.lv/articles/godot2-interview/
  4. "The 5 Best Game Engines for Beginners in Video Game Development". MUO. 5 February 2022. Retrieved 19 May Available at: 2023.https://www.makeuseof.com/best-free-game-engine-for-beginners/
  5. "Godot with C++". 7 July 2020. Retrieved 17 June 2021. Available at: https://gamefromscratch.com/godot-with-c/
  6. Hill, Paul (19 May 2023). "Godot Engine arrives on Epic Games Store making it easier to download". Neowin. Retrieved 19 May 2023. Available at: https://www.neowin.net/news/godot-engine-arrives-on-epic-games-store-making-it-easier-to-download/
  7. "Godot languages support". GitHub. Retrieved 17 June 2021. Available at: https://github.com/Vivraan/godot-lang-support
  8. "Godot 4.0 will discontinue VisualScript". Godot Engine. Retrieved 8 September 2022. Available at: https://godotengine.org/article/godot-4-will-discontinue-visual-scripting
  9. 9,0 9,1 "GDScript basics: History". Getting started. Godot Docs. Retrieved 20 July 2019. Available at: https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/index.html
  10. "What were the motivations behind creating GDScript?". Godot Engine 4.3 documentation. Retrieved 14 January 2025. Available at: https://docs.godotengine.org/en/stable/about/faq.html#doc-faq-what-is-gdscript
  11. "TypedArrays". Retrieved 4 June 2021. Available at: https://godotengine.org/article/gdscript-progress-report-feature-complete-40
  12. "TypedDictionaries". Retrieved 7 October 2024. Available at: https://godotengine.org/article/dev-snapshot-godot-4-4-dev-2/
  13. "Optimizations for GDScript VM". GitHub. 2 January 2023. Retrieved 7 October 2024. Available at: https://github.com/godotengine/godot/pull/70838
  14. "Yes, your Godot game runs faster with static types". 14 February 2024. Retrieved 7 October 2024. Available at: https://www.beep.blog/2024-02-14-gdscript-typing/
  15. "Codenix | Game Development & Technology Consulting". Codenix. 25 June 2014. Archived from the original on 25 June 2014. Retrieved 31 July 2023. Available at: https://web.archive.org/web/20140625091420/http://www.codenix.com/
  16. Linietsky, Juan [@reduzio] (20 May 2018). "Codenix was the company Ariel Manzur and I created. Engines such as Unity were not mainstream, so we licensed Godot to third party companies in Argentina" (Tweet). Retrieved 31 July 2023 – via Twitter. Available at: https://x.com/reduzio/status/998185981101658113
  17. Wolf, Mark J. P., ed. (2015). Video Games Around the World. Cambridge, Massachusetts; London, England: The MIT Press. doi:10.7551/mitpress/9780262527163.001.0001. ISBN 9780262328487. Retrieved 10 September 2023. Available at: https://direct.mit.edu/books/book/3088/Video-Games-Around-the-World
  18. reduz. "Godot history in images!". Retrieved 18 June 2016. Available at: http://godotengine.org/article/godot-history-images
  19. "Juan Linietsky presentation of Godot at RMLL 2015 in Beauvais, France". 7 July 2015. 46 minutes in. Available at: http://video.rmll.info/videos/introduction-au-moteur-godot/
  20. "The MIT License”. Open source initiative. Retrieved 14 January 2025. Available at: https://opensource.org/license/mit
  21. liamdawe (14 February 2014). "Godot Game Engine Is Now Open Source". Available at: https://www.gamingonlinux.com/2014/02/godot-game-engine-is-now-open-source/
  22. "Godot Game Engine is Conservancy's Newest Member Project". Retrieved 13 November 2015. Available at: https://sfconservancy.org/news/2015/nov/04/godot-joins/
  23. "Mozilla Awards $385,000 to Open Source Projects as part of MOSS "Mission Partners" Program". The Mozilla Blog. Retrieved 17 October 2016. Available at: https://blog.mozilla.org/blog/2016/06/22/mozilla-awards-385000-to-open-source-projects-as-part-of-moss-mission-partners-program/
  24. "Godot Engine - Introducing C# in Godot". Godot Engine. Retrieved 7 March 2020. Available at: https://godotengine.org/article/introducing-csharp-godot
  25. "2022: A Retrospective". Godot Engine. Available at: https://godotengine.org/article/2022-retrospective/
  26. Crecente, Brian (18 March 2023). "Godot Engine now available on Epic Games Store". Epic Games Store. Retrieved 9 September 2023 Available at: https://store.epicgames.com/en-US/news/godot-engine-now-available-on-epic-games-store
  27. Linietsky, Juan (8 June 2020). "Godot Engine - Donation changes". Godot Engine. Retrieved 25 September 2020. Available at: https://godotengine.org/article/donation-changes
  28. "Godot Engine - Godot Engine receiving support funded by Facebook Reality Labs". Godot Engine. 11 December 2020. Available at: https://godotengine.org/article/godot-engine-receiving-support-funded-facebook-reality-labs
  29. "Godot Engine - Godot Engine receiving a new grant from Meta's Reality Labs". Godot Engine. 22 December 2021. Available at: https://godotengine.org/article/godot-engine-receiving-new-grant-meta-reality-labs
  30. "Godot Engine received a fresh grant from Facebook / Meta for XR work". GamingOnLinux. 22 December 2021. Retrieved 15 July 2022. Available at: https://godotengine.org/article/godot-engine-receiving-new-grant-meta-reality-labs
  31. Dawe, Liam (9 August 2022). "W4 Games formed to help developers using Godot Engine". GamingOnLinux. Retrieved 8 September 2023. Available at: https://www.gamingonlinux.com/2022/08/w4-games-formed-to-help-developers-using-godot-engine/
  32. Sawers, Paul (19 August 2022). "How W4 plans to monetize the Godot game engine using Red Hat's open source playbook". Techcrunch.com. Retrieved 7 September 2023. Put simply, Godot can't be a community-driven open source project and support consoles at the same time. But there are ways around this, which is why W4 hopes to make money by offering a porting service to help developers convert their existing games into a console-compatible format. Available at: https://techcrunch.com/2022/08/19/how-w4-plans-to-commercialize-the-godot-game-engine-by-following-red-hats-playbook/
  33. "Announcing Godot's Graduation from SFC!". Software Freedom Conservancy. 1 November 2022. Available at: https://sfconservancy.org/news/2022/nov/01/godot-graduates/
  34. "Godot's Graduation: Godot moves to a new Foundation". Godot Engine. 1 November 2022. Available at: https://godotengine.org/article/godots-graduation-godot-moves-to-a-new-foundation
  35. Dawe, Liam (2 November 2022). "Godot Engine now has its own dedicated Foundation for funding". Retrieved 9 September 2023. Available at: https://www.gamingonlinux.com/2022/11/godot-engine-now-has-its-own-dedicated-foundation-for-funding/
  36. Larabel, Michael. "The Godot Game Engine Now Has Its Own Foundation". Retrieved 9 September 2023. Available at: https://www.phoronix.com/news/Godot-Foundation
  37. "Godot Arrives in the Epic Games Store". Godot Engine. 17 March 2023. Available at: https://godotengine.org/article/godot-arrives-in-the-epic-games-store/
  38. "Download Godot". Godot Engine. 14 January 2025. Available at: https://godotengine.org/download/linux/#:~:text=Digital%20store%20versions%20do%20not%20include%20.NET/C%23%20support.
  39. "Terraria developer Re-Logic is giving $100,000 to two open-source game engines amid Unity debacle". Engadget. 20 September 2023. Available at: https://www.engadget.com/terraria-developer-re-logic-is-giving-100000-to-two-open-source-game-engines-amid-unity-debacle-054307544.html
  40. Lepik, Marek. Sihtleht mängule Blastronaut. Bakalaureusetöö. Tartu Ülikool, 2024.
  41. Levine, Gloria (30 May 2024). "Buckshot Roulette Developer on Making Games Solo, Feedback & Success". 80 Level. Archived from the original on 13 December 2024. Retrieved 7 December 2024. Available at: https://80.lv/articles/buckshot-roulette-developer-on-making-the-game-solo-feedback-success/
  42. Männil, Markus. Lainefunktsiooni kokkulangemise algoritmi laiendus mängumootorile Godot. Bakalaureusetöö. Tartu Ülikool, 2024.