NA PROŚBĘ PRACOWNIKÓW! Wzięto z openneta.
Po 10 miesiącach prac rozwojowych opublikowano wydanie wolnego silnika gier Godot 3.2, odpowiedniego do tworzenia gier 2D i 3D. Silnik wspiera łatwy do nauki język skryptowania logiki gier, graficzne środowisko do projektowania gier, system jednoklikowego wdrażania gier, rozbudowane możliwości animacji oraz symulacji procesów fizycznych, wbudowany debugger oraz system identyfikacji wąskich gardeł w wydajności. Kod silnika gier, środowiska projektowania gier i pokrewnych narzędzi deweloperskich (silnik fizyczny, serwer dźwięku, backendy renderowania 2D/3D itd.) jest udostępniany na licencji MIT.
Kod źródłowy silnika został ujawniony w 2014 roku przez studio OKAM, po dziesięciu latach rozwoju produktów komercyjnych klasy profesjonalnej, które były wykorzystywane do tworzenia i publikowania 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 utworzone dla Linux, Windows i macOS.
W oddzielnej gałęzi rozwijany jest nowy backend renderowania oparty na API graficznym Vulkan, który zostanie zaprezentowany w następnej wersji Godot 4.0, zamiast aktualnie oferowanych backendów renderowania przez OpenGL ES 3.0 i OpenGL 3.3 (wsparcie dla OpenGL ES i OpenGL będzie zachowane przez zapewnienie funkcjonalności starego backendu OpenGL ES 2.0/OpenGL 2.1 na nowej architekturze renderowania opartej na Vulkanie). Przejście z Godot 3.2 na Godot 4.0 będzie wymagało przerobienia aplikacji z powodu naruszenia kompatybilności na poziomie API, ale dla gałęzi Godot 3.2 zapewniony zostanie długi cykl wsparcia, którego długość będzie zależała od popytu ze strony użytkowników. W międzyczasie w wersjach 3.2.x również nie wyklucza się portowania nowinek, które nie wpłyną na stabilność, z gałęzi 4.x, takich jak wsparcie dla kompilacji AOT, ARCore, DTLS oraz platformy iOS dla projektów w C#.
Główne nowości Godot 3.2:
- Dodano wsparcie dla hełmów wirtualnej rzeczywistości Oculus Quest, zrealizowane na bazie wtyczki dla platformy Android. Dodano wsparcie dla frameworka ARKit do rozwoju systemów rozszerzonej rzeczywistości dla iOS. Dla Androida rozwijane jest wsparcie dla frameworka ARCore, ale na razie nie jest gotowe i zostanie uwzględnione w jednym z pośrednich wydań 3.3.x;
- Zmieniono interfejs wizualnego edytora shaderów. Dodano nowe węzły do tworzenia bardziej zaawansowanych shaderów. Dla shaderów realizowanych za pomocą klasycznych skryptów dodano wsparcie dla stałych, tablic i modyfikatorów „varying”. Wiele shaderów specyficznych dla backendu OpenGL ES 3.0 zostało przeniesionych do OpenGL ES 2.
- Wsparcie dla fizycznie poprawnego renderowania materiałów (PBR) została zsynchronizowana z możliwościami nowych silników PBR-renderingu, takich jak Blender Eevee i Substance Designer, aby zapewnić podobne przedstawienie sceny w Godot i wykorzystywanych pakietach 3D-modelowania.
- Przeprowadzono optymalizację różnych ustawień renderowania w celu zwiększenia wydajności i poprawy jakości obrazu. W backendzie GLES3 przeniesiono wiele możliwości z GLES3, w tym wsparcie dla metody wygładzania MSAA (Multisample anti-aliasing) oraz różne efekty postprocessingu (bloom, rozmycie DOF i BCS);
- Dodano pełne wsparcie dla importu scen 3D i modeli w formacie glTF 2.0 (GL Transmission Format) oraz wczesne wsparcie dla formatu FBX, który umożliwia import scen z animacją z Blendera, ale obecnie jest niekompatybilny z Maya i 3ds Max. Dodano wsparcie dla skinów szkieletowych podczas importu scen poprzez glTF 2.0 i FBX, co pozwala na użycie jednego szkieletu w kilku siatkach. Prace nad poprawą i stabilizacją wsparcia glTF 2.0 przeprowadzono we współpracy ze społecznością deweloperów pakietu Blender, w której ulepszone wsparcie glTF 2.0 zostanie zaproponowane w wydaniu 2.83.
- Możliwości sieciowe silnika zostały rozszerzone o wsparcie dla protokołów WebRTC i WebSocket, a także możliwość korzystania z UDP w trybie multicast. Dodano API do korzystania z haseł kryptograficznych i pracy z certyfikatami. Dodano graficzny interfejs do profilowania aktywności sieciowej. Rozpoczęto prace nad stworzeniem portu Godot na WebAssembly/HTML5, który umożliwi uruchomienie edytora w przeglądarce przez Web.
- Przeprojektowano wtyczkę dla platformy Android oraz system eksportu. Teraz do formowania pakietów dla Androida oferowane są dwa oddzielne systemy eksportu: jeden z wcześniej zbudowanym silnikiem, a drugi umożliwiający formowanie własnych kompilacji na podstawie dostosowanych wersji silnika. Konfigurację własnych kompilacji można przeprowadzać na poziomie wtyczki dla Androida, bez ręcznej edycji podstawowego szablonu.
- Do edytora dodano wsparcie dla selektywnego wyłączania poszczególnych funkcji, na przykład można usunąć przyciski do uruchamiania edytora 3D, edytora skryptów, biblioteki zasobów, węzłów, paneli, właściwości i innych elementów, które nie są potrzebne deweloperowi (ukrycie zbędnych elementów znacznie upraszcza interfejs).
- Dodano początkowe wsparcie dla integracji z systemami zarządzania kodem źródłowym oraz zaimplementowano wtyczkę do obsługi Git w edytorze;
- Udostępniono możliwość nadpisania kamery dla uruchomionej gry przez okno w edytorze, co umożliwia ocenę różnych trybów w grze (swobodne przeglądanie, inspekcja węzłów itp.);
- Proponowana realizacja serwera LSP (Language Server Protocol) dla języka GDScript, która umożliwia przesyłanie informacji o semantyce GDScript oraz regułach autouzupełniania kodu do zewnętrznych edytorów, takich jak wtyczka do VS Code i Atom;
- Wprowadzono liczne ulepszenia w wbudowanym edytorze skryptów GDScript: dodano możliwość ustawiania zakładek w kodzie, zrealizowano panel minimap (do szybkiego przeglądania całego kodu), poprawiono autouzupełnianie, rozszerzono możliwości trybu wizualnego projektowania skryptów;
- Dodano tryb tworzenia pseudo-gier 3D, umożliwiający wykorzystanie efektu głębokości w grach 2D poprzez zdefiniowanie kilku warstw, tworzących fiktywną perspektywę;
- W edytorze 2D przywrócono wsparcie dla atlasów tekstur;
- W GUI zmodernizowano proces rozmieszczania kotwic i granic obszarów;
- Dodano możliwość podglądu na żywo zmian parametrów efektów w danych tekstowych, zapewniono wsparcie dla znaczników BBCode i możliwość definiowania własnych efektów;
- Dodano generator strumieni dźwiękowych, który pozwala na tworzenie fal dźwiękowych na podstawie pojedynczych klatek oraz analizatora widma;
- Zrealizowano możliwość dekompozycji wklęsłych siatek na dokładne i uproszczone wypukłe części przy użyciu biblioteki V-HACD. Ta funkcjonalność znacznie upraszcza generowanie form kolizji dla istniejących siatek 3D;
- Zrealizowano możliwość rozwijania logiki gry w języku C# z wykorzystaniem Mono dla platform Android i WebAssembly (wcześniej C# był wspierany dla Linuxa, Windowsa i macOS). Na bazie Mono 6.6 wprowadzono wsparcie dla C# 8.0. Zaimplementowano również wstępne wsparcie dla kompilacji na czas (AOT, ahead-of-time), które zostało dodane do bazy kodu, ale jeszcze nie jest aktywne (dla WebAssembly stosowany jest nadal interpreter). Do edycji kodu C# wprowadzono możliwość podłączenia zewnętrznych edytorów, takich jak MonoDevelop, Visual Studio for Mac i Jetbrains Rider;
- Wyraźnie rozszerzono i ulepszono dokumentację. Opublikowano częściowy przekład dokumentacji na język rosyjski (przetłumaczono wprowadzenie do zaczynania pracy).
Źródło: linux.org.ru

