Godot (silnik gry)

Z Wikipedii, wolnej encyklopedii
Godot
Logo Godot
Logo programu
ilustracja
Autor Juan Linietsky, Ariel Manzur i społeczność
Pierwsze wydanie 14 stycznia 2014; ponad 10 lat temu
Aktualna wersja stabilna 4.2.1
(12 grudnia 2023) [±]
Aktualna wersja testowa 4.2 beta 6
(13 listopada 2023) [±]
Język programowania GDScript, C#, C++, Visual Script
System operacyjny Tworzenie gier:

Microsoft Windows
OS X
Linux
FreeBSD
OpenBSD
Haiku
Uruchamianie gier:
Microsoft Windows
OS X
Linux
BSD
Haiku
iOS
Android
BlackBerry 10
HTML5
PlayStation 3
PlayStation Vita

Rodzaj Silnik gry
Licencja Licencja MIT
Strona internetowa

Godot – silnik na licencji MIT do tworzenia gier dwuwymiarowych i trójwymiarowych, opracowywany przez społeczność Godot Engine i używany przez firmy w Ameryce Łacińskiej, zanim został otwarty i udostępniony publicznie[1]. Środowisko programistyczne działa na systemach Windows, OS X, Linux, BSD i Haiku (zarówno 32-, jak i 64-bitowych) i może tworzyć gry kierowane na platformy PC, konsole, platformy mobilne i internetowe[2].

Główny deweloper Juan Linietsky stwierdził w swoim wystąpieniu, że nazwa Godot związana jest z utworem „Czekając na GodotaSamuela Becketta, ponieważ stanowi niekończące się pragnienie dodania nowych elementów w silniku, które mogłyby przybliżyć do wyczerpującego produktu, ale tak się nie staje[3].

Historia[edytuj | edytuj kod]

Rozwój silnika Godot rozpoczął Juan ‘Reduz’ Linietsky i Ariel ‘Punto’ Manzur w 2007 roku[4]. W lutym 2014 r. Kod źródłowy silnika Godot został udostępniony publicznie na GitHub na licencji MIT.

W dniu 15 grudnia 2014 r. Godot osiągnął wersję 1.0, oznaczając pierwsze stabilne wydanie i dodanie mapowania światła, wsparcia navmesh i większej liczby shaderów.

W dniu 21 maja 2015 r. wydano wersję 1.1 dodając znacznie ulepszone automatyczne ukończenie w edytorze kodu, wizualnym edytorze cieniowania, nowym interfejsie API systemu operacyjnego do zarządzania ekranami i oknem, obsługą wielu monitorów, przepisanym od nowa silnikiem 2D, nowe wsparcie nawigacji wielokątów w 2D. Nowy silnik 2D zawiera światła, cienie z okluzjami wielobocznymi, normalne odwzorowanie, kompilowanie buforów z tyłu, ulepszone wsparcie mapowania izometrycznego i obsługa czcionek.

W dniu 4 listopada 2015 r. Godot przystąpił do organizacji Software Freedom Conservancy[5].

W dniu 22 czerwca 2016 r. Godot otrzymał nagrodę „Mission Partners” dotyczącą wsparcia dla otwartych źródeł (MOSS) w wysokości 20 000 USD, którą można wykorzystać do dodawania usług Web Sockets, WebAssembly i WebGL 2.0.[6]

W dniu 29 stycznia 2018 r. została udostępniona wersja 3.0 wprowadzająca wiele zmian m.in. obsługę C#, silnik fizyki Bullet, nowe efekty post-procesowe, przepisany silnik audio oraz systemu cząsteczek, ulepszono GDScript, możliwość tłumaczenia dokumentacji i wiele innych.

Wersja 3.1 przywróciła wsparcie Godota dla OpenGL ES 2.0, dodała możliwość określania typów dla GDScript, nowy edytor animacji i wsparcie dla odwrotnej kinematyki.

29 stycznia 2020 wypuszczono wersję 3.2.[7] Uzupełniono w niej dokumentację, dodano wsparcie dla standardu WebRTC, plików FBX, atlasów, języka C# na Androidzie i w przeglądarce. Ulepszono także edytor i załatano istniejące bugi.

Charakterystyka[edytuj | edytuj kod]

Godot oferuje w pełni zintegrowane środowiska programistyczne. Pozwala programistom tworzyć grę od podstaw, nie potrzebując innych narzędzi poza tymi, które służą do tworzenia treści (zasobów graficznych, muzyki itp.). Architektura gry jest zbudowana wokół koncepcji drzewa zagnieżdżonych „scen”. Wszystkie zasoby gier od skryptów do zasobów graficznych są zapisywane na dysku jako część systemu plików komputera (a nie na przykład w bazie danych). To rozwiązanie pamięci masowej ma ułatwić zespołom ds. rozwoju gier współpracę przy użyciu kodu skryptowego.

Skrypty[edytuj | edytuj kod]

Gry oparte na silniku Godot mogą być tworzone w C++, C# lub przy użyciu własnego języka skryptowego o nazwie GDScript, który jest językiem programowania wysokiego poziomu bardzo podobnego do Pythona. W przeciwieństwie do Pythona, GDScript oferuje ścisłe wpisywanie zmiennych i jest zoptymalizowane do architektury „scen” w Godot. Istnieje również język programowania visual script[8], opracowany do pracy z edytorem. Język ten zostanie porzucony w wersji 4.0[9]. Deweloperzy silnika stwierdzili, że wiele alternatywnych języków skryptowych innych firm (mianowicie Lua, Python i Squirrel) zostało przetestowane przed podjęciem decyzji, że użycie języka niestandardowego pozwala na lepszą optymalizację i integrację edytora[10].

Godot posiada wbudowany edytor skryptów z wcięciem automatycznym, podświetlaniem składni i zakańczaniem kodu. Posiada również debugger z możliwością ustawiania punktów przerwania i programowania.

Godot posiada również wbudowany silnik fizyczny zarówno dla aspektów 2D, jak i 3D silnika, wspomagający wykrywanie kolizji, postacie, pojazdy, ciała stałe, ciała statyczne, raycasts i jointy.

Rendering[edytuj | edytuj kod]

Silnik graficzny używa OpenGL ES 3.0 dla wszystkich obsługiwanych platform. Silnik obsługuje przezroczystość, normalne odwzorowanie, spekularność, dynamiczne cienie przy użyciu map cieni oraz pełnoekranowych efektów post processingu, takich jak FXAA, bloom, DOF, HDR, korekcje gammy i mgłę.

Godot korzysta z uproszczonego języka modułu cieniującego podobnego do bliskiego podzbioru GLSL. Shadery mogą być używane do materiałów i obróbki końcowej, jak również do renderowania 2D. Shadery dzielą się w sekcjach wierzchołków i fragmentów. Istnieje również możliwość tworzenia shaderów poprzez manipulowanie węzłami w edytorze wizualnym.

Godot posiada silnik grafiki 2D, który może działać niezależnie od 3D. Przykłady funkcji silnika 2D obejmują światła, cienie, GUI, sprites, przewijanie paralaksy, wielokąty, animacje, fizykę i cząstki. Możliwe jest również mieszanie 2D z 3D lub 3D z 2D za pomocą tak zwanego węzła widoku.

Godot zawiera wbudowany system animacji z GUI do edycji animacji szkieletowych, mieszania drzewek animacyjnych, morfowania i scenariuszy w czasie rzeczywistym. Ze względu na projekt oparty na węzłach niemal każda zmienna zdefiniowana lub stworzona na grę może być animowana.

Platformy[edytuj | edytuj kod]

Godot wspiera tworzenie na wiele platform. W ramach projektu deweloperzy mają kontrolę nad dostawą do telefonów komórkowych, sieci, komputerów stacjonarnych i konsol. Godot umożliwia również określenie kompresji i rozdzielczości tekstur dla każdej platformy, którą obsługuje gra.

Lista gier[edytuj | edytuj kod]

Wiele gier firmy OKAM Studio’s Games[11] zostało stworzone za pomocą Godot.

  • El Asombroso Show Zamba
  • Dog Mendonça & Pizza Boy
  • Anthill
  • Running Nose
  • Project Carnival

Także wiele otwartoźródłowych gier zostało stworzone przez społeczność.

  • DynaDungeons
  • Minilens
  • Tanks of Freedom
  • Pixel Zone. masterpolska123.github.io. [zarchiwizowane z tego adresu (2019-07-26)].

Przypisy[edytuj | edytuj kod]

  1. Godot 2.0: Talking with the Creator. (ang.).
  2. File Systems. [dostęp 2017-05-12]. [zarchiwizowane z tego adresu (2016-02-06)]. (ang.).
  3. Juan Linietsky presentation of Godot at RMLL 2015 in Beauvais, France. [dostęp 2017-05-12]. [zarchiwizowane z tego adresu (2015-10-05)]. (ang.).
  4. Godot history in images!. (ang.).
  5. Godot Game Engine is Conservancy’s Newest Member Project. (ang.).
  6. Mozilla Awards $385,000 to Open Source Projects as part of MOSS „Mission Partners” Program. (ang.).
  7. Godot Engine, Godot Engine – Here comes Godot 3.2, with quality as priority [online], godotengine.org [dostęp 2020-01-31] (ang.).
  8. Wprowadzenie do Visual Scripting – Godot Engine latest – dokumentacja [online], docs.godotengine.org [dostęp 2020-04-15].
  9. Godot 4.0 will discontinue VisualScript [online], godotengine.org [dostęp 2022-08-31].
  10. GDScript History. [dostęp 2017-05-12]. [zarchiwizowane z tego adresu (2016-02-06)]. (ang.).
  11. OKAM Studio’s Games. [dostęp 2017-05-12]. [zarchiwizowane z tego adresu (2019-02-20)].