Ambient, an open source multiplayer game engine

Ambient

Ambient is a runtime for creating high-performance multiplayer games and 3D applications, powered by WebAssembly, Rust, and WebGPU.

After a year of development, se unveiled the first release of the new open source game engine ambient. And motor provides a runtime for creating multiplayer games and 3D applications which are compiled into a WebAssembly representation and use the WebGPU API for rendering.

A key goal in developing Ambient is to provide tools that simplify the development of multiplayer games and make their creation no more difficult than single-player projects.

The engine initially aims to create a universal runtime that supports game and application development in any programming language for which compilation to intermediate WebAssembly code is possible. However, the first version only supports Rust development so far.

About Ambient

Of the characteristics that stand out from Ambient, it is mentioned that has transparent support for networking. The engine combines the functions of a client and a server, provides all the necessary components to create client and server logic, and automatically synchronizes server state on clients.

It is also mentioned that a common data model is used on the client and server sides, which makes it easy to transfer code between the backend and the frontend. It runs each module in its own isolated environment to limit the impact of untrusted code, and crashing one module doesn't crash the entire application.

Ambient, cIt has a data-oriented architecture, thereby providing a data model based on a system of components that each WASM can manipulate. Using the ECS (Entity Component System) design pattern.

In addition to that, also stores the data of all components in a centralized database on the serverr, whose state is automatically replicated to the client, which in turn can extend the data taking local state into account.

The ability to create Ambient modules in any programming language that compiles to WebAssembly (so far only Rust is supported), while generating universal executable output files, can run on Windows, macOS, and Linux, and work as a client and as server.

On the other hand, it is also highlighted thathas the ability to define its own components and “concepts” (collections of components). Projects that use the same components and concepts ensure that data is portable and shared, even if the data is not specifically designed for use in specific projects.

Of the other features that stand out from Ambient:

  • Support for compiling resources in different formats, including ".glb" and ".fbx". Ability to stream resources over the network: the client can get all the necessary resources when connecting to the server (you can start playing without waiting for all the resources to be loaded).
  • FBX and glTF model formats, various sound and image formats are supported.
  • An advanced rendering system that uses the GPU to accelerate rendering and supports GPU-side LOD and clipping.
  • Use of physically based rendering (PBR) by default, support for animation and cascading shadow maps.
  • Support for simulation of physical processes based on the PhysX engine.
  • React-like UI building system.
  • Unified entry system independent of the current platform.
  • Spatial sound system with plug-in filters.
  • Development is still in the alpha stage. Of the functionality not yet implemented, we can note the ability to run on the Web, a client API, an API for managing multi-threading, a library for creating a user interface, an API for using your own shaders, sound support, load and save
  • ECS (Entity Component System) components, reloading resources on the fly, automatic server scaling, an editor to co-create game maps and game scenes.

Finally, for those interested in learning more about it, they should know that the code is written in Rust and is distributed under the MIT license.


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: AB Internet Networks 2008 SL
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.