Ambient, un motore di gioco multiplayer open source

Ambientale

Ambient è un runtime per la creazione di giochi multiplayer ad alte prestazioni e applicazioni 3D, basato su WebAssembly, Rust e WebGPU.

Dopo un anno di sviluppo, se ha svelato la prima versione del nuovo motore di gioco open source Ambiente. Il motore fornisce un runtime per la creazione di giochi multiplayer e applicazioni 3D che vengono compilati in una rappresentazione WebAssembly e utilizzano l'API WebGPU per il rendering.

Un obiettivo chiave nello sviluppo di Ambient è fornire strumenti che semplifichino lo sviluppo di giochi multiplayer e rendano la loro creazione non più difficile dei progetti per giocatore singolo.

Il motore mira inizialmente a creare un runtime universale che supporti lo sviluppo di giochi e applicazioni in qualsiasi linguaggio di programmazione per il quale sia possibile la compilazione in codice WebAssembly intermedio. Tuttavia, finora la prima versione supporta solo lo sviluppo di Rust.

A proposito di Ambiente

Delle caratteristiche che si distinguono da Ambient, si dice che ha un supporto trasparente per il networking. Il motore combina le funzioni di un client e di un server, fornisce tutti i componenti necessari per creare la logica client e server e sincronizza automaticamente lo stato del server sui client.

Si dice anche che un modello di dati comune viene utilizzato sui lati client e server, che semplifica il trasferimento del codice tra il back-end e il front-end. Esegue ogni modulo nel proprio ambiente isolato per limitare l'impatto del codice non attendibile e l'arresto anomalo di un modulo non provoca l'arresto anomalo dell'intera applicazione.

Ambiente, cHa un'architettura orientata ai dati, fornendo così un modello di dati basato su un sistema di componenti che ogni WASM può manipolare. Utilizzo del modello di progettazione ECS (Entity Component System).

Oltre a questo, anche memorizza i dati di tutti i componenti in un database centralizzato sul serverr, il cui stato viene replicato automaticamente al client, che a sua volta può estendere i dati tenendo conto dello stato locale.

La possibilità di creare moduli Ambient in qualsiasi linguaggio di programmazione compilabile in WebAssembly (finora è supportato solo Rust), generando file di output eseguibili universali, può essere eseguito su Windows, macOS e Linux e funzionare come client e come server.

D'altra parte, è anche evidenziato cheha la capacità di definire i propri componenti e “concetti” (raccolte di componenti). I progetti che utilizzano gli stessi componenti e concetti assicurano che i dati siano portabili e condivisi, anche se i dati non sono specificamente progettati per l'uso in progetti specifici.

Delle altre caratteristiche che si distinguono da Ambient:

  • Supporto per la compilazione di risorse in diversi formati, inclusi ".glb" e ".fbx". Capacità di trasmettere risorse sulla rete: il client può ottenere tutte le risorse necessarie quando si connette al server (puoi iniziare a giocare senza attendere il caricamento di tutte le risorse).
  • Sono supportati i formati del modello FBX e glTF, vari formati audio e di immagine.
  • Un sistema di rendering avanzato che utilizza la GPU per accelerare il rendering e supporta LOD e clipping lato GPU.
  • Uso del rendering basato sulla fisica (PBR) per impostazione predefinita, supporto per animazioni e mappe delle ombre a cascata.
  • Supporto per la simulazione di processi fisici basati sul motore PhysX.
  • Sistema di costruzione dell'interfaccia utente simile a React.
  • Sistema di ingresso unificato indipendente dalla piattaforma attuale.
  • Sistema audio spaziale con filtri plug-in.
  • Lo sviluppo è ancora in fase alpha. Delle funzionalità non ancora implementate, possiamo notare la possibilità di eseguire sul Web, un'API client, un'API per la gestione del multi-threading, una libreria per la creazione di un'interfaccia utente, un'API per l'utilizzo dei propri shader, supporto audio, caricamento e salva
  • Componenti ECS (Entity Component System), ricarica delle risorse al volo, ridimensionamento automatico del server, un editor per co-creare mappe e scene di gioco.

Infine, per chi fosse interessato a saperne di più, sappia che il codice è scritto in Rust e lo è distribuito con licenza MIT.


Puoi essere il primo a lasciare un commento

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.