Branching Strategies to support a live service game

June 15, 2024

So you’ve launched your game and it’s doing well. Congratulations! But how can you fix emergent bugs while still developing new features or expansions, all while ensuring your game remains running smoothly? Branch Management

Like most software, early video games were shipped on a physical media, be it a cartridge, floppy disk, or a CD/DVD. In this world, developers have one shot to “get it right” at launch.

As game store software and consoles evolve, more games are shipping in a “live service” model, where internet connectivity is required and the game is constantly patched and updated. Game studios are quickly learning the lessons that web developers faced only a short time ago; operational excellence and sustainable development practices can help your software evolve and delight players for a long time.

A key component of this is your branching strategy. If you follow Gamebreaking Studios, you’re familiar with Game Studios’ use of Perforce. How you set up your branches in Perforce is an important decision that can have a long lasting impact.

The most common branching patterns follow a “Merge Down Copy Up” methodology. In this setup, stable but slow moving branches (like ‘Live’ or ‘Hotfix’) will merge their changes down to more volatile, fast moving branches (“vNext”, “Main”, or “Dev”). Inversely, the volatile branches will Copy Up their changes to the release branch at some cadence, replacing its contents entirely.

By only performing emergency bug fixes in the Release branch (and ensuring they are promptly merged down to Main/Dev), we ensure the stability of your game while it is live and protect the ability to hotfix any emergent bugs.

Similarly, by doing our day-to-day work in a lower branch, we can iterate on new features before Copying Up to a higher branch with stricter stability standards. We can trust that the Merge Down process has applied any emergency bug fixes made to Release to our development environment.

It’s a good problem to have if you find yourself struggling to hotfix your live game while preparing for the next monthly patch (and also working on the next major expansion).


Profile picture

Written by Jay Spang
Principal Build & Release Engineer - BespokeCI