<story><title>Determinism in League of Legends: Implementation (2017)</title><url>https://technology.riotgames.com/news/determinism-league-legends-implementation</url></story><parent_chain></parent_chain><comment><author>TacticalCoder</author><text>LoL was inspired by DotA (Defense of the Ancient). DotA was a Warcraft III mod.&lt;p&gt;Warcraft III came out in 2002 and was fully deterministic. Save files for entire games with up to 8 players (IIRC?) and huge armies were... Tiny. For they only saved the inputs.&lt;p&gt;It comes at a surprise to me not that LoL eventually became deterministic but that it wasn&amp;#x27;t in the first place.&lt;p&gt;As a funny sidenote, around 1990 &amp;#x2F; 1991 I wrote a little 2D game and there was a bug I simply couldn&amp;#x27;t figure out. It&amp;#x27;d happen very very rarely. And I realized, by myself, that if I rewrote the game&amp;#x27;s little physics engine to be 100% deterministic I could just record the inputs while playing and then replay it, hopefully reproducing the crash. It worked. I eventually ended up recording the bug and, sure enough, upon replaying the game would crash: at that point I knew the bug was a goner. It was a dangling pointer in a rare case where the hero had picked an extra allowing to shot two shots at once on screen instead of one and if the player would then finish the level with the first shot gone out of the screen but the second shot still on screen.&lt;p&gt;I had never heard of anyone using a deterministic engine back in 1990&amp;#x2F;1991. Fun memories.</text></comment>
<story><title>Determinism in League of Legends: Implementation (2017)</title><url>https://technology.riotgames.com/news/determinism-league-legends-implementation</url></story><parent_chain></parent_chain><comment><author>nightowl_games</author><text>&amp;gt; League of Legends does not use a fixed-step server clock, but rather a measured frame delta time which we throttle to a target frame rate. This makes the server more resilient to system-wide performance spikes, but this pattern definitely complicated determinism.&lt;p&gt;This could use some elaboration. I don&amp;#x27;t even know how it&amp;#x27;s possible to have determinism without a fixed-step. I must misunderstand what this means. Every simulation tick in league of legends has gotta be the same duration, right? ie: 1.0 &amp;#x2F; 60.0?</text></comment>