Earste release fan 'e iepen boarne multiplayer-spielmotor Ambient

Nei in jier fan ûntwikkeling wurdt de earste release fan 'e nije iepen boarne-spielmotor Ambient presintearre. De motor leveret in runtime foar it meitsjen fan multiplayer-spultsjes en 3D-applikaasjes dy't kompilearje nei in WebAssembly-fertsjintwurdiging en brûke de WebGPU API foar rendering. De koade is skreaun yn Rust en wurdt ferspraat ûnder de MIT-lisinsje.

In wichtich doel yn 'e ûntwikkeling fan Ambient is ark te leverjen dy't de ûntwikkeling fan multiplayer-spultsjes ferienfâldigje en har skepping net dreger meitsje as projekten foar ien spieler. De motor is yn earste ynstânsje rjochte op it meitsjen fan in universele runtime dy't de ûntwikkeling fan spultsjes en applikaasjes stipet yn alle programmeartalen wêrfoar kompilaasje yn WebAssembly-tuskenkoade mooglik is. De earste release stipet lykwols allinich Rust-ûntwikkeling foar no.

Wichtige funksjes fan 'e nije motor:

  • Transparante netwurkstipe. De motor kombinearret client- en serverfunksjes, leveret alle nedige komponinten foar it meitsjen fan client- en serverlogika, en syngronisearret automatysk de serverstatus oer kliïnten. In mienskiplik gegevensmodel wurdt brûkt op 'e client- en serverkanten, wat de oerdracht fan koade tusken de efterkant en frontend simplifies makket.
  • It útfieren fan elke module yn syn eigen isolearre omjouwing, wêrtroch jo de ynfloed fan ûnbetroubere koade kinne beheine. It crashen fan in module ferûngelokke de heule applikaasje net.
  • Data-rjochte arsjitektuer. It leverjen fan in gegevensmodel basearre op in systeem fan komponinten dat kin wurde manipulearre troch elke WASM-module. Mei help fan it ECS (Entity Component System) ûntwerppatroan. It opslaan fan de gegevens fan alle komponinten yn in sintralisearre databank op 'e tsjinner, wêrfan de steat automatysk wurdt replikearre nei de kliïnt, dy't op syn kant de gegevens kin útwreidzje mei rekkening mei de lokale steat.
  • Mooglikheid om Ambient-modules te meitsjen yn elke programmeartaal dy't kompilearret nei WebAssembly (allinich Rust wurdt no stipe).
  • It generearjen fan universele útfierbere bestannen as útfier dy't kin rinne op Windows, macOS en Linux, en funksjonearje as sawol in client as in server.
  • Mooglikheid om jo eigen komponinten en "konsepten" (kolleksjes fan komponinten) te definiearjen. Projekten dy't deselde komponinten en konsepten brûke meitsje portabiliteit en dielen fan gegevens mooglik, sels as de gegevens net spesifyk ûntwurpen binne foar gebrûk yn spesifike projekten.
  • Stipe foar it kompilearjen fan boarnen yn ferskate formaten, ynklusyf .glb en .fbx. Mooglikheid fan streaming ynladen fan boarnen oer it netwurk - de kliïnt kin alle nedige boarnen ûntfange by it ferbinen mei de tsjinner (jo kinne begjinne te spyljen sûnder te wachtsjen op alle boarnen om te laden). Unterstützt FBX- en glTF-modelformaten, ferskate audio- en byldformaten.
  • In avansearre renderingsysteem dat de GPU brûkt om de rendering te fersnellen en stipet GPU-side clipping en feroarings op detailnivo. Brûkt standert fysyk basearre rendering (PBR), stipet animaasje en kaskadearjende skaadkaarten.
  • Stipe foar simulaasje fan fysike prosessen basearre op de PhysX-motor.
  • In systeem foar it bouwen fan brûkersynterfaces fergelykber mei React.
  • In unifoarm ynfiersysteem dat ûnôfhinklik is fan it hjoeddeistige platfoarm.
  • Romtlik lûdsysteem mei plug-in filters.

De ûntwikkeling is noch yn it alfa-ferzjestadium. Under de noch net ymplementearre funksjonaliteit kinne wy ​​​​opmerke de mooglikheid om te rinnen op it web, in client API, in API foar it behearen fan multithreading, in bibleteek foar it meitsjen fan in brûkersynterface, in API foar it brûken fan jo eigen shaders, lûdstipe, laden en bewarjen ECS (Entity Component System) komponinten, herladen fan boarnen op 'e flecht, automatyske serverskaalfergrutting, bewurker foar gearwurkjende skepping fan spielkaarten en spielsênes.



Boarne: opennet.ru

Add a comment