Designing Backend Systems for Multiplayer
- Treble Thieves
- Apr 24
- 2 min read
By: Rowan F. Peters
Hello, I’m Rowan, one of the programmers on the Treble Thieves team. For this project, I did a lot of work on the systems that track the game’s state behind the scenes. In addition, I spent a lot of time learning about multiplayer networking design and how to implement these designs into our game.
The goal of Treble Thieves is to steal precious artifacts from a luxurious manor and escape with them, earning yourself more points every time you escape with one of the artifacts. You aren’t alone in the manor however; you and up to three other players are competing for points and whoever has the most when the timer runs out is the winner of the heist.

The most important aspect of Treble Thieves gameplay is stealing and escaping with artifacts, so it is crucial to keep track of which player has the artifact. We track this information using Unreal Engine’s “Game Mode”, a special class designed to store important data pertaining to a game's progression. By storing this information in only one place, it ensures that there are no issues with conflicting data across clients. We also use Game Mode to store a couple of timers which allow us to control when a round will start, and how long the round lasts before the heist is over.
Our Game Mode’s functionality is assisted by another system in Unreal Engine called the “Game State”. Game State shares quite a few similarities with Game Mode, but its usefulness really shows in a multiplayer setting. Since Treble Thieves can be played with up to four players, important information has to be synced between clients for a smooth experience. When a multiplayer match of Treble Thieves is started, a single Game Mode instance is spawned on the host’s machine, while an instance of Game State is spawned for every player in the match, including the host and all connected clients. This means that while clients cannot directly access information in Game Mode, we can give them this information by passing it through the Game State. Game State allows us to sync information between clients, creating a game world that remains consistent for every player in the match. This interaction is important to understand when designing systems for a multiplayer game and it was easily the most difficult part of our design process.
Of course, these are only a few of the many systems that keep Treble Thieves running, and their operation within the game has been greatly simplified for ease of understanding. When we first started working on Treble Thieves, we did not fully understand its multiplayer networking systems, and this proved to be one of the most difficult roadblocks to overcome during development. For anyone wishing to make their own multiplayer game in Unreal Engine, take the time to fully understand the intricacies of multiplayer networking before you start designing your game’s systems.
コメント