Lock-step simulation is child's play
Joachim Breitner, Chris Smith

TL;DR
This paper demonstrates that using functional programming principles, specifically in Haskell, simplifies the implementation of lock-step simulation for multi-player networked games, making consistency easier to achieve.
Contribution
It shows how Haskell's purity and static pointers make lock-step simulation trivial to implement, supported by an extension to the CodeWorld environment for educational purposes.
Findings
Lock-step simulation becomes almost trivial with functional programming.
Haskell's features facilitate consistent multi-player game states.
Extended CodeWorld to support networked multi-user games.
Abstract
Implementing multi-player networked games by broadcasting the player's input and letting each client calculate the game state - a scheme known as lock-step simulation - is an established technique. However, ensuring that every client in this scheme obtains a consistent state is infamously hard and in general requires great discipline from the game programmer. The thesis of this report is that in the realm of functional programming - in particular with Haskell's purity and static pointers - this hard problem becomes almost trivially easy. We support this thesis by implementing lock-step simulation under very adverse conditions. We extended the educational programming environment CodeWorld, which is used to teach math and programming to middle school students, with the ability to create and run interactive, networked multi-user games. Despite providing a very abstract and high-level…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
