Prvé vydanie open source herného enginu pre viacerých hráčov Ambient

Po roku vývoja je predstavené prvé vydanie nového open source herného enginu Ambient. Engine poskytuje runtime na vytváranie hier pre viacerých hráčov a 3D aplikácií, ktoré sa kompilujú do reprezentácie WebAssembly a na vykresľovanie používajú WebGPU API. Kód je napísaný v jazyku Rust a je distribuovaný pod licenciou MIT.

Kľúčovým cieľom pri vývoji Ambientu je poskytnúť nástroje, ktoré zjednodušia vývoj hier pre viacerých hráčov a urobia ich tvorbu o nič zložitejšou ako projekty pre jedného hráča. Engine je pôvodne zameraný na vytvorenie univerzálneho runtime, ktorý podporuje vývoj hier a aplikácií v akýchkoľvek programovacích jazykoch, pre ktoré je možná kompilácia do medzikódu WebAssembly. Prvé vydanie však zatiaľ podporuje iba vývoj Rust.

Kľúčové vlastnosti nového motora:

  • Transparentná podpora sietí. Motor kombinuje funkcie klienta a servera, poskytuje všetky potrebné komponenty na vytvorenie logiky klienta a servera a automaticky synchronizuje stav servera medzi klientmi. Na strane klienta a servera sa používa spoločný dátový model, ktorý zjednodušuje prenos kódu medzi backendom a frontendom.
  • Spustenie každého modulu v jeho vlastnom izolovanom prostredí, čo vám umožní obmedziť vplyv nedôveryhodného kódu. Zlyhanie modulu nezrúti celú aplikáciu.
  • Dátovo orientovaná architektúra. Poskytovanie dátového modelu založeného na systéme komponentov, s ktorými môže každý modul WASM manipulovať. Použitie návrhového vzoru ECS (Entity Component System). Ukladanie dát všetkých komponentov do centralizovanej databázy na serveri, ktorej stav sa automaticky replikuje klientovi, ktorý na svojej strane môže dáta rozširovať s prihliadnutím na lokálny stav.
  • Schopnosť vytvárať moduly Ambient v akomkoľvek programovacom jazyku, ktorý sa kompiluje do WebAssembly (zatiaľ je podporovaný iba Rust).
  • Generovanie univerzálnych spustiteľných súborov ako výstup, ktorý možno spustiť na Windows, MacOS a Linux a fungovať ako klient aj server.
  • Schopnosť definovať svoje vlastné komponenty a „koncepty“ (kolekcie komponentov). Projekty, ktoré používajú rovnaké komponenty a koncepty, umožňujú prenosnosť a zdieľanie údajov, aj keď údaje nie sú špeciálne navrhnuté na použitie v konkrétnych projektoch.
  • Podpora kompilácie zdrojov v rôznych formátoch vrátane .glb a .fbx. Možnosť streamovaného sťahovania zdrojov cez sieť - klient môže získať všetky potrebné zdroje pri pripojení k serveru (môžete začať hrať bez čakania na načítanie všetkých zdrojov). Podporuje modelové formáty FBX a glTF, rôzne zvukové a obrazové formáty.
  • Pokročilý systém vykresľovania, ktorý využíva GPU na zrýchlenie vykresľovania a podporuje orezávanie na strane GPU a zmeny úrovne detailov. Štandardne používa fyzicky založené vykresľovanie (PBR), podporuje animáciu a kaskádové tieňové mapy.
  • Podpora pre simuláciu fyzikálnych procesov na základe PhysX engine.
  • Systém na vytváranie používateľských rozhraní podobný systému React.
  • Jednotný vstupný systém, ktorý je nezávislý od aktuálnej platformy.
  • Priestorový zvukový systém so zásuvnými filtrami.

Vývoj je zatiaľ v štádiu alfa verzie. Medzi ešte neimplementovanou funkcionalitou môžeme zaznamenať možnosť spustenia na webe, klientske API, API na správu multithreadingu, knižnicu na vytváranie používateľského rozhrania, API na používanie vlastných shaderov, podporu zvuku, načítanie a ukladanie Komponenty ECS ​​(Entity Component System), opätovné načítanie zdrojov za behu, automatické škálovanie servera, editor na spoločné vytváranie herných máp a herných scén.



Zdroj: opennet.ru

Pridať komentár