Prima versione di u mutore di ghjocu multiplayer open source Ambient

Dopu un annu di sviluppu, a prima versione di u novu mutore di ghjocu open source Ambient hè presentata. U mutore furnisce un runtime per creà ghjochi multiplayer è applicazioni 3D chì compilanu à una rappresentanza WebAssembly è utilizate l'API WebGPU per rendering. U codice hè scrittu in Rust è hè distribuitu sottu a licenza MIT.

Un scopu chjave in u sviluppu di l'Ambiente hè di furnisce strumenti chì simplificà u sviluppu di ghjochi multiplayer è rende a so creazione micca più difficiuli di i prughjetti unicu. U mutore hè inizialmente destinatu à creà un runtime universale chì sustene u sviluppu di ghjochi è applicazioni in qualsiasi linguaggi di prugrammazione per quale a compilazione in u codice intermediu WebAssembly hè pussibule. Tuttavia, a prima versione supporta solu u sviluppu di Rust per ora.

Funzioni chjave di u novu mutore:

  • Supportu di rete trasparente. U mutore combina funzioni di u cliente è di u servitore, furnisce tutti i cumpunenti necessarii per creà a logica di u cliente è di u servitore, è sincronizza automaticamente u statu di u servitore à traversu i clienti. Un mudellu di dati cumuni hè utilizatu nantu à i lati di u cliente è di u servitore, chì simplifica u trasferimentu di codice trà u backend è u frontend.
  • Eseguisce ogni modulu in u so propiu ambientu isolatu, chì vi permette di limità l'influenza di u codice micca affidabile. Crashing un modulu ùn falla micca l'intera applicazione.
  • Architettura orientata à i dati. Furnisce un mudellu di dati basatu annantu à un sistema di cumpunenti chì pò esse manipulatu da ogni modulu WASM. Utilizà u mudellu di disignu ECS (Entity Component System). Almacenà e dati di tutti i cumpunenti in una basa di dati centralizata nantu à u servitore, u statu di quale hè automaticamente replicatu à u cliente, chì da u so latu pò espansione e dati in cunsiderà u statu lucale.
  • Capacità di creà moduli Ambient in ogni lingua di prugrammazione chì compila à WebAssembly (solu Rust hè supportatu per avà).
  • Generazione di fugliali eseguibili universali cum'è output chì pò eseguisce in Windows, macOS è Linux, è funziona cum'è client è servitore.
  • Capacità di definisce i vostri cumpunenti è "cuncetti" (cullizzioni di cumpunenti). I prughjetti chì utilizanu i stessi cumpunenti è cuncetti permettenu a portabilità è a spartera di dati, ancu s'ellu ùn hè micca specificamente pensatu per l'usu in prughjetti specifichi.
  • Supportu per a compilazione di risorse in diversi formati, cumprese .glb è .fbx. Possibilità di scaricamentu in streaming di risorse nantu à a reta - u cliente pò riceve tutte e risorse necessarie quandu si cunnetta à u servitore (pudete principià à ghjucà senza aspittà chì tutte e risorse per carica). Supporta i furmati di mudelli FBX è glTF, diversi formati audio è imagine.
  • Un sistema di rendering avanzatu chì usa a GPU per accelerà u rendering è supporta u clipping GPU-side è i cambiamenti di livellu di dettagliu. Utilizà u rendering basatu fisicu (PBR) per difettu, supporta l'animazione è e carte d'ombra in cascata.
  • Supportu per a simulazione di prucessi fisichi basati nantu à u mutore PhysX.
  • Un sistema per custruisce interfacce d'utilizatori simili à React.
  • Un sistema di input unificatu chì hè indipendente da a piattaforma attuale.
  • Sistema di sonu spaziale cù filtri plug-in.

U sviluppu hè sempre in u stadiu di versione alfa. Trà e funziunalità micca ancu implementate, pudemu nutà a capacità di eseguisce nantu à u Web, una API di cliente, una API per a gestione di multithreading, una biblioteca per creà una interfaccia d'utilizatore, una API per utilizà i vostri propri shaders, supportu di sonu, carica è salvate. Cumpunenti ECS (Entity Component System), ricaricamentu di risorse à a mosca, scala automatica di u servitore, editore per a creazione cullaburazione di carte di ghjocu è scene di ghjocu.



Source: opennet.ru

Add a comment