Po ośmiu miesiącach rozwoju opublikowano wersję wolnego silnika gier Godot 4.3, odpowiedniego do tworzenia gier 2D i 3D. Silnik obsługuje prosty do nauki język do definiowania logiki gry, graficzne środowisko do projektowania gier, system jednego kliknięcia do wdrażania gier, szerokie możliwości animacji i symulacji procesów fizycznych, wbudowany debugger oraz system identyfikacji wąskich gardeł w wydajności. Kod silnika gier, środowiska projektowania gier oraz związanych z nim narzędzi deweloperskich (silnik fizyczny, serwer dźwiękowy, backendy renderowania 2D/3D itd.) jest rozpowszechniany na zasadach licencji MIT.
Źródła silnika zostały otwarte w 2014 roku przez studio OKAM, po dziesięciu latach rozwoju produktu komercyjnego profesjonalnego poziomu, który był wykorzystywany do tworzenia i publikacji wielu gier na PC, konsole oraz urządzenia mobilne. Silnik obsługuje wszystkie popularne platformy stacjonarne i mobilne (Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX), a także rozwój gier dla Web. Gotowe do uruchomienia binarne wersje zostały przygotowane dla Linux, Android, Windows oraz macOS.
Główne zmiany:
- Dodano eksperymentalne wbudowane wsparcie dla protokołu Wayland na systemach Linux i BSD.
- Dodano nowe zasoby AudioStreamInteractive, AudioStreamPlaylist i AudioStreamSynchronized, które umożliwiają tworzenie dynamicznego podkładu muzycznego, zmieniającego się w zależności od kontekstu w grze.
- Dodano możliwość interpolacji przy symulacji procesów fizycznych w przestrzeni dwuwymiarowej, co tworzy dodatkowe klatki do renderowania stanów pośrednich między obecnym a następnym położeniem obiektu, co sprawia, że wyświetlanie jest bardziej płynne na ekranach o wysokiej częstotliwości odświeżania oraz na mniej wydajnych urządzeniach.
- Całkowicie przebudowano wizualny edytor shaderów, który teraz lepiej przystosowuje się do pracy z dużymi i skomplikowanymi grafami shaderów. Aby poprawić percepcję informacji, węzły są teraz kolorowane w zależności od kategorii, a do połączeń węzłów używane są bardziej wyraźne kolory. Dodano dwa nowe typy węzłów — «reroute» i «frame» dla ułatwienia przenoszenia i wizualnego wyróżnienia węzłów.
- Zwiększono elastyczność pracy z warstwami. Dodano nowy węzeł TileMapLayer w celu uproszczenia dodawania warstw. Wcześniej utworzone węzły TileMap mogą być konwertowane w węzły TileMapLayer jednym kliknięciem w edytorze.
- Przywrócono wsparcie dla eksportu aplikacji sieciowych działających w trybie jednowątkowym. Aplikacje jednowątkowe są lepiej kompatybilne z przeglądarkami i nie wymagają skomplikowanego wsparcia serwerowego.
- Przeprowadzono optymalizację wydajności w trybie wielowątkowym. Wprowadzono zmiany zmniejszające prawdopodobieństwo wystąpienia blokad wzajemnych. Zwiększona niezawodność wielowątkowego ładowania zasobów.
- Do narzędzi do tworzenia animacji szkieletowej dodano nowy węzeł SkeletonModifier3D, który ułatwia organizację ruchu stawów za pomocą skryptów. Dodano nowe opcje importu animacji szkieletowej w formacie fbx. W interfejsie zarządzania animacją dodano wsparcie dla zaznaczania, kopiowania, wklejania i duplikowania kluczowych klatek.
- Dodano możliwość automatycznego dzielenia siatek nawigacyjnych na części, co ułatwia pracę z projektami zawierającymi duże światy gier, a także zmniejsza zużycie pamięci i zwiększa wydajność. Podział można dostosować za pomocą definicji granic i rozmiarów przy użyciu nowych właściwości w zasobach NavigationPolygon (2D) i NavigationMesh (3D).
- Edytor zyskał wbudowaną obsługę importu plików w formacie fbx, co eliminuje potrzebę korzystania z zewnętrznego konwertera. Umożliwiono przeniesienie panelu dostępu do systemu plików na dolną część ekranu, co pozwala na zwiększenie dostępnej przestrzeni do przeglądania plików.
- Przebudowano interfejs menedżera projektów, w którym udostępniono bezpośredni dostęp do ustawień edytora, takich jak język, motyw, poziom powiększenia i tryb sieciowy. Dodano komponent do sprawdzania dostępności aktualizacji.

- Dodano nowy węzeł Parallax2D, który ułatwia tworzenie iluzji głębi w grach 2D poprzez ruch elementów tła z różnymi prędkościami.
- Do systemu renderowania dodano wstępną obsługę mieszania kanałów alfa w 3D-Shaderach, co pozwala na tworzenie bardziej realistycznych języków ognia i fajerwerków. Dodano API do zarządzania efektami na etapie kompozycji, co umożliwia podłączenie własnego kodu do zmiany logiki renderowania (na przykład można użyć do stworzenia efektu rozmycia podczas ruchu). Rozszerzono możliwości generowania mgły, pozwalając określić, gdzie mgła się zaczyna i kiedy staje się całkowicie nieprzezroczysta. Znacząco poprawiono backend renderowania „Compatibility”.
- Zmodernizowano architekturę obiektu RenderingDevice i dodano wsparcie dla skierowanego acyklicznego grafu renderowania, co pozwala na optymalizację przesyłania poleceń do API graficznego, co wykazuje wzrost liczby klatek na sekundę o 5-15% bez wprowadzania zmian w scenie 3D.
- Dodano nowy sterownik renderowania korzystający z Direct3D 12.
- W GDScript dodano możliwość redukcji wielkości kodu przy eksporcie dzięki jego czyszczeniu, pakowaniu i obfuskacji. Dodano nowy operator „is not” (na przykład „if my_node is not Node3D:”). Rozszerzono możliwości autouzupełniania kodu w edytorze.
- Rozszerzono możliwości tworzenia gier dla headsetów VR, korzystając z OpenXR i WebXR. Dodano wsparcie dla symulatora Meta XR Simulator.

- W grach internetowych poprawiono jakość dźwięku i dodano możliwość wyświetlania zrzutu ekranu.
Źródło: opennet.ru


