Lëshimi i parë i motorit të lojërave me shumë lojtarë me burim të hapur Ambient

Pas një viti zhvillimi, prezantohet lëshimi i parë i motorit të ri të lojërave me burim të hapur Ambient. Motori ofron një kohë funksionimi për krijimin e lojërave me shumë lojtarë dhe aplikacioneve 3D që përpilohen në një përfaqësim WebAssembly dhe përdorin API-në WebGPU për paraqitje. Kodi është shkruar në Rust dhe shpërndahet nën licencën MIT.

Një qëllim kryesor në zhvillimin e Ambient është të ofrojë mjete që thjeshtojnë zhvillimin e lojërave me shumë lojtarë dhe e bëjnë krijimin e tyre jo më të vështirë sesa projektet me një lojtar. Motori fillimisht synon të krijojë një kohë funksionimi universal që mbështet zhvillimin e lojërave dhe aplikacioneve në çdo gjuhë programimi për të cilën është i mundur përpilimi në kodin e ndërmjetëm WebAssembly. Sidoqoftë, versioni i parë mbështet vetëm zhvillimin e Rust për momentin.

Karakteristikat kryesore të motorit të ri:

  • Mbështetje transparente e rrjeteve. Motori kombinon funksionet e klientit dhe serverit, siguron të gjithë komponentët e nevojshëm për krijimin e logjikës së klientit dhe serverit dhe sinkronizon automatikisht gjendjen e serverit midis klientëve. Një model i zakonshëm i të dhënave përdoret në anët e klientit dhe serverit, i cili thjeshton transferimin e kodit midis pjesës së pasme dhe frontendit.
  • Drejtimi i çdo moduli në mjedisin e tij të izoluar, duke ju lejuar të kufizoni ndikimin e kodit të pabesueshëm. Përplasja e një moduli nuk rrëzon të gjithë aplikacionin.
  • Arkitektura e orientuar drejt të dhënave. Sigurimi i një modeli të dhënash të bazuar në një sistem komponentësh që mund të manipulohen nga secili modul WASM. Përdorimi i modelit të projektimit ECS (Entity Component System). Ruajtja e të dhënave të të gjithë komponentëve në një bazë të dhënash të centralizuar në server, gjendja e të cilit përsëritet automatikisht te klienti, i cili nga ana e tij mund të zgjerojë të dhënat duke marrë parasysh gjendjen lokale.
  • Aftësia për të krijuar module Ambient në çdo gjuhë programimi që përpilohet në WebAssembly (për momentin mbështetet vetëm Rust).
  • Gjenerimi i skedarëve të ekzekutueshëm universal si dalje që mund të funksionojnë në Windows, macOS dhe Linux dhe të funksionojnë si klient dhe server.
  • Aftësia për të përcaktuar komponentët dhe "konceptet" tuaja (koleksionet e komponentëve). Projektet që përdorin të njëjtat komponentë dhe koncepte mundësojnë transportueshmëri dhe ndarje të të dhënave, edhe nëse të dhënat nuk janë krijuar posaçërisht për përdorim në projekte specifike.
  • Mbështetje për përpilimin e burimeve në formate të ndryshme, duke përfshirë .glb dhe .fbx. Mundësia e shkarkimit të burimeve përmes rrjetit - klienti mund të marrë të gjitha burimet e nevojshme kur lidhet me serverin (mund të filloni të luani pa pritur që të gjitha burimet të ngarkohen). Mbështet formatet e modelit FBX dhe glTF, formate të ndryshme audio dhe imazhi.
  • Një sistem i avancuar i interpretimit që përdor GPU-në për të përshpejtuar paraqitjen dhe mbështet prerjen nga ana e GPU-së dhe ndryshimet e nivelit të detajeve. Përdor paraqitjen e bazuar fizikisht (PBR) si parazgjedhje, mbështet animacionin dhe hartat e hijeve kaskadë.
  • Mbështetje për simulimin e proceseve fizike bazuar në motorin PhysX.
  • Një sistem për ndërtimin e ndërfaqeve të përdoruesit të ngjashëm me React.
  • Një sistem i unifikuar i hyrjes që është i pavarur nga platforma aktuale.
  • Sistemi i zërit hapësinor me filtra plug-in.

Zhvillimi është ende në fazën e versionit alfa. Ndër funksionalitetet ende të pazbatuara, mund të vëmë re aftësinë për të ekzekutuar në ueb, një API klienti, një API për menaxhimin e multithreading, një bibliotekë për krijimin e një ndërfaqeje përdoruesi, një API për përdorimin e shaderëve tuaj, mbështetjen e zërit, ngarkimin dhe ruajtjen Komponentët ECS (Entity Component System), rimbushja e burimeve në fluturim, shkallëzimi automatik i serverit, redaktues për krijimin e përbashkët të hartave të lojërave dhe skenave të lojës.



Burimi: opennet.ru

Shto një koment