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 orijentisana na podatke. Pružanje modela podataka zasnovanog na sistemu komponenti kojima svaki WASM modul može manipulisati. Korištenje ECS (Entity Component System) obrasca dizajna. Pohranjivanje podataka iz svih komponenti u centralizovanu bazu podataka. server, čije se stanje automatski replicira na klijenta, koji može proširiti podatke na svojoj strani 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).
  • Formiranje univerzalnih izvršnih datoteka na izlazu koje se mogu pokrenuti u Windows, macOS и Linux, i 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 trenutno u alfa verziji. Funkcije koje još nisu implementirane uključuju mogućnost pokretanja putem weba, klijentski API, API za višenitnost, biblioteku za kreiranje korisničkih interfejsa, API za korištenje prilagođenih shadera, podršku za zvuk, učitavanje i spremanje ECS (Entity Component System) komponenti, ponovno učitavanje resursa u hodu i automatsko skaliranje. serveri, editor za kolaborativno kreiranje mapa igara i scena igara.

Reprodukujte video


izvor: opennet.ru
Kupite pouzdan hosting za sajtove sa DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster