Primer lanzamiento del motor de juegos multijugador de código abierto Ambient

Después de un año de desarrollo, se presenta el primer lanzamiento del nuevo motor de juegos de código abierto Ambient. El motor proporciona un tiempo de ejecución para crear juegos multijugador y aplicaciones 3D que se compilan en una representación WebAssembly y utilizan la API WebGPU para renderizar. El código está escrito en Rust y se distribuye bajo licencia MIT.

Un objetivo clave en el desarrollo de Ambient es proporcionar herramientas que simplifiquen el desarrollo de juegos multijugador y hagan que su creación no sea más difícil que los proyectos para un solo jugador. Inicialmente, el motor tiene como objetivo crear un tiempo de ejecución universal que admita el desarrollo de juegos y aplicaciones en cualquier lenguaje de programación para el cual sea posible la compilación en código intermedio WebAssembly. Sin embargo, la primera versión solo admite el desarrollo de Rust por ahora.

Características clave del nuevo motor:

  • Soporte de redes transparente. El motor combina funciones de cliente y servidor, proporciona todos los componentes necesarios para crear lógica de cliente y servidor y sincroniza automáticamente el estado del servidor entre los clientes. Se utiliza un modelo de datos común en el lado del cliente y del servidor, lo que simplifica la transferencia de código entre el backend y el frontend.
  • Ejecutar cada módulo en su propio entorno aislado, lo que le permite limitar la influencia del código no confiable. Bloquear un módulo no bloquea toda la aplicación.
  • Arquitectura orientada a datos. Proporcionar un modelo de datos basado en un sistema de componentes que pueden ser manipulados por cada módulo WASM. Utilizando el patrón de diseño ECS (Entity Component System). Almacenar los datos de todos los componentes en una base de datos centralizada en el servidor, cuyo estado se replica automáticamente al cliente, que por su parte puede ampliar los datos teniendo en cuenta el estado local.
  • Capacidad para crear módulos Ambient en cualquier lenguaje de programación que se compile en WebAssembly (por ahora solo se admite Rust).
  • Generar archivos ejecutables universales como salida que pueden ejecutarse en Windows, macOS y Linux, y funcionar como cliente y servidor.
  • Capacidad para definir sus propios componentes y “conceptos” (colecciones de componentes). Los proyectos que utilizan los mismos componentes y conceptos permiten la portabilidad y el intercambio de datos, incluso si los datos no están diseñados específicamente para su uso en proyectos específicos.
  • Soporte para compilar recursos en varios formatos, incluidos .glb y .fbx. Posibilidad de descargar recursos en streaming a través de la red: el cliente puede recibir todos los recursos necesarios cuando se conecta al servidor (puede empezar a jugar sin esperar a que se carguen todos los recursos). Admite formatos de modelo FBX y glTF, varios formatos de audio e imagen.
  • Un sistema de renderizado avanzado que utiliza la GPU para acelerar el renderizado y admite cambios de nivel de detalle y recorte del lado de la GPU. Utiliza renderizado basado físicamente (PBR) de forma predeterminada, admite animación y mapas de sombras en cascada.
  • Soporte para simulación de procesos físicos basado en el motor PhysX.
  • Un sistema para construir interfaces de usuario similar a React.
  • Un sistema de entrada unificado que es independiente de la plataforma actual.
  • Sistema de sonido espacial con filtros enchufables.

El desarrollo aún se encuentra en la etapa de versión alfa. Entre las funciones aún no implementadas, podemos destacar la capacidad de ejecutarse en la Web, una API de cliente, una API para administrar subprocesos múltiples, una biblioteca para crear una interfaz de usuario, una API para usar sus propios sombreadores, soporte de sonido, cargar y guardar. Componentes ECS (Entity Component System), recarga de recursos sobre la marcha, escalado automático del servidor, editor para la creación colaborativa de mapas y escenas de juegos.



Fuente: opennet.ru

Añadir un comentario