Avatud lähtekoodiga mitme mängijaga mängumootori Ambient esimene väljalase

Pärast aastast arendustööd esitletakse uue avatud lähtekoodiga mängumootori Ambient esimest väljalaset. Mootor pakub käitusaega mitme mängijaga mängude ja 3D-rakenduste loomiseks, mis kompileerivad WebAssembly esinduseks ja kasutavad renderdamiseks WebGPU API-d. Kood on kirjutatud Rust keeles ja seda levitatakse MIT litsentsi all.

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 algselt luua universaalne käitusaeg, mis toetab mängude ja rakenduste arendamist mis tahes programmeerimiskeeltes, mille jaoks on võimalik WebAssembly vahekoodiks kompileerimine. Kuid esimene väljalase toetab praegu ainult Rusti arendamist.

Uue mootori põhiomadused:

  • Läbipaistev võrgutugi. Mootor ühendab kliendi ja serveri funktsioonid, pakub kõiki vajalikke komponente kliendi ja serveri loogika loomiseks ning sünkroonib automaatselt serveri oleku klientide vahel. Kliendi ja serveri poolel kasutatakse ühist andmemudelit, mis lihtsustab koodi edastamist tausta- ja esiserveri vahel.
  • Iga mooduli käitamine oma isoleeritud keskkonnas, mis võimaldab teil piirata ebausaldusväärse koodi mõju. Mooduli krahhiga ei jookse kogu rakendus kokku.
  • Andmetele orienteeritud arhitektuur. Andmemudeli pakkumine, mis põhineb komponentide süsteemil, mida saab manipuleerida iga WASM-mooduliga. ECS (Entity Component System) disainimustri kasutamine. Kõigi komponentide andmete salvestamine serveris asuvasse tsentraliseeritud andmebaasi, mille olek kopeeritakse automaatselt kliendile, kes saab oma poolelt andmeid laiendada, võttes arvesse kohalikku olekut.
  • Võimalus luua Ambient-mooduleid mis tahes programmeerimiskeeles, mis kompileeritakse WebAssemblysse (praegu toetatakse ainult Rusti).
  • Universaalsete täitmisfailide genereerimine väljundina, mis võivad töötada Windowsis, macOS-is ja Linuxis ning toimida nii kliendi kui ka serverina.
  • Oskus määratleda oma komponente ja “kontseptsioone” (komponentide kogusid). Projektid, mis kasutavad samu komponente ja kontseptsioone, võimaldavad andmete teisaldamist ja jagamist, isegi kui andmed pole spetsiaalselt ette nähtud kasutamiseks konkreetsetes projektides.
  • Toetus ressursside koostamiseks erinevates vormingutes, sealhulgas .glb ja .fbx. Ressursside allalaadimise voogedastusvõimalus üle võrgu – klient saab serveriga ühenduse loomisel kätte kõik vajalikud ressursid (saate alustada mängimist, ootamata kõigi ressursside laadimist). Toetab FBX ja glTF mudelivorminguid, erinevaid heli- ja pildivorminguid.
  • Täiustatud renderdussüsteem, mis kasutab GPU-d renderduse kiirendamiseks ning toetab GPU-poolset kärpimist ja detailitaseme muutmist. Kasutab vaikimisi füüsiliselt põhinevat renderdamist (PBR), toetab animatsiooni ja kaskaadvarjukaarte.
  • Tugi füüsiliste protsesside simuleerimiseks PhysX mootoril.
  • Süsteem Reactile sarnaste kasutajaliideste loomiseks.
  • Ühtne sisendsüsteem, mis on praegusest platvormist sõltumatu.
  • Ruumiline helisüsteem plug-in filtritega.

Arendus on endiselt alfaversiooni staadiumis. Veel rakendamata funktsioonide hulgas 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 salvestamist. ECS ​​(Entity Component System) komponendid, ressursside ümberlaadimine käigult, automaatne serveri skaleerimine, redaktor mängukaartide ja mängustseenide koostööks loomiseks.



Allikas: opennet.ru

Lisa kommentaar