Unang pagpagawas sa open source multiplayer game engine Ambient

Pagkahuman sa usa ka tuig nga pag-uswag, gipresentar ang una nga pagpagawas sa bag-ong open source game engine Ambient. Naghatag ang makina og runtime alang sa paghimo og mga multiplayer nga dula ug 3D nga mga aplikasyon nga nag-compile sa usa ka representasyon sa WebAssembly ug naggamit sa WebGPU API alang sa pag-render. Ang code gisulat sa Rust ug giapod-apod ubos sa lisensya sa MIT.

Usa ka mahinungdanong tumong sa pagpalambo sa Ambient mao ang paghatag og mga himan nga nagpayano sa pagpalambo sa multiplayer nga mga dula ug paghimo sa ilang paglalang nga dili mas lisud kay sa single-player nga mga proyekto. Ang makina sa sinugdan gitumong sa paghimo sa usa ka unibersal nga runtime nga nagsuporta sa pagpalambo sa mga dula ug mga aplikasyon sa bisan unsang mga programming language diin posible ang pag-compile sa WebAssembly intermediate code. Bisan pa, ang una nga pagpagawas nagsuporta lamang sa pagpalambo sa Rust sa pagkakaron.

Pangunang bahin sa bag-ong makina:

  • Transparent nga suporta sa networking. Gihiusa sa makina ang mga function sa kliyente ug server, naghatag sa tanan nga kinahanglanon nga sangkap alang sa paghimo sa lohika sa kliyente ug server, ug awtomatiko nga gi-synchronize ang kahimtang sa server sa mga kliyente. Usa ka sagad nga modelo sa datos ang gigamit sa mga kilid sa kliyente ug server, nga nagpasimple sa pagbalhin sa code tali sa backend ug frontend.
  • Pagpadagan sa matag module sa kaugalingon nga nahilit nga palibot, nga nagtugot kanimo nga limitahan ang impluwensya sa dili kasaligan nga code. Ang pag-crash sa usa ka module dili makaguba sa tibuuk nga aplikasyon.
  • Arkitektura nga nakabase sa datos. Paghatag ug modelo sa datos base sa sistema sa mga sangkap nga mahimong manipulahon sa matag WASM module. Gamit ang pattern sa disenyo sa ECS (Entity Component System). Ang pagtipig sa datos sa tanan nga mga sangkap sa usa ka sentralisadong database sa server, ang estado nga awtomatiko nga gisundog sa kliyente, nga sa kilid niini makapalapad sa datos nga gikonsiderar ang lokal nga estado.
  • Abilidad sa paghimo sa Ambient modules sa bisan unsang programming language nga nag-compile sa WebAssembly (Rust lang ang gisuportahan sa pagkakaron).
  • Pagmugna og unibersal nga mga executable nga mga file isip output nga mahimong modagan sa Windows, macOS ug Linux, ug molihok isip kliyente ug server.
  • Abilidad sa paghubit sa imong kaugalingon nga mga sangkap ug "mga konsepto" (mga koleksyon sa mga sangkap). Ang mga proyekto nga naggamit sa parehas nga mga sangkap ug mga konsepto makapaarang sa pagdala ug pagpaambit sa datos, bisan kung ang datos wala espesipikong gidisenyo aron magamit sa piho nga mga proyekto.
  • Suporta alang sa pagtipon sa mga kapanguhaan sa lain-laing mga format, lakip ang .glb ug .fbx. Posibilidad sa pag-streaming sa pag-download sa mga kahinguhaan sa network - ang kliyente makadawat sa tanan nga gikinahanglan nga mga kapanguhaan kung magkonektar sa server (mahimo ka magsugod sa pagdula nga dili maghulat sa tanan nga mga kapanguhaan nga ma-load). Nagsuporta sa mga format sa modelo sa FBX ug glTF, lainlaing mga format sa audio ug imahe.
  • Usa ka advanced rendering system nga naggamit sa GPU aron mapadali ang rendering ug nagsuporta sa GPU-side clipping ug mga kausaban sa lebel sa detalye. Gigamit ang physically based rendering (PBR) nga default, nagsuporta sa animation ug cascading shadow map.
  • Suporta alang sa simulation sa pisikal nga mga proseso base sa PhysX engine.
  • Usa ka sistema alang sa pagtukod sa mga interface sa user nga susama sa React.
  • Usa ka hiniusa nga sistema sa pag-input nga independente sa karon nga plataporma.
  • Spatial sound system nga adunay mga plug-in nga mga filter.

Ang pag-uswag anaa pa sa yugto sa bersyon sa alpha. Lakip sa wala pa gipatuman nga pag-andar, mahimo natong matikdan ang abilidad sa pagdagan sa Web, usa ka API sa kliyente, usa ka API alang sa pagdumala sa multithreading, usa ka librarya alang sa paghimo sa usa ka user interface, usa ka API alang sa paggamit sa imong kaugalingong mga shaders, suporta sa tingog, pagkarga ug pagtipig. Ang mga sangkap sa ECS (Entity Component System), pag-reload sa mga kahinguhaan sa langaw, awtomatikong pag-scale sa server, editor alang sa kolaborasyon nga paghimo sa mga mapa sa dula ug mga eksena sa dula.



Source: opennet.ru

Idugang sa usa ka comment