Ambient, en open source multiplayer-spilmotor

Ambient

Ambient er en runtime til at skabe højtydende multiplayer-spil og 3D-applikationer, drevet af WebAssembly, Rust og WebGPU.

Efter et års udvikling, se afslørede den første udgivelse af den nye open source-spilmotor omgivende. Motoren giver en runtime til at skabe multiplayer-spil og 3D-applikationer som er kompileret til en WebAssembly-repræsentation og bruger WebGPU API til gengivelse.

Et centralt mål i udviklingen af ​​Ambient er at levere værktøjer, der forenkler udviklingen af ​​multiplayer-spil og gør deres skabelse ikke sværere end singleplayer-projekter.

Motoren sigter i første omgang på at skabe en universel runtime, der understøtter spil- og applikationsudvikling i ethvert programmeringssprog, hvor kompilering til mellemliggende WebAssembly-kode er mulig. Den første version understøtter dog kun Rust-udvikling indtil videre.

Om Ambient

Af de egenskaber, der skiller sig ud fra Ambient, nævnes det har gennemsigtig understøttelse af netværk. Motoren kombinerer funktionerne fra en klient og en server, leverer alle de nødvendige komponenter til at skabe klient- og serverlogik og synkroniserer automatisk serverstatus på klienter.

Det nævnes også, at der anvendes en fælles datamodel på klient- og serversiden, hvilket gør det nemt at overføre kode mellem backend og frontend. Det kører hvert modul i sit eget isolerede miljø for at begrænse virkningen af ​​kode, der ikke er tillid til, og nedbrud af ét modul nedbryder ikke hele applikationen.

Ambient, caDet har en dataorienteret arkitektur, derved tilvejebringes en datamodel baseret på et system af komponenter, som hver WASM kan manipulere. Brug af ECS (Entity Component System) designmønster.

Ud over det også gemmer data for alle komponenter i en centraliseret database på serverenr, hvis tilstand automatisk replikeres til klienten, hvilket igen kan udvide dataene under hensyntagen til lokal tilstand.

Evnen til at oprette Ambient-moduler i et hvilket som helst programmeringssprog, der kompilerer til WebAssembly (indtil videre er kun Rust understøttet), mens der genereres universelle eksekverbare outputfiler, kan køre på Windows, macOS og Linux og fungere som klient og som server.

På den anden side fremhæves det ogsåhar evnen til at definere sine egne komponenter og "koncepter" (samlinger af komponenter). Projekter, der bruger de samme komponenter og koncepter, sikrer, at data er portable og deles, selvom dataene ikke er specifikt designet til brug i specifikke projekter.

Af de andre funktioner, der skiller sig ud fra Ambient:

  • Understøttelse af kompilering af ressourcer i forskellige formater, herunder ".glb" og ".fbx". Mulighed for at streame ressourcer over netværket: Klienten kan få alle de nødvendige ressourcer, når de opretter forbindelse til serveren (du kan begynde at spille uden at vente på, at alle ressourcerne bliver indlæst).
  • FBX- og glTF-modelformater, forskellige lyd- og billedformater understøttes.
  • Et avanceret gengivelsessystem, der bruger GPU'en til at accelerere gengivelsen og understøtter LOD og klipning på GPU-siden.
  • Brug af fysisk baseret rendering (PBR) som standard, understøttelse af animation og overlappende skyggekort.
  • Support til simulering af fysiske processer baseret på PhysX-motoren.
  • React-lignende UI byggesystem.
  • Unified entry system uafhængigt af den aktuelle platform.
  • Rumligt lydsystem med plug-in filtre.
  • Udviklingen er stadig i alfastadiet. Af den funktionalitet, der endnu ikke er implementeret, kan vi bemærke muligheden for at køre på nettet, en klient API, en API til styring af multi-threading, et bibliotek til at skabe en brugergrænseflade, en API til at bruge dine egne shaders, lydunderstøttelse, load og gem
  • ECS-komponenter (Entity Component System), genindlæsning af ressourcer i farten, automatisk serverskalering, en editor til at skabe spilkort og spilscener.

Til sidst, for dem, der er interesseret i at lære mere om det, bør de vide, at koden er skrevet i Rust og er distribueret under MIT-licensen.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.