After almost a year of work by many engineers, the League of Legends game server has been transformed from nondeterministic to deterministic, allowing for a more robust, discoverable, and maintainable codebase. This effort also created new tools that record, play back, and validate real gameplay, and introduced the Deterministic Disaster Recovery toolset. The validation of determinism required identifying controlled and uncontrolled inputs, recording and playing back uncontrolled inputs like client network traffic, addressing startup values for game instances, unifying random number generators, and handling async processing. The task also involved mitigating issues like uninitialized variables and nondeterministic system state leaks, while focusing on making the gameplay deterministic.
https://technology.riotgames.com/news/determinism-league-legends-implementation