První vydání open source herního enginu pro více hráčů Ambient

Po roce vývoje je představeno první vydání nového open source herního enginu Ambient. Engine poskytuje běhové prostředí pro vytváření her pro více hráčů a 3D aplikací, které se kompilují do reprezentace WebAssembly a pro vykreslování používají rozhraní WebGPU API. Kód je napsán v Rustu a je distribuován pod licencí MIT.

Klíčovým cílem při vývoji Ambientu je poskytnout nástroje, které zjednoduší vývoj her pro více hráčů a učiní jejich tvorbu o nic obtížnější než projekty pro jednoho hráče. Engine je zpočátku zaměřen na vytvoření univerzálního běhového prostředí, které podporuje vývoj her a aplikací v jakýchkoli programovacích jazycích, pro které je možná kompilace do mezikódu WebAssembly. První verze však zatím podporuje pouze vývoj Rust.

Klíčové vlastnosti nového motoru:

  • Transparentní síťová podpora. Motor kombinuje funkce klienta a serveru, poskytuje všechny potřebné komponenty pro vytvoření logiky klienta a serveru a automaticky synchronizuje stav serveru mezi klienty. Na straně klienta i serveru je použit společný datový model, který zjednodušuje přenos kódu mezi backendem a frontendem.
  • Spuštění každého modulu v jeho vlastním izolovaném prostředí, což vám umožní omezit vliv nedůvěryhodného kódu. Selhání modulu nezpůsobí pád celé aplikace.
  • Datově orientovaná architektura. Poskytování datového modelu založeného na systému komponent, se kterými lze manipulovat každým modulem WASM. Použití návrhového vzoru ECS (Entity Component System). Ukládání dat všech komponent do centralizované databáze na serveru, jejíž stav je automaticky replikován na klienta, který na své straně může data rozšiřovat s přihlédnutím k místnímu stavu.
  • Schopnost vytvářet moduly Ambient v jakémkoli programovacím jazyce, který se kompiluje do WebAssembly (zatím je podporován pouze Rust).
  • Generování univerzálních spustitelných souborů jako výstup, který lze spustit na Windows, macOS a Linux a fungovat jako klient i server.
  • Schopnost definovat vlastní komponenty a „koncepty“ (kolekce komponent). Projekty, které používají stejné komponenty a koncepty, umožňují přenositelnost a sdílení dat, i když data nejsou speciálně navržena pro použití v konkrétních projektech.
  • Podpora pro kompilaci zdrojů v různých formátech, včetně .glb a .fbx. Možnost streamovaného stahování zdrojů po síti - klient může přijímat všechny potřebné zdroje při připojení k serveru (můžete začít hrát bez čekání na načtení všech zdrojů). Podporuje modelové formáty FBX a glTF, různé zvukové a obrazové formáty.
  • Pokročilý systém vykreslování, který využívá GPU k urychlení vykreslování a podporuje ořezávání na straně GPU a změny úrovně detailů. Ve výchozím nastavení používá fyzicky založené vykreslování (PBR), podporuje animaci a kaskádové stínové mapy.
  • Podpora pro simulaci fyzikálních procesů na bázi PhysX enginu.
  • Systém pro vytváření uživatelských rozhraní podobný Reactu.
  • Jednotný vstupní systém, který je nezávislý na aktuální platformě.
  • Prostorový zvukový systém se zásuvnými filtry.

Vývoj je stále ve fázi alfa verze. Mezi dosud neimplementovanou funkcionalitou můžeme zaznamenat možnost běhu na webu, klientské API, API pro správu multithreadingu, knihovnu pro tvorbu uživatelského rozhraní, API pro použití vlastních shaderů, podporu zvuku, načítání a ukládání Komponenty ECS ​​(Entity Component System), opětovné načítání zdrojů za běhu, automatické škálování serveru, editor pro společné vytváření herních map a herních scén.



Zdroj: opennet.ru

Přidat komentář