Pärast aastast arengut, se avalikustas esimese väljalase uuest avatud lähtekoodiga mängumootorist ümbritsev. Mootor pakub käitusaega mitme mängijaga mängude ja 3D-rakenduste loomiseks mis on kompileeritud WebAssembly esituseks ja kasutavad renderdamiseks WebGPU API-d.
Ambienti arendamise põhieesmärk on pakkuda tööriistu, mis lihtsustavad mitme mängijaga mängude arendamist ega muuda nende loomist ühe mängijaga projektidest keerulisemaks.
Mootori eesmärk on esialgu luua universaalne käitusaeg, mis toetab mängude ja rakenduste arendamist mis tahes programmeerimiskeeles, mille jaoks on võimalik WebAssembly vahepealse koodi kompileerimine. Esimene versioon toetab aga seni ainult Rusti arendamist.
Ambienti kohta
Ambientist silma paistvatest omadustest mainitakse seda on läbipaistev võrgustiku tugi. Mootor ühendab endas kliendi ja serveri funktsioonid, pakub kõiki vajalikke komponente kliendi ja serveri loogika loomiseks ning sünkroonib automaatselt klientide serveri oleku.
Mainitakse ka seda kliendi ja serveri poolel kasutatakse ühist andmemudelit, mis hõlbustab koodi edastamist tausta- ja esiprogrammi vahel. See käivitab iga mooduli oma eraldatud keskkonnas, et piirata ebausaldusväärse koodi mõju, ja ühe mooduli kokkujooksmine ei põhjusta kogu rakenduse kokkujooksmist.
Ambient, cSellel on andmetele orienteeritud arhitektuur, andes seeläbi andmemudeli, mis põhineb komponentide süsteemil, mida iga WASM saab manipuleerida. ECS (Entity Component System) disainimustri kasutamine.
Lisaks sellele ka salvestab kõigi komponentide andmed serveri tsentraliseeritud andmebaasir, mille olek kopeeritakse automaatselt kliendile, mis omakorda võib kohalikku olekut arvesse võttes andmeid laiendada.
Võimalus luua Ambient-mooduleid mis tahes programmeerimiskeeles, mis kompileerib WebAssemblyga (seni on toetatud ainult Rust), genereerides samal ajal universaalseid käivitatavaid väljundfaile, võib töötada Windowsis, macOS-is ja Linuxis ning töötada kliendi ja serverina.
Teisest küljest rõhutatakse ka sedaon võime määratleda oma komponente ja "kontseptsioone" (komponentide kogud). Projektid, mis kasutavad samu komponente ja kontseptsioone, tagavad andmete teisaldatavuse ja ühiskasutuse, isegi kui andmed ei ole spetsiaalselt konkreetsetes projektides kasutamiseks mõeldud.
Muudest funktsioonidest, mis Ambientist silma paistavad:
- Toetus ressursside koostamiseks erinevates vormingutes, sealhulgas ".glb" ja ".fbx". Võimalus striimida ressursse üle võrgu: klient saab serveriga ühenduse loomisel kõik vajalikud ressursid kätte (võid alustada mängimist ootamata kõigi ressursside laadimist).
- Toetatud on FBX ja glTF mudelivormingud, erinevad heli- ja pildivormingud.
- Täiustatud renderdussüsteem, mis kasutab GPU-d renderduse kiirendamiseks ning toetab GPU-poolset LOD-i ja kärpimist.
- Vaikimisi kasutatakse füüsiliselt põhinevat renderdamist (PBR), animatsiooni ja kaskaadsete varikaartide tugi.
- Tugi füüsiliste protsesside simuleerimiseks PhysX mootoril.
- Reaktsioonitaoline kasutajaliidese ehitussüsteem.
- Praegusest platvormist sõltumatu ühtne sisenemissüsteem.
- Ruumiline helisüsteem plug-in filtritega.
- Areng on alles alfa staadiumis. Funktsioonidest, mida pole veel rakendatud, võime märkida veebis töötamise võimalust, kliendi API-d, API-d mitme lõime haldamiseks, teeki kasutajaliidese loomiseks, API-d oma varjutajate kasutamiseks, heli tuge, laadimist. ja salvestada
- ECS (Entity Component System) komponendid, ressursside käigupealt laadimine, serveri automaatne skaleerimine, redaktor mängukaartide ja mängustseenide koosloomiseks.
Lõpetuseks, need, kes soovivad selle kohta rohkem teada saada, peaksid teadma, et kood on kirjutatud Rust keeles ja on levitatakse MIT litsentsi alusel.