Today we are excited to announce the release of the new Runtime. This follows our previous posts introducing the new Bridge and new Load Balancer. This release includes the new SpatialOS Entity Database (EDB), the final component of the new Runtime, as well as a beta version of a new feature for managing areas of interest, which we call Query-Based Interest (QBI).
We encourage all users to upgrade their projects to the new Runtime today. This new version is more performant-at-scale, more stable across the board and easier to scale. This is also the only way to take advantage of QBI and other features we have in our pipeline. We are initially releasing this as ‘opt-in’, to allow you to test out your projects using the new setup. Soon, we will make this new Runtime the default option for all projects and deprecate the old version, as we focus on new features that build on the new version.
The EDB is a scalable cloud database that stores all of your live entity data and forms the basis of the new Runtime. As with older versions of the Runtime, it enables you to easily add persistence to your games, allowing players to make permanent alterations to the world that remain even after they log out.
The EDB means the new Runtime is capable of supporting a much broader range of games and is easy to scale based on your game’s requirements. It is capable of supporting games of all types and sizes, from smaller match-based games to games with extremely large and detailed seamless worlds and thousands of clients. Since it is easily scalable, it enables you to start with simple or smaller games and ‘grow’ them over time.
It also enables you to provide a better and more reliable experience to players, by making the Runtime more stable across a wider range of games. When there are unexpected spikes in your game’s resource needs, the system handles such cases more gracefully and understandably.
Query-Based Interest (QBI) is a new and powerful feature for area of interest management. Ultimately it enables you to create richer and higher fidelity scenes in your games with lower bandwidth costs, by giving you a greater ability to optimise network data.
QBI provides a more flexible and configurable way to specify interest through queries. It can be added using a new standard library component. As an example, QBI could allow a client-worker to observe the position and health of players within a relatively small radius of its player entity, but only see position for minimap objects over a much larger distance. Additionally, the queries can be dynamically and incrementally modified, e.g. after taking a special potion, a player walking through the game world could have their interests temporarily expanded to observe rare objects anywhere in the world.
Above is an illustration of multiple entities with relative spherical and box constraints. The different colours represent the interest of different workers, derived from the entities they are authoritative over.
In the near future, we will enhance QBI to let you specify the frequency at which updates are received, allowing you to further optimise resources. For example, you may want to receive information about player positions at a high rate, such as 60Hz for a first-person shooter game, and receive minimap positions at a lower rate, such as 1Hz.
For more details and examples, and to get started with QBI now, please see our documentation. Please remember that to use QBI you will first need to opt into the new Runtime.