PÄc gada izstrÄdes tiek prezentÄts pirmais jaunÄ atvÄrtÄ pirmkoda spÄļu dzinÄja Ambient laidiens. DzinÄjs nodroÅ”ina izpildlaiku vairÄku spÄlÄtÄju spÄļu un 3D lietojumprogrammu izveidei, kas tiek kompilÄtas WebAssembly attÄlojumÄ un renderÄÅ”anai izmanto WebGPU API. Kods ir rakstÄ«ts Rust un tiek izplatÄ«ts saskaÅÄ ar MIT licenci.
Ambient izstrÄdes galvenais mÄrÄ·is ir nodroÅ”inÄt rÄ«kus, kas vienkÄrÅ”o vairÄku spÄlÄtÄju spÄļu izstrÄdi un padara to izveidi ne sarežģītÄku par viena spÄlÄtÄja projektiem. SÄkotnÄji dzinÄja mÄrÄ·is ir izveidot universÄlu izpildlaiku, kas atbalsta spÄļu un lietojumprogrammu izstrÄdi jebkurÄ programmÄÅ”anas valodÄ, kurÄm ir iespÄjama kompilÄcija WebAssembly starpkodÄ. TomÄr pirmais laidiens atbalsta tikai Rust attÄ«stÄ«bu.
GalvenÄs jaunÄ dzinÄja Ä«paŔības:
- CaurspÄ«dÄ«gs tÄ«kla atbalsts. DzinÄjs apvieno klienta un servera funkcijas, nodroÅ”ina visus nepiecieÅ”amos komponentus klienta un servera loÄ£ikas izveidei un automÄtiski sinhronizÄ servera stÄvokli starp klientiem. Klienta un servera pusÄ tiek izmantots kopÄ«gs datu modelis, kas vienkÄrÅ”o koda pÄrsÅ«tÄ«Å”anu starp aizmugursistÄmu un priekÅ”galu.
- Katra moduļa palaiÅ”ana atseviÅ”Ä·Ä izolÄtÄ vidÄ, ļaujot ierobežot neuzticama koda ietekmi. Moduļa avÄrija neizraisa visas lietojumprogrammas avÄriju.
- Uz datiem orientÄta arhitektÅ«ra. Datu modeļa nodroÅ”inÄÅ”ana, pamatojoties uz komponentu sistÄmu, ar kuru var manipulÄt katrs WASM modulis. Izmantojot ECS (Entity Component System) projektÄÅ”anas modeli. Visu komponentu datu glabÄÅ”ana centralizÄtÄ datu bÄzÄ uz servera, kuras stÄvoklis tiek automÄtiski replicÄts klientam, kurÅ” savÄ pusÄ var paplaÅ”inÄt datus, Åemot vÄrÄ vietÄjo stÄvokli.
- IespÄja izveidot Ambient moduļus jebkurÄ programmÄÅ”anas valodÄ, kas tiek kompilÄta WebAssembly (pagaidÄm tiek atbalstÄ«ta tikai Rust).
- UniversÄlu izpildÄmo failu Ä£enerÄÅ”ana kÄ izvade, kas var darboties operÄtÄjsistÄmÄs Windows, macOS un Linux un darboties gan kÄ klients, gan kÄ serveris.
- SpÄja definÄt savus komponentus un ājÄdzienusā (komponentu kolekcijas). Projekti, kuros tiek izmantoti tie paÅ”i komponenti un koncepcijas, nodroÅ”ina datu pÄrnesamÄ«bu un koplietoÅ”anu, pat ja dati nav Ä«paÅ”i paredzÄti izmantoÅ”anai konkrÄtos projektos.
- Atbalsts resursu apkopoÅ”anai dažÄdos formÄtos, tostarp .glb un .fbx. IespÄja straumÄt resursu lejupielÄdi pa tÄ«klu ā klients var saÅemt visus nepiecieÅ”amos resursus pieslÄdzoties serverim (var sÄkt spÄlÄt, negaidot visu resursu ielÄdi). Atbalsta FBX un glTF modeļu formÄtus, dažÄdus audio un attÄlu formÄtus.
- Uzlabota renderÄÅ”anas sistÄma, kas izmanto GPU, lai paÄtrinÄtu renderÄÅ”anu, un atbalsta GPU puses izgriezumu un detaļu lÄ«meÅa izmaiÅas. PÄc noklusÄjuma izmanto fiziski pamatotu renderÄÅ”anu (PBR), atbalsta animÄciju un kaskÄdes Änu kartes.
- Atbalsts fizisko procesu simulÄcijai, pamatojoties uz PhysX dzinÄju.
- SistÄma lietotÄja saskarÅu izveidei, kas lÄ«dzÄ«ga React.
- Vienota ievades sistÄma, kas ir neatkarÄ«ga no paÅ”reizÄjÄs platformas.
- TelpiskÄ skaÅas sistÄma ar plug-in filtriem.
IzstrÄde joprojÄm ir alfa versijas stadijÄ. Starp vÄl neieviestajÄm funkcionalitÄtÄm var atzÄ«mÄt iespÄju darboties tÄ«meklÄ«, klienta API, API daudzpavedienu pÄrvaldÄ«bai, bibliotÄku lietotÄja interfeisa izveidei, API savu ÄnotÄju lietoÅ”anai, skaÅas atbalstu, ielÄdi un saglabÄÅ”anu. ECS (Entity Component System) komponenti, resursu pÄrlÄdÄÅ”ana lidojuma laikÄ, automÄtiska servera mÄrogoÅ”ana, redaktors spÄļu karÅ”u un spÄļu ainu kopÄ«gai izveidei.
Avots: opennet.ru