Eerste vrystelling van die Ambient oop multiplayer-speletjie-enjin

Na 'n jaar van ontwikkeling word die eerste vrystelling van die nuwe oopbron-speletjie-enjin Ambient aangebied. Die enjin bied 'n looptyd vir die bou van multiplayer-speletjies en 3D-toepassings wat saamstel na 'n WebAssembly-voorstelling en die WebGPU API vir lewering gebruik. Die kode is in Rust geskryf en onder die MIT-lisensie versprei.

'n Sleuteldoelwit in die ontwikkeling van Ambient is om nutsmiddels te verskaf wat die ontwikkeling van multispelerspeletjies vereenvoudig en die skepping daarvan nie moeiliker maak as enkelspelerprojekte nie. Die enjin is aanvanklik daarop gemik om 'n universele looptyd te skep wat die ontwikkeling van speletjies en toepassings in enige programmeertale ondersteun waarvoor samestelling in WebAssembly-tussenkode moontlik is. Die eerste weergawe ondersteun egter net Rust-ontwikkeling tot dusver.

Belangrike kenmerke van die nuwe enjin:

  • Deursigtige ondersteuning vir netwerke. Die enjin kombineer die funksies van 'n kliënt en 'n bediener, verskaf al die nodige komponente om kliënt- en bedienerlogika te skep, en sinchroniseer outomaties die toestand van die bediener op kliënte. 'n Algemene datamodel word aan die kliënt- en bedienerkant gebruik, wat dit maklik maak om kode tussen die agterkant en voorkant oor te dra.
  • Begin elke module in sy eie geïsoleerde omgewing om die impak van onbetroubare kode te beperk. Om 'n module te laat val, veroorsaak nie dat die hele toepassing ineenstort nie.
  • Data-georiënteerde argitektuur. Die verskaffing van 'n datamodel gebaseer op 'n stelsel van komponente wat elke WASM kan manipuleer. Gebruik die ECS (Entity Component System) ontwerppatroon. Die stoor van die data van alle komponente in 'n gesentraliseerde databasis op die bediener, waarvan die toestand outomaties na die kliënt gerepliseer word, wat aan sy kant die data kan uitbrei met inagneming van die plaaslike toestand.
  • Die vermoë om Ambient-modules te skep in enige programmeertaal wat na WebAssembly saamgestel word (slegs Rust word tot dusver ondersteun).
  • Generering van universele uitvoerbare uitvoerlêers wat op Windows, macOS en Linux kan werk en as beide 'n kliënt en 'n bediener kan funksioneer.
  • Vermoë om jou eie komponente en "konsepte" (versamelings van komponente) te definieer. Projekte wat dieselfde komponente en konsepte gebruik verseker dat data oordraagbaar en gedeel word, selfs al is die data nie spesifiek ontwerp vir gebruik in spesifieke projekte nie.
  • Ondersteuning vir die samestelling van hulpbronne in verskillende formate, insluitend .glb en .fbx. Die vermoë om hulpbronne oor die netwerk te stroom - die kliënt kan al die nodige hulpbronne kry wanneer dit aan die bediener gekoppel is (jy kan begin speel sonder om te wag vir al die hulpbronne om te laai). FBX- en glTF-modelformate, verskeie klank- en beeldformate word ondersteun.
  • 'n Gevorderde weergawestelsel wat die GPU gebruik om lewering te versnel, en ondersteun GPU-kantknipsel en LOD's. Met behulp van fisies gebaseerde weergawe (PBR) by verstek, ondersteuning vir animasie en kaskade skadukaarte.
  • Ondersteuning vir simulasie van fisiese prosesse gebaseer op die PhysX-enjin.
  • Reageeragtige gebruikerskoppelvlakboustelsel.
  • Eenvormige invoerstelsel onafhanklik van die huidige platform.
  • Ruimtelike klankstelsel met inpropfilters.

Die ontwikkeling is nog in die alfa-stadium. Van die funksionaliteit wat nog nie geïmplementeer is nie, kan ons let op die vermoë om op die web te loop, die kliënt API, die API vir die bestuur van multithreading, die biblioteek vir die skep van die gebruikerskoppelvlak, die API vir die gebruik van jou eie shaders, klankondersteuning, laai en stoor ECS (Entity Component System) komponente, herlaai van hulpbronne op die vlug, outomatiese skaal van bedieners, 'n redigeerder om speletjiekaarte en speletjietonele saam te skep.



Bron: opennet.ru

Voeg 'n opmerking