Po 6 miesiącach opracowywania opublikowano wersję darmowego silnika gier Godot 3.4, odpowiedniego do tworzenia gier 2D i 3D. Silnik obsługuje łatwy do nauki język programowania logiki gry, graficzne środowisko do projektowania gier, system jednego kliknięcia do wdrażania gier, szerokie możliwości animacji oraz symulacji procesów fizycznych, wbudowany debugger i system wykrywania wąskich gardeł wydajności. Kod silnika gier, środowiska do projektowania gier oraz pokrewnych narzędzi deweloperskich (silnik fizyczny, serwer dźwięku, backendy renderowania 2D/3D itp.) jest udostępniany na licencji MIT.
Kod źródłowy silnika został udostępniony w 2014 roku przez studio OKAM, po dziesięciu latach rozwoju komercyjnego produktu profesjonalnego poziomu, który był wykorzystywany do tworzenia i publikowania wielu gier na PC, konsole do gier i 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 Linuxa, Windowsa i macOS.
W oddzielnej gałęzi rozwijany jest nowy backend renderowania oparty na API graficznym Vulkan, który zostanie oferowany w następnej wersji Godot 4.0, zamiast obecnych backendów renderowania przez OpenGL ES 3.0 i OpenGL 3.3 (wsparcie dla OpenGL ES i OpenGL będzie zachowane poprzez zapewnienie działania starego backendu OpenGL ES 2.0/OpenGL 2.1 na nowej architekturze renderowania opartej na Vulkanie). Przejście z Godot 3.x na Godot 4.0 będzie wymagać przerobienia aplikacji z powodu naruszenia zgodności na poziomie API, ale gałąź Godot 3.x będzie miała zapewniony długi cykl wsparcia, którego czas trwania będzie zależał od zapotrzebowania użytkowników na ściśle określone API.
Godot 3.4 wyróżnia się dodatkowymi nowościami:
- Przerobiono interfejs użytkownika do edytowania motywów, w którym wprowadzono przejrzysty proces wyboru węzła oraz umożliwiono zmianę motywu bez opuszczania trybu podglądu.

- W edytorze wprowadzono ulepszenia zwiększające komfort pracy: dodano funkcję szybkiego ładowania zasobów w trybie inspekcji, umożliwiono tworzenie węzła w dowolnej pozycji, dodano nowy interfejs eksportu szablonów, zrealizowano dodatkowe operacje z gizmo (system ograniczających prostopadłościanów) oraz ulepszono edytor animacji oparty na krzywych Béziera.

- Dodano tryb cofania zmian, który umożliwia anulowanie wszystkich zmian w scenie wywołanych zastosowaniem animacji poprzez AnimationPlayer, zamiast cofania zmian każdego właściwości z osobna.
- Do ustawień dodano opcję zmiany poziomu skalowania obszaru widoku 2D (2D viewport), którą można wykorzystać do powiększenia lub pomniejszenia elementów 2D, niezależnie od bieżącego trybu rozciągania (stretch mode).
- W File API dodano możliwość pracy z plikami (w tym z PCK), których rozmiar przekracza 2 GB.
- Wprowadzono zmiany zwiększające płynność renderowania poprzez obliczanie zmian w klatkach niezależnie od systemowego timera oraz rozwiązanie problemów z synchronizacją wyjścia przy użyciu vsync.
- W systemie przetwarzania wejścia InputEvents dodano wsparcie dla mapowania na skan kody, odzwierciedlające fizyczne rozmieszczenie klawiszy na klawiaturze, niezależnie od aktywnego układu (na przykład klawisze WASD w układzie QWERTY będą automatycznie mapowane na klawisze ZQSD w układzie francuskim AZERTY).
- Dodano interfejsy AESContext i HMACContext do dostępu z poziomu skryptów do algorytmów szyfrowania AES-ECB, AES-CBC i HMAC. Dodano także możliwość zapisywania i odczytywania kluczy publicznych RSA do generowania i weryfikacji podpisów cyfrowych.
- Do silnika renderowania dodano wstępną obsługę zatrzymywania renderowania obiektów, które znajdują się w polu widzenia kamery, ale są niewidoczne z powodu nakładania się innych obiektów (na przykład znajdujących się za ścianą). Rasteryzacja (na poziomie pojedynczych pikseli) nakładania się zostanie zrealizowana tylko w gałęzi Godot 4, natomiast w Godot 3 wprowadzono niektóre geometryczne metody przycinania nakładających się obiektów oraz wsparcie dla portalu nakładania.

- Dodano nową metodę tonowania ACES Fitted, która pozwala uzyskać większą realistyczność i fizyczną precyzję dzięki zwiększeniu kontrastu jasnych obiektów.

- Dodano wsparcie dla formy emisji trójwymiarowych cząstek w postaci pierścienia lub pustego cylindra.
- W silniku symulacji procesów fizycznych znacznie zwiększono wydajność generowania obiektów wypukłych z siatek oraz przerobiono tryb śledzenia kolizji w interfejsie inspekcji. W silniku fizyki 2D dodano wsparcie dla struktury BVH (Bounding Volume Hierarchy) w celu dynamicznego podziału przestrzeni. W silniku fizyki 3D zaimplementowano wsparcie dla funkcji HeightMapShapeSW oraz dodano środki synchronizacji z KinematicBody3D.
- Dodano możliwość eksportu scen 3D w formacie glTF, na przykład do otwierania przygotowanych w Godot siatek w Blenderze.
- Dodano wsparcie dla trybu kompresji obrazów WebP bez strat, który teraz domyślnie stosuje się do kompresji tekstur zamiast formatu PNG.
- W wersji na platformę Android dodano wstępne wsparcie dla API Scoped storage oraz nowego sposobu ładowania dodatkowych zasobów (Play Asset Delivery) dla plików wykonywalnych w formacie AAB (Android App Bundle).
- Na platformie HTML5 zrealizowano możliwość instalacji w formie aplikacji PWA (Progressive Web Apps), dodano interfejs JavaScriptObject do interakcji między Godot a JavaScript (na przykład można wywoływać metody JavaScript z skryptów Godot), dla wielowątkowych kompilacji dodano wsparcie dla AudioWorklet.
- Na platformie macOS dodano wsparcie dla systemów na chipie Apple Silicon (M1).
Źródło: opennet.ru




