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