Po roku rozwoju se zaprezentował pierwszą wersję nowego silnika gier typu open source Otoczenia. Silnik zapewnia środowisko uruchomieniowe do tworzenia gier wieloosobowych i aplikacji 3D które są kompilowane w reprezentację WebAssembly i używają interfejsu API WebGPU do renderowania.
Kluczowym celem w tworzeniu Ambient jest zapewnienie narzędzi, które upraszczają tworzenie gier wieloosobowych i sprawiają, że ich tworzenie nie jest trudniejsze niż projekty dla jednego gracza.
Silnik początkowo ma na celu stworzenie uniwersalnego środowiska uruchomieniowego, które wspiera tworzenie gier i aplikacji w dowolnym języku programowania, dla którego możliwa jest kompilacja do pośredniego kodu WebAssembly. Jednak pierwsza wersja obsługuje jak dotąd tylko rozwój Rusta.
O Ambiencie
O cechach, które wyróżniają się od Ambient, wspomina się o tym ma przejrzyste wsparcie dla sieci. Silnik łączy w sobie funkcje klienta i serwera, zapewnia wszystkie niezbędne komponenty do tworzenia logiki klienta i serwera oraz automatycznie synchronizuje stan serwera na klientach.
Wspomina się również o tym po stronie klienta i serwera używany jest wspólny model danych, co ułatwia przenoszenie kodu między backendem a frontendem. Uruchamia każdy moduł we własnym odizolowanym środowisku, aby ograniczyć wpływ niezaufanego kodu, a awaria jednego modułu nie powoduje awarii całej aplikacji.
otoczenia, okMa architekturę zorientowaną na dane, zapewniając w ten sposób model danych oparty na systemie komponentów, którymi każdy WASM może manipulować. Wykorzystanie wzorca projektowego ECS (Entity Component System).
Oprócz tego również przechowuje dane wszystkich komponentów w scentralizowanej bazie danych na serwerzer, którego stan jest automatycznie replikowany do klienta, co z kolei może rozszerzyć dane uwzględniając stan lokalny.
Możliwość tworzenia modułów Ambient w dowolnym języku programowania, który kompiluje się do WebAssembly (do tej pory obsługiwany jest tylko Rust), przy jednoczesnym generowaniu uniwersalnych wykonywalnych plików wyjściowych, może działać w systemach Windows, macOS i Linux oraz działać jako klient i serwer.
Z drugiej strony jest to również podkreślanema możliwość definiowania własnych składowych i „pojęć” (kolekcje komponentów). Projekty wykorzystujące te same komponenty i koncepcje zapewniają przenośność i współużytkowanie danych, nawet jeśli dane nie są specjalnie zaprojektowane do użytku w konkretnych projektach.
Z innych funkcji wyróżniających się od Ambient:
- Obsługa kompilowania zasobów w różnych formatach, w tym „.glb” i „.fbx”. Możliwość strumieniowego przesyłania zasobów przez sieć: klient może uzyskać wszystkie niezbędne zasoby podczas łączenia się z serwerem (możesz rozpocząć grę bez czekania na załadowanie wszystkich zasobów).
- Obsługiwane są formaty modeli FBX i glTF, różne formaty dźwięku i obrazu.
- Zaawansowany system renderowania, który wykorzystuje GPU do przyspieszania renderowania i obsługuje poziom szczegółowości i przycinanie po stronie GPU.
- Domyślne użycie renderowania opartego na fizyce (PBR), obsługa animacji i kaskadowych map cieni.
- Wsparcie symulacji procesów fizycznych w oparciu o silnik PhysX.
- Reagujący system budowania interfejsu użytkownika.
- Ujednolicony system wejścia niezależny od aktualnej platformy.
- Nagłośnienie przestrzenne z filtrami wtykowymi.
- Rozwój jest wciąż w fazie alfa. Z funkcji, które nie zostały jeszcze zaimplementowane, możemy zwrócić uwagę na możliwość uruchamiania w sieci, klienckie API, API do zarządzania wielowątkowością, bibliotekę do tworzenia interfejsu użytkownika, API do korzystania z własnych shaderów, obsługę dźwięku, ładowanie i zapisz
- Komponenty ECS (Entity Component System), przeładowywanie zasobów w locie, automatyczne skalowanie serwera, edytor do współtworzenia map i scen gry.
Wreszcie, ci, którzy chcą dowiedzieć się więcej na ten temat, powinni wiedzieć, że kod jest napisany w Rust i jest rozpowszechniane na licencji MIT.