Ambient kode irekiko jokalari anitzeko joko-motorren lehen bertsioa

Urtebeteko garapenaren ondoren, Ambient kode irekiko joko-motor berriaren lehen bertsioa aurkezten da. Motorrak exekuzio-denbora eskaintzen du jokalari anitzeko jokoak eta 3D aplikazioak sortzeko, WebAssembly irudikapen batera konpilatzen direnak eta WebGPU APIa errendatzeko erabiltzen dutenak. Kodea Rust-en idatzita dago eta MIT lizentziapean banatzen da.

Ambient-en garapenean funtsezko helburu bat da jokalari anitzeko jokoen garapena errazten duten tresnak eskaintzea eta haien sorrera jokalari bakarreko proiektuak baino zailagoa izan ez dadin. Motorra hasiera batean WebAssembly bitarteko kodean biltzea posible den edozein programazio lengoaiatan joko eta aplikazioen garapena onartzen duen exekuzio denbora unibertsala sortzera zuzenduta dago. Hala ere, lehen bertsioak Rust garapena soilik onartzen du oraingoz.

Motor berriaren ezaugarri nagusiak:

  • Sareko euskarri gardena. Motorrak bezero eta zerbitzari funtzioak konbinatzen ditu, bezero eta zerbitzari logika sortzeko beharrezko osagai guztiak eskaintzen ditu eta automatikoki sinkronizatzen du zerbitzariaren egoera bezeroen artean. Bezeroaren eta zerbitzariaren aldean datu-eredu komun bat erabiltzen da, eta horrek backend eta frontend arteko kodearen transferentzia errazten du.
  • Modulu bakoitza bere ingurune isolatuan exekutatzea, fidagarritasunik gabeko kodearen eragina mugatu ahal izateko. Modulu bat kraskatzeak ez du aplikazio osoa huts egiten.
  • Datuetara bideratutako arkitektura. WASM modulu bakoitzak manipulatu ditzakeen osagaien sistema batean oinarritutako datu-eredu bat eskaintzea. ECS (Entity Component System) diseinu-eredua erabiliz. Osagai guztien datuak zerbitzarian datu-base zentralizatu batean gordetzea, zeinaren egoera automatikoki erreplikatzen den bezeroari, zeinak bere aldean datuak zabal ditzake tokiko egoera kontuan hartuta.
  • WebAssembly-ra konpilatzen den edozein programazio-lengoaiatan Ambient moduluak sortzeko gaitasuna (oraingo Rust bakarrik onartzen da).
  • Fitxategi exekutagarri unibertsalak sortzea Windows, macOS eta Linux-en exekutatu daitekeen irteera gisa, eta bezero eta zerbitzari gisa funtzionatzeko.
  • Norbere osagaiak eta β€œkontzeptuak” (osagaien bildumak) definitzeko gaitasuna. Osagai eta kontzeptu berdinak erabiltzen dituzten proiektuek eramangarritasuna eta datuak partekatzea ahalbidetzen dute, nahiz eta datuak proiektu zehatzetan erabiltzeko espresuki diseinatuta ez egon.
  • Hainbat formatutako baliabideak biltzeko laguntza, .glb eta .fbx barne. Baliabideak sarean deskargatzeko aukera: bezeroak zerbitzarira konektatzean beharrezko baliabide guztiak jaso ditzake (baliabide guztiak kargatu arte itxaron gabe jolasten has zaitezke). FBX eta glTF eredu formatuak onartzen ditu, hainbat audio eta irudi formatu.
  • Errendatze-sistema aurreratu bat, GPUa errendatzea bizkortzeko erabiltzen duena eta GPUaren alboko mozketa eta xehetasun-mailaren aldaketak onartzen ditu. Fisikoki oinarritutako errendatzea (PBR) erabiltzen du lehenespenez, animazioa eta kaskadako itzal-mapak onartzen ditu.
  • PhysX motorrean oinarritutako prozesu fisikoen simulaziorako laguntza.
  • React-en antzeko erabiltzaile-interfazeak eraikitzeko sistema.
  • Sarrera-sistema bateratua, egungo plataformatik independentea dena.
  • Soinu sistema espaziala plug-in-iragazkiekin.

Garapena alfa bertsioaren fasean dago oraindik. Oraindik inplementatu gabeko funtzionalitateen artean, webean exekutatzeko gaitasuna, bezeroaren API bat, multithreading kudeatzeko API bat, erabiltzaile-interfazea sortzeko liburutegia, zure itzalgailuak erabiltzeko API bat, soinu-laguntza, kargatzea eta gordetzea. ECS ​​(Entity Component System) osagaiak, baliabideak birkargatzea hegan, zerbitzariaren eskalatze automatikoa, joko-mapak eta joko-eszenak elkarlanean sortzeko editorea.



Iturria: opennet.ru

Gehitu iruzkin berria