Technically my second project shipped at Riot (first one shipped functionality for another team that didn’t use it… goodbye months of effort), Chronobreak was an ambitious project to make it possible for Esports games to recover from bugs by going back in time without a full remake. This meant making the wild server deterministic, and working with the Esports org to create tools that matched their needs in one of the most stressful and choatic moments of an Esports broadcast — the moment a bug hits and all viewers have little-to-nothing to watch until it gets resolved (and historically, a full remake happens and competitive integrity is damaged).
I was one of the three engineers that developed Chronobreak from start to ship, along with three others that came and went during the ~year-long project. I was responsible for:
- Determinism-breakage detection, by making an optimized reflection system and tooling to store the majority of gamestate, detect differences from one game to another, and deliver understandable reports to help debug divergences
- Developing the UI/UX of the tool used for recovering games by Esports ops, including paper design iteration, being the communication bridge with their org, setting up playtests, and gathering feedback to iterate with
- Integrating needs for the tools into the server-process launcher and build pipeline
- Shared task of developing the tools for recovering games
For a deep dive, our tech lead wrote a series of articles on it: https://engineering.riotgames.com/news/determinism-league-legends-introduction
And here’s a clip from the first time it was ever used!