Primer llançament del motor de jocs multijugador obert Ambient

Després d'un any de desenvolupament, es presenta la primera versió del nou motor de jocs de codi obert Ambient. El motor proporciona un temps d'execució per crear jocs multijugador i aplicacions 3D que es compilen en una representació WebAssembly i utilitzen l'API WebGPU per a la representació. El codi està escrit en Rust i es distribueix sota la llicència MIT.

Un objectiu clau en el desenvolupament d'Ambient és oferir eines que simplifiquen el desenvolupament de jocs multijugador i que la seva creació no sigui més difícil que els projectes per a un sol jugador. El motor està inicialment dirigit a crear un temps d'execució universal que admeti el desenvolupament de jocs i aplicacions en qualsevol llenguatge de programació per als quals sigui possible la compilació en codi intermedi WebAssembly. Tanmateix, la primera versió només admet el desenvolupament de Rust fins ara.

Característiques principals del nou motor:

  • Suport transparent per al treball en xarxa. El motor combina les funcions d'un client i un servidor, proporciona tots els components necessaris per crear la lògica de client i servidor i sincronitza automàticament l'estat del servidor als clients. S'utilitza un model de dades comú al costat del client i del servidor, cosa que facilita la transferència de codi entre el backend i el frontend.
  • Executeu cada mòdul en el seu propi entorn aïllat per limitar l'impacte del codi no fiable. El bloqueig d'un mòdul no fa que es bloquegi tota l'aplicació.
  • Arquitectura orientada a dades. Proporcionar un model de dades basat en un sistema de components que cada WASM pot manipular. Utilitzant el patró de disseny ECS (Entity Component System). Emmagatzemar les dades de tots els components en una base de dades centralitzada al servidor, l'estat de la qual es replica automàticament al client, que al seu costat pot ampliar les dades tenint en compte l'estat local.
  • La possibilitat de crear mòduls Ambient en qualsevol llenguatge de programació que es compile a WebAssembly (fins ara només s'admet Rust).
  • Generació de fitxers executables universals de sortida que es poden executar a Windows, macOS i Linux, i funcionar com a client i servidor.
  • Capacitat de definir els vostres propis components i "conceptes" (col·leccions de components). Els projectes que utilitzen els mateixos components i conceptes garanteixen que les dades siguin portàtils i compartides, encara que les dades no estiguin dissenyades específicament per al seu ús en projectes específics.
  • Suport per compilar recursos en diferents formats, com ara .glb i .fbx. La capacitat de transmetre recursos a través de la xarxa: el client pot obtenir tots els recursos necessaris quan es connecta al servidor (podeu començar a jugar sense esperar que es carreguin tots els recursos). S'admeten els formats de model FBX i glTF, diversos formats de so i imatge.
  • Un sistema de renderització avançat que utilitza la GPU per accelerar la renderització i admet el retall de la GPU i els LOD. Utilitzant la representació basada físicament (PBR) per defecte, suport per a l'animació i els mapes d'ombres en cascada.
  • Suport per a la simulació de processos físics basats en el motor PhysX.
  • Sistema de creació d'interfície d'usuari semblant a la reacció.
  • Sistema d'entrada unificat independent de la plataforma actual.
  • Sistema de so espacial amb filtres endollables.

El desenvolupament encara es troba en l'etapa alfa. De la funcionalitat encara no implementada, podem destacar la possibilitat d'executar-se a la web, l'API client, l'API per gestionar multithreading, la biblioteca per crear la interfície d'usuari, l'API per utilitzar els vostres propis shaders, suport de so, càrrega i desament. Components ECS (Entity Component System), recursos de recàrrega sobre la marxa, escalat automàtic de servidors, un editor per a la creació conjunta de mapes de joc i escenes de joc.



Font: opennet.ru

Afegeix comentari