Improving parallelization in Space Engineers

18/05/2021

Game developers at Keen Software House have used Manual Badger architecture (by sister company GoodAI) to evaluate parallelization techniques that would benefit the future development of Space Engineers. 

Space Engineers is a complex multiplayer sandbox game where all content is volumetric, rich in detail and fully modifiable, with aging source code, which makes it difficult to quickly experiment with parallelization. Manual Badger, written by Marek Rosa, provided a less complex environment, yet data-oriented and resembling the ideal topology for game entities in Space Engineers, making it easier to iterate on optimization techniques. Manual Badger architecture is composed of multiple interacting units, which are parametrized through an internal state and collectively encode dynamic data. This feature provided the necessary similarities with the parallelized game engine, making it a good fit for the experiments.

The ultimate aim of the investigation was to improve game performance to better leverage multi-core CPUs and GPUs. The lessons learned might in turn be useful for AI developers interested in performance optimization.

The full report:

  • Chapter 1 focuses on low-hanging fruits, sync points, a few micro-optimizations and a comparison of codegens,
  • Chapter 2 focuses on the improvement of cache coherency,
  • Chapter 3 explores different kinds of hardware ultimately using massive parallelism via GPGPU.

If you’re interested to learn more about the development of Space Engineers and the people behind it, check out www.keenswh.com We always look for colleagues who have a need to create and thrive solving difficult technical challenges.

Summarization