SMASH: A distributed game engine architecture

Dario Maggiorini, Laura Anna Ripamonti, Eraldo Zanon, Armir Bujari, Claudio Enrico Palazzi · 2016

In these last few years we are witnessing a change in the way video games are implemented. Starting from an early age, where a single developer was sometimes in charge of the whole creative process, we have moved now toward extremely large groups with a multi-layered organisation. This increasing complexity of team organisation, together with a tremendous growth of projects size, calls for the adoptions of development approaches leveraging on scalability and distributed computing environments. Unfortunately, today's development and execution environments for games (usually called game engines) are suffering from a number of architectural constraints. As a result, we strongly believe current engines will not be able to provide the flexibility and scalability required by game developers of the next generation. To overcome the above limitations, in this paper we propose SMASH (Stackless Microkernel Architecture for SHared environments): an architecture where a game engine is decomposed in several dynamic and independent software modules interacting via a microkernel-like message bus. Game modules can just be inserted, debugged, and removed from a running engine once its internal messaging protocol is clearly defined. Moreover, following this approach, game modules can be dynamically dislocated on multiple machines to obtain a truly distributed, scalable, and fault-resilient system where adaptation can be achieved mostly without downtime.

Read the paper · More papers on PaperTik