Lock-step simulation is child's play (experience report)
Autor: | Joachim Breitner, Chris Smith |
---|---|
Rok vydání: | 2017 |
Předmět: |
Scheme (programming language)
Functional programming Record locking Interface (Java) Programming language Computer science 020207 software engineering 02 engineering and technology computer.software_genre Broadcasting (networking) 0202 electrical engineering electronic engineering information engineering Haskell State (computer science) Safety Risk Reliability and Quality Programmer computer Software computer.programming_language |
Zdroj: | Proceedings of the ACM on Programming Languages. 1:1-15 |
ISSN: | 2475-1421 |
DOI: | 10.1145/3110247 |
Popis: | 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 pearl 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 interface, and without requiring any discipline from the programmer, we can provide consistent lock-step simulation with client prediction. |
Databáze: | OpenAIRE |
Externí odkaz: |