Distributed Shared Objects for Mobile Multiplayer Games and Applications
MetadataShow full item record
Mobile gaming for smartphones has gained huge popularity in recent yearsand has become a big industry. In 2011 Google Play passed 10 billiondownloads. The game Angry Birds alone has been installed on devices morethan 50 million times.Increased performance of mobile devices means that new developmenttechniques can be used to make more advanced games. This projectpresents a new technique to develop multiplayer games using adistributed system.Multiplayer games often use a client-server architecture in order tocommunicate. Many games present a shared game universe to theplayers. Updates to the game state must be performedconsistently, otherwise discrepancies in the game state mayappear to the players.Mobile devices are unreliable servers for several reasons. First, theyuse a Wi-Fi connection that may not be reliable. Second, the deviceshave limited amounts of resources. The operating system may need toterminate the server, e.g., to recover memory for important servicessuch as receiving phone calls. Lastly, if the person with the serverchooses to stop playing, the game cannot proceed.A distributed system can prevent unreliable devices from causingfailures. When a device becomes unavailable, all its responsibilitiesshould be transfered to other devices in the system.This project presents the distributed system Same for sharingstate in mobile multiplayer games. Same is a peer-to-peer systemwith a master device that automatically recovers from failure. When amaster fails, the system may enter an inconsistent state. Recovery isperformed by electing a new master that restores consistency bycomparing the state of all the clients in the system. The system ispresented as a general model for sharing state and implemented for theAndroid operating system.Same is evaluated using benchmarks and an example application.Updates are performed consistently and distributed to all the connecteddevices. Same is shown to be a viable alternative to a standardclient-server architecture.