Unua eldono de la malfermfonta plurludanta ludmaŝino Ambient

Post jaro da evoluo, la unua eldono de la nova malfermkoda ludmaŝino Ambient estas prezentita. La motoro disponigas rultempon por krei plurludantajn ludojn kaj 3D-aplikaĵojn kiuj kompilas al WebAssembly-reprezentantaro kaj uzas la WebGPU API por bildigo. La kodo estas skribita en Rust kaj estas distribuita sub la MIT-licenco.

Ĉefa celo en la evoluo de Ambient estas provizi ilojn kiuj simpligas la disvolviĝon de plurludantaj ludoj kaj faras ilian kreadon ne pli malfacila ol unu-ludantaj projektoj. La motoro komence celas krei universalan rultempon, kiu subtenas la disvolviĝon de ludoj kaj aplikoj en iuj programlingvoj, por kiuj kompilo en la meza kodo de WebAssembly eblas. Tamen, la unua eldono nur subtenas Rust-disvolviĝon nuntempe.

Ĉefaj trajtoj de la nova motoro:

  • Travidebla interreta subteno. La motoro kombinas klientajn kaj servilojn, provizas ĉiujn necesajn komponentojn por krei klientan kaj servilan logikon, kaj aŭtomate sinkronigas la servilan staton tra klientoj. Ofta datummodelo estas uzata ĉe la kliento kaj servilo, kio simpligas la translokigon de kodo inter la backend kaj fasado.
  • Ruli ĉiun modulon en sia propra izolita medio, permesante vin limigi la influon de nefidinda kodo. Frakasi modulon ne frakasas la tutan aplikaĵon.
  • Arkitekturo orientita al datumoj. Disponigante datummodelon bazitan sur sistemo de komponentoj kiuj povas esti manipulitaj per ĉiu WASM-modulo. Uzante la dezajnan ŝablonon ECS (Entity Component System). Stokante la datumojn de ĉiuj komponantoj en centralizita datumbazo sur la servilo, kies stato estas aŭtomate reproduktita al la kliento, kiu siaflanke povas vastigi la datumojn konsiderante la lokan staton.
  • Kapablo krei Ambient-modulojn en iu ajn programlingvo, kiu kompilas al WebAssembly (nur Rust estas subtenata nuntempe).
  • Generante universalajn ruleblajn dosierojn kiel eligo, kiuj povas funkcii en Vindozo, macOS kaj Linukso, kaj funkcii kiel kliento kaj servilo.
  • Kapablo difini viajn proprajn komponantojn kaj "konceptojn" (kolektoj de komponantoj). Projektoj kiuj uzas la samajn komponentojn kaj konceptojn ebligas porteblon kaj kundividon de datenoj, eĉ se la datenoj ne estas specife dizajnitaj por uzo en specifaj projektoj.
  • Subteno por kompili rimedojn en diversaj formatoj, inkluzive .glb kaj .fbx. Ebleco elŝuti resursojn tra la reto - la kliento povas ricevi ĉiujn necesajn rimedojn kiam vi konektas al la servilo (vi povas komenci ludi sen atendi la ŝarĝon de ĉiuj rimedoj). Elportas FBX kaj glTF-modelformatojn, diversajn aŭd- kaj bildformatojn.
  • Altnivela bildiga sistemo, kiu uzas la GPU por akceli bildigon kaj subtenas GPU-flankan tondadon kaj detalnivelajn ŝanĝojn. Uzas fizike bazitan bildigon (PBR) defaŭlte, subtenas animacion kaj kaskadajn ombromapojn.
  • Subteno por simulado de fizikaj procezoj bazitaj sur la PhysX-motoro.
  • Sistemo por konstrui uzantinterfacojn similajn al React.
  • Unuigita enigsistemo kiu estas sendependa de la nuna platformo.
  • Spaca sonsistemo kun aldonaj filtriloj.

La evoluo ankoraŭ estas en la alfa-versia stadio. Inter la ankoraŭ ne efektivigitaj funkcioj, ni povas noti la eblon funkcii en la Reto, klienta API, API por administri multifadenadon, bibliotekon por krei uzantinterfacon, API por uzi viajn proprajn ombrilojn, sonsubtenon, ŝarĝon kaj konservadon. ECS ​​(Entity Component System) komponantoj, reŝargi rimedojn sur la flugo, aŭtomata servilo-skalado, redaktilo por kunlabora kreado de ludmapoj kaj ludscenoj.



fonto: opennet.ru

Aldoni komenton