First release of open multi -user game engine Ambient

After the year of development, the first release of the new open game engine Ambient is presented. The engine provides Runtime for creating multi-user games and 3D applications compiled in the Webassembly representation and using the API WebGPU for drawing. The code is written in Rust and is distributed under the license mit.

Ambient’s key task is called the provision of tools that simplify the development of multiplayer games and make their creation no more complicated than single -user projects. The engine is originally aimed at creating a universal Runtime, which supports the development of games and applications in any programming languages, for which compilation is possible in the interim WebASSEMBLY code. Nevertheless, in the first issue, only support for development in Rust.

has been implemented.

Key features of the new engine:

  • Transparent support for network interaction. The engine combines the functions of a client and server, provides all the necessary components to create client and server logic, and also automatically synchronizes the server state on clients. On the side of the client and the server, the general model of data is used, which simplifies the transfer of code between the backend and frontnd.
  • launch of each module in its isolated environment, which allows you to limit the influence of code that does not deserve confidence. The emergency completion of the module does not lead to the emergency completion of the entire application.
  • Architecture focused on data processing ( data-oriented ). Providing a data model based on a system of components that each WASM module can manipulate. Using the design template eCS (Entity Component System).
    Storage of data of all components in a centralized database on the server, whose condition is automatically replicated to the client, who on its side can expand data taking into account the local state.
  • The possibility of creating Ambient modules in any programming languages ​​compiled in Webassembly (so far only Rust is supported).
  • Formation at the output of universal executable files that can be launched in Windows, MacOS and Linux, and function as a client and server.
  • The ability to determine their own components and “concepts” (collections of components). Projects using the same components and concepts provide tolerance and joint use of data, even if these data are not specifically designed for use in specific projects.
  • Support for compilation of resources in different formats, including .GLB and .FBX. The possibility of streaming resources over the network – the client can get all the necessary resources when connecting to the server (you can start playing without waiting until all resources are loaded).
    Formats of FBX and GLTF models, various sound formats and images are supported.
/Media reports cited above.