Ensimmäinen julkaisu avoimesta Ambient-moninpelimoottorista

Vuoden kehitystyön jälkeen uuden avoimen lähdekoodin pelimoottorin Ambient ensimmäinen julkaisu esitellään. Moottori tarjoaa suoritusajan moninpelien ja 3D-sovellusten rakentamiseen, jotka kääntävät WebAssembly-esitykseen ja käyttävät WebGPU-sovellusliittymää renderöimiseen. Koodi on kirjoitettu Rust-kielellä ja jaettu MIT-lisenssillä.

Keskeinen tavoite Ambientin kehittämisessä on tarjota työkaluja, jotka yksinkertaistavat moninpelien kehitystä ja tekevät niiden luomisesta sen vaikeampaa kuin yksinpeliprojekteja. Moottorin tarkoituksena on alun perin luoda universaali ajonaika, joka tukee pelien ja sovellusten kehitystä kaikilla ohjelmointikielillä, joiden kääntäminen WebAssembly-välikoodiksi on mahdollista. Ensimmäinen julkaisu tukee kuitenkin toistaiseksi vain Rust-kehitystä.

Uuden moottorin tärkeimmät ominaisuudet:

  • Läpinäkyvä tuki verkostoitumiselle. Moottori yhdistää asiakkaan ja palvelimen toiminnot, tarjoaa kaikki tarvittavat komponentit asiakas- ja palvelinlogiikan luomiseen ja synkronoi automaattisesti palvelimen tilan asiakaskoneissa. Asiakas- ja palvelinpuolella käytetään yhteistä tietomallia, mikä tekee koodin siirtämisestä helppoa tausta- ja käyttöliittymän välillä.
  • Suorita jokainen moduuli omassa eristetyssä ympäristössään rajoittaaksesi epäluotettavan koodin vaikutusta. Moduulin kaatuminen ei aiheuta koko sovelluksen kaatumista.
  • Data-suuntautunut arkkitehtuuri. Tietomallin tarjoaminen, joka perustuu komponenttijärjestelmään, jota jokainen WASM voi käsitellä. ECS (Entity Component System) -suunnittelumallin käyttäminen. Kaikkien komponenttien tietojen tallentaminen keskitettyyn tietokantaan palvelimella, jonka tila replikoituu automaattisesti asiakkaalle, joka puolestaan ​​voi laajentaa tietoja paikallisen tilan huomioon ottaen.
  • Mahdollisuus luoda Ambient-moduuleja millä tahansa ohjelmointikielellä, joka käännetään WebAssemblyyn (toistaiseksi tuetaan vain Rustia).
  • Universaalisten suoritettavien tiedostojen luominen, jotka voivat toimia Windowsissa, macOS:ssä ja Linuxissa ja toimia sekä asiakkaana että palvelimena.
  • Kyky määritellä omia komponentteja ja "konsepteja" (komponenttikokoelmia). Samoja komponentteja ja konsepteja käyttävät projektit varmistavat, että data on siirrettävissä ja jaettu, vaikka dataa ei ole erityisesti suunniteltu käytettäväksi tietyissä projekteissa.
  • Tuki resurssien kokoamiseen eri muodoissa, mukaan lukien .glb ja .fbx. Mahdollisuus suoratoistaa resursseja verkon yli - asiakas voi saada kaikki tarvittavat resurssit ollessaan yhteydessä palvelimeen (voit aloittaa pelaamisen odottamatta kaikkien resurssien latautumista). FBX- ja glTF-malliformaatteja, erilaisia ​​ääni- ja kuvaformaatteja tuetaan.
  • Edistyksellinen renderöintijärjestelmä, joka käyttää GPU:ta renderöinnin nopeuttamiseen ja tukee GPU-puolen leikkausta ja LOD:ia. Fyysisesti perustuvan renderoinnin (PBR) käyttö oletuksena, animaatioiden ja peräkkäisten varjokarttojen tuki.
  • Tuki fyysisten prosessien simulointiin PhysX-moottoriin perustuen.
  • React-tyyppinen käyttöliittymärakennusjärjestelmä.
  • Nykyisestä alustasta riippumaton yhtenäinen syöttöjärjestelmä.
  • Tilaäänijärjestelmä plug-in suodattimilla.

Kehitys on vielä alfa-vaiheessa. Toiminnoista, joita ei ole vielä toteutettu, voidaan huomioida kyky toimia verkossa, asiakassovellusliittymä, monisäikeisen hallinnan API, käyttöliittymän luomiseen tarkoitettu kirjasto, sovellusliittymä omien varjostimien käyttämiseen, äänituki, lataus ja tallennus. ECS (Entity Component System) -komponentit, resurssien uudelleenlataus lennossa, palvelinten automaattinen skaalaus, editori pelikarttojen ja pelikohtausten yhteisluomiseen.



Lähde: opennet.ru

Lisää kommentti