Pirmasis atvirojo „Ambient“ kelių žaidėjų žaidimo variklio leidimas

Po metų kūrimo pristatoma pirmoji naujojo atvirojo kodo žaidimų variklio „Ambient“ versija. Variklis suteikia vykdymo laiką kuriant kelių žaidėjų žaidimus ir 3D programas, kurios kompiliuojamos į WebAssembly atvaizdą ir naudoja WebGPU API atvaizdavimui. Kodas parašytas Rust ir platinamas pagal MIT licenciją.

Pagrindinis „Ambient“ kūrimo tikslas yra pateikti įrankius, kurie supaprastintų kelių žaidėjų žaidimų kūrimą ir jų kūrimą nebūtų sudėtingesni už vieno žaidėjo projektus. Iš pradžių variklio tikslas yra sukurti universalų vykdymo laiką, palaikantį žaidimų ir programų kūrimą bet kokiomis programavimo kalbomis, kurias galima kompiliuoti į tarpinį „WebAssembly“ kodą. Tačiau pirmasis leidimas kol kas palaiko tik Rust plėtrą.

Pagrindinės naujojo variklio savybės:

  • Skaidrus tinklo palaikymas. Variklis sujungia kliento ir serverio funkcijas, suteikia visus reikalingus komponentus kliento ir serverio logikai sukurti ir automatiškai sinchronizuoja serverio būseną tarp klientų. Kliento ir serverio pusėse naudojamas bendras duomenų modelis, kuris supaprastina kodo perdavimą tarp užpakalinės ir priekinės sistemos.
  • Kiekvieno modulio paleidimas atskiroje izoliuotoje aplinkoje, leidžiantis apriboti nepatikimo kodo įtaką. Modulio gedimas nesugriauna visos programos.
  • Į duomenis orientuota architektūra. Duomenų modelio, pagrįsto komponentų, kuriuos gali valdyti kiekvienas WASM modulis, sistema. Naudojant ECS (Entity Component System) projektavimo modelį. Visų komponentų duomenų saugojimas centralizuotoje duomenų bazėje serveryje, kurios būsena automatiškai atkartojama klientui, kuris iš savo pusės gali išplėsti duomenis atsižvelgdamas į vietinę būseną.
  • Galimybė kurti aplinkos modulius bet kuria programavimo kalba, kuri kompiliuojama į WebAssembly (kol kas palaikoma tik Rust).
  • Universalių vykdomųjų failų generavimas kaip išvestis, kuri gali veikti „Windows“, „MacOS“ ir „Linux“ bei veikti kaip klientas ir serveris.
  • Gebėjimas apibrėžti savo komponentus ir „sąvokas“ (komponentų rinkinius). Projektai, kuriuose naudojami tie patys komponentai ir koncepcijos, leidžia perkelti ir dalytis duomenimis, net jei duomenys nėra specialiai sukurti naudoti konkrečiuose projektuose.
  • Įvairių formatų išteklių, įskaitant .glb ir .fbx, kompiliavimo palaikymas. Galimybė srautiniu būdu atsisiųsti išteklius per tinklą - klientas gali gauti visus reikiamus resursus prisijungdamas prie serverio (galite pradėti žaisti nelaukdami, kol visi ištekliai bus įkelti). Palaiko FBX ir glTF modelių formatus, įvairius garso ir vaizdo formatus.
  • Pažangi atvaizdavimo sistema, kuri naudoja GPU, kad pagreitintų atvaizdavimą, ir palaiko GPU pusės iškarpymą bei detalumo lygio pakeitimus. Pagal numatytuosius nustatymus naudojamas fiziškai pagrįstas atvaizdavimas (PBR), palaiko animaciją ir pakopinius šešėlinius žemėlapius.
  • Fizinių procesų modeliavimo palaikymas, pagrįstas PhysX varikliu.
  • Sistema, skirta kurti vartotojo sąsajas, panašias į React.
  • Vieninga įvesties sistema, nepriklausoma nuo dabartinės platformos.
  • Erdvinė garso sistema su prijungiamais filtrais.

Kūrimas vis dar yra alfa versijos stadijoje. Tarp dar neįdiegtų funkcijų galime paminėti galimybę veikti internete, kliento API, daugiagijų valdymo API, vartotojo sąsajos kūrimo biblioteką, API, skirtą naudoti savo šešėlius, garso palaikymą, įkėlimą ir išsaugojimą. ECS (Entity Component System) komponentai, išteklių perkrovimas skrydžio metu, automatinis serverio mastelio keitimas, rengyklė, skirta bendrai žaidimų žemėlapių ir žaidimų scenų kūrimui.



Šaltinis: opennet.ru

Добавить комментарий