Primo rilascio del motore di gioco multiplayer open source Ambient

Dopo un anno di sviluppo, viene presentato il primo rilascio del nuovo motore di gioco open source Ambient. Il motore fornisce un runtime per la creazione di giochi multiplayer e applicazioni 3D, compilabili in WebAssembly e che utilizzano l'API WebGPU per il rendering. Il codice è scritto in linguaggio Rust e distribuito con licenza MIT.

L'obiettivo principale nello sviluppo di Ambient è fornire strumenti che semplifichino la creazione di giochi multiplayer, rendendo la loro realizzazione non più complessa di quella dei progetti single-player. Il motore è inizialmente focalizzato sulla creazione di un runtime universale, che supporti lo sviluppo di giochi e applicazioni in qualsiasi linguaggio di programmazione, per i quali è possibile la compilazione in codice intermedio WebAssembly. Tuttavia, nel primo rilascio è attualmente implementato solo il supporto per lo sviluppo in Rust.

Caratteristiche chiave del nuovo motore:

  • Supporto trasparente per le interazioni di rete. Il motore combina le funzioni di client e server, fornendo tutti i componenti necessari per creare la logica client e server e sincronizzando automaticamente lo stato del server sui client. Sul lato client e server viene utilizzato un modello dati condiviso, il che semplifica il trasferimento del codice tra backend e frontend.
  • Esecuzione di ciascun modulo nel proprio ambiente isolato, che consente di limitare l'impatto del codice non fidato. Un arresto anomalo di un modulo non porta all'arresto anomalo dell'intera applicazione.
  • Architettura orientata ai dati. Fornitura di un modello di dati basato su un sistema di componenti, che può essere manipolato da ciascun modulo WASM. Utilizzo del pattern di design ECS (Entity Component System). Memorizzazione dei dati di tutti i componenti in un database centralizzato, server, il cui stato viene automaticamente replicato al client, il quale può estendere i dati in base allo stato locale.
  • Possibilità di creare moduli Ambient in qualsiasi linguaggio di programmazione, compilabili in WebAssembly (attualmente è supportato solo Rust).
  • Generazione di file eseguibili universali in uscita, che possono essere eseguiti su Windows, macOS e Linux, funzionando sia come client che come server.
  • Possibilità di definire componenti e "concetti" (collezioni di componenti) propri. Nei progetti che utilizzano componenti e concetti identici, vengono garantiti la portabilità e la condivisione dei dati, anche se questi dati non sono appositamente progettati per essere utilizzati in progetti specifici.
  • Supporto per la compilazione di risorse in vari formati, inclusi .glb e .fbx. Possibilità di streaming di risorse tramite rete: il client può ricevere tutte le risorse necessarie collegandosi al server (è possibile iniziare a giocare senza dover aspettare che tutte le risorse siano caricate). Sono supportati i formati dei modelli FBX e glTF, così come diversi formati audio e grafici.
  • Sistema avanzato di rendering, che utilizza la GPU per accelerare l'output e supporta l'implementazione del culling per zona di visibilità e il cambiamento dei livelli di dettaglio lato GPU. Utilizzo di rendering fisicamente corretto (PBR) per impostazione predefinita, supporto per l'animazione e le shadow map a cascata.
  • Supporto per la simulazione di processi fisici basata sul motore PhysX.
  • Sistema di costruzione delle interfacce utente simile a React.
  • Sistema di input unificato, indipendente dalla piattaforma corrente.
  • Sistema audio spaziale con filtri plugin.

Lo sviluppo è ancora in fase alpha. Tra le funzionalità non ancora implementate, si segnala la possibilità di avviare in Web, API client, API per la gestione del multithreading, libreria per la creazione di interfacce utente, API per l’utilizzo di shader personalizzati, supporto audio, caricamento e salvataggio di componenti ECS (Entity Component System), ricarica delle risorse in tempo reale, ridimensionamento automatico. server, editor per la creazione collaborativa di mappe di gioco e scene di gioco.

Guarda il video


Fonte: opennet.ru
Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster