Pirmā atvērtā pirmkoda vairāku spēlētāju spēļu dzinēja Ambient izlaidums

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

Pievieno komentāru