Ambient, isang open source na multiplayer game engine

pumapaligid

Ang ambient ay isang runtime para sa paggawa ng mga larong multiplayer na may mataas na pagganap at mga 3D na application, na pinapagana ng WebAssembly, Rust, at WebGPU.

Pagkatapos ng isang taon ng pag-unlad, se unveiled ang unang release ng bagong open source game engine Nakapaligid. Ang motor nagbibigay ng runtime para sa paglikha ng mga multiplayer na laro at 3D na application na pinagsama-sama sa isang representasyon ng WebAssembly at ginagamit ang WebGPU API para sa pag-render.

Ang isang pangunahing layunin sa pagbuo ng Ambient ay ang magbigay ng mga tool na nagpapasimple sa pagbuo ng mga multiplayer na laro at gawing hindi mas mahirap ang paggawa ng mga ito kaysa sa mga proyekto ng single-player.

Ang engine sa simula ay naglalayon na lumikha ng isang unibersal na runtime na sumusuporta sa pagbuo ng laro at application sa anumang programming language kung saan ang compilation sa intermediate WebAssembly code ay posible. Gayunpaman, ang unang bersyon ay sumusuporta lamang sa pagbuo ng Rust sa ngayon.

Tungkol sa Ambient

Sa mga katangiang namumukod-tangi sa Ambient, nabanggit iyon ay may malinaw na suporta para sa networking. Pinagsasama ng engine ang mga function ng isang kliyente at isang server, nagbibigay ng lahat ng kinakailangang bahagi upang lumikha ng lohika ng kliyente at server, at awtomatikong nagsi-synchronize ng estado ng server sa mga kliyente.

Nabanggit din yan isang karaniwang modelo ng data ang ginagamit sa panig ng kliyente at server, na nagpapadali sa paglipat ng code sa pagitan ng backend at frontend. Pinapatakbo nito ang bawat module sa sarili nitong nakahiwalay na kapaligiran upang limitahan ang epekto ng hindi pinagkakatiwalaang code, at ang pag-crash ng isang module ay hindi nag-crash sa buong application.

Ambient, cMayroon itong arkitekturang nakatuon sa data, sa gayon ay nagbibigay ng modelo ng data batay sa isang sistema ng mga bahagi na maaaring manipulahin ng bawat WASM. Gamit ang pattern ng disenyo ng ECS ​​(Entity Component System).

Bilang karagdagan diyan, din nag-iimbak ng data ng lahat ng mga bahagi sa isang sentralisadong database sa serverr, na ang estado ay awtomatikong ginagaya sa kliyente, na maaaring pahabain ang data na isinasaalang-alang ang lokal na estado.

Ang kakayahang lumikha ng mga module ng Ambient sa anumang programming language na nag-compile sa WebAssembly (sa ngayon, Rust lang ang sinusuportahan), habang bumubuo ng mga unibersal na executable na output file, maaaring tumakbo sa Windows, macOS, at Linux, at gumana bilang isang kliyente at bilang server.

Sa kabilang banda, naka-highlight din iyonmay kakayahang tukuyin ang sarili nitong mga bahagi at "konsepto" (mga koleksyon ng mga bahagi). Tinitiyak ng mga proyekto na gumagamit ng parehong mga bahagi at konsepto na ang data ay portable at ibinabahagi, kahit na ang data ay hindi partikular na idinisenyo para gamitin sa mga partikular na proyekto.

Sa iba pang feature na namumukod-tangi sa Ambient:

  • Suporta para sa pag-compile ng mga mapagkukunan sa iba't ibang format, kabilang ang ".glb" at ".fbx". Kakayahang mag-stream ng mga mapagkukunan sa network: makukuha ng kliyente ang lahat ng kinakailangang mapagkukunan kapag kumokonekta sa server (maaari kang magsimulang maglaro nang hindi naghihintay na mai-load ang lahat ng mga mapagkukunan).
  • Ang mga format ng modelong FBX at glTF, iba't ibang mga format ng tunog at imahe ay sinusuportahan.
  • Isang advanced na sistema ng pag-render na gumagamit ng GPU para mapabilis ang pag-render at sumusuporta sa GPU-side LOD at clipping.
  • Paggamit ng physically based rendering (PBR) bilang default, suporta para sa animation at cascading shadow map.
  • Suporta para sa simulation ng mga pisikal na proseso batay sa PhysX engine.
  • React-like UI building system.
  • Pinag-isang entry system na independiyente sa kasalukuyang platform.
  • Spatial sound system na may mga plug-in na filter.
  • Nasa alpha stage pa rin ang development. Sa functionality na hindi pa ipinapatupad, mapapansin natin ang kakayahang tumakbo sa Web, isang client API, isang API para sa pamamahala ng multi-threading, isang library para sa paglikha ng isang user interface, isang API para sa paggamit ng iyong sariling mga shader, sound support, load. at i-save
  • Ang mga bahagi ng ECS ​​(Entity Component System), mabilisang pag-reload ng mga mapagkukunan, awtomatikong pag-scale ng server, isang editor upang magkasamang lumikha ng mga mapa ng laro at mga eksena ng laro.

Sa wakas, para sa mga interesadong matuto pa tungkol dito, dapat nilang malaman na ang code ay nakasulat sa Rust at ay ipinamahagi sa ilalim ng lisensya ng MIT.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.