Prvo izdanje Ambient open multiplayer game engine-a

Nakon godinu dana razvoja, predstavljeno je prvo izdanje novog open source game engine-a Ambient. Motor pruža vrijeme izvođenja za pravljenje igara za više igrača i 3D aplikacija koje kompajliraju u WebAssembly reprezentaciju i koriste WebGPU API za renderiranje. Kod je napisan na Rustu i distribuiran pod MIT licencom.

Ključni cilj u razvoju Ambienta je pružiti alate koji pojednostavljuju razvoj igara za više igrača i čine njihovo kreiranje ništa težim od projekata za jednog igrača. Motor je inicijalno usmjeren na stvaranje univerzalnog runtimea koji podržava razvoj igara i aplikacija na svim programskim jezicima za koje je moguća kompilacija u WebAssembly međukod. Međutim, prvo izdanje podržava samo Rust razvoj do sada.

Ključne karakteristike novog motora:

  • Transparentna podrška za umrežavanje. Mašina kombinuje funkcije klijenta i servera, obezbeđuje sve potrebne komponente za kreiranje klijentske i serverske logike i automatski sinhronizuje stanje servera na klijentima. Uobičajeni model podataka se koristi na strani klijenta i servera, što olakšava prijenos koda između backenda i frontenda.
  • Pokrenite svaki modul u vlastitom izoliranom okruženju kako biste ograničili utjecaj nepouzdanog koda. Rušenje modula ne uzrokuje pad cijele aplikacije.
  • Arhitektura orijentirana na podatke. Pružanje modela podataka zasnovanog na sistemu komponenti kojima svaki WASM može manipulisati. Korištenje obrasca dizajna ECS (Entity Component System). Pohranjivanje podataka svih komponenti u centraliziranu bazu podataka na serveru, čije se stanje automatski replicira na klijenta, koji sa svoje strane može proširiti podatke uzimajući u obzir lokalno stanje.
  • Mogućnost kreiranja ambijentalnih modula u bilo kojem programskom jeziku koji se kompajlira u WebAssembly (do sada je podržan samo Rust).
  • Generiranje izlaznih univerzalnih izvršnih datoteka koje mogu raditi na Windows, macOS i Linux, a funkcionišu i kao klijent i kao server.
  • Sposobnost definiranja vlastitih komponenti i "koncepta" (kolekcija komponenti). Projekti koji koriste iste komponente i koncepte osiguravaju da su podaci prenosivi i dijeljeni, čak i ako podaci nisu posebno dizajnirani za upotrebu u određenim projektima.
  • Podrška za kompajliranje resursa u različitim formatima, uključujući .glb i .fbx. Mogućnost strujanja resursa preko mreže - klijent može dobiti sve potrebne resurse kada se poveže na server (možete početi igrati bez čekanja da se svi resursi učitaju). Podržani su formati FBX i glTF modela, različiti formati zvuka i slike.
  • Napredni sistem za renderovanje koji koristi GPU za ubrzanje renderovanja i podržava kliping na strani GPU-a i LOD-ove. Korištenje fizički zasnovanog renderiranja (PBR) prema zadanim postavkama, podrška za animaciju i kaskadne mape sjena.
  • Podrška za simulaciju fizičkih procesa na bazi PhysX motora.
  • Sistem za izgradnju korisničkog interfejsa sličan reakciji.
  • Jedinstveni ulazni sistem nezavisno od trenutne platforme.
  • Prostorno ozvučenje sa plug-in filterima.

Razvoj je još uvijek u alfa fazi. Od funkcionalnosti koja još nije implementirana, možemo primijetiti mogućnost rada na webu, API klijenta, API za upravljanje višenitnošću, biblioteku za kreiranje korisničkog sučelja, API za korištenje vlastitih shadera, zvučnu podršku, učitavanje i spremanje ECS (Entity Component System) komponente, ponovno učitavanje resursa u hodu, automatsko skaliranje servera, editor za zajedničko kreiranje mapa igara i scena igre.



izvor: opennet.ru

Dodajte komentar