ImonCloud: Easing Development and Deployment for Scalable Networked Games Shun-Yun Hu IIS, Academia Sinica, Taiwan, R.O.C. syhu@iis.sinica.edu.tw Matthew Lien Imonology Inc., Taiwan, R.O.C. BlueT@imonology.com Abstract—The number of small, independent game developers has grown recently due to the widespread of game creation tools such as Flash and Unity3D. However, adding multi-user support is still uncommon due to the amount of server and network knowhow required. Small developers thus are confined to making simple single-player games. This paper presents ImonCloud, a scalable system designed to easily add multi-user and spatial interactions for otherwise single-player games. Developers only need to focus on writing the game logic in JavaScript, the game’s deployment and scaling is then done transparently. Clients connect to servers closest to them, while game logic is executed at nearby servers to reduce latency. Server redundancy is also provided to ensure the operation’s reliability. Built-in support based on Spatial Publish/Subscribe (SPS) also allows developers to perform interest management with ease. ImonCloud thus lowers the barrier of developing multi-user, spatial games that it becomes possible for small teams and even individuals to make scalable and globally deployable games. I. I NTRODUCTION There is a long history of how networked games are devel- oped. Although originally single-player, when LANs and dial- up Bulletin Board Systems (BBSs) become available, simple client-server games allow multiple players to engage in Multi- user Dungeons (MUDs), where players could roam and role- play in connected rooms by typing text commands and reading descriptions. When networked devices (e.g., modems and network cards) became common in early 90s, first-person shooter (FPS) appeared as a popular genre where tens of players can connect to a central host to engage in fast-paced actions [1]. All users send events to the server, which processes the events to modify the game states. The server then sends back updates to each player to display locally. Around the same time, real-time strategy (RTS) allows multiple players to engage in fully- synchronized games with lots of interacting units. As RTS often supports thousands of object units, sending state updates directly is not feasible for the typically limited bandwidth, so RTS games only exchange player events (i.e., commands) among all hosts, and each host performs its simulation locally (i.e., each host fully simulates the game). As Internet became widely adopted, both FPS and RTS also moved from LAN to more players across WAN. In the mid-90s, Massively Multiplayer Online Game (MMOG) genre allows thousands of players engage in the same epic story. They provided deep social interactions that allow players to not only role-play in carefully crafted stories, but also engage in diverse types of social behaviors. MMOGs became the dominant online game genre in mid-2000 with Blizzards release of World of Warcraft (WoW), which had a peak of 11 million active subscribers. Since 2008, casual web games utilizing social networks to allow game-play with real-world friends emerged as another form of dominant games. The rise of social games match well with the more connected, yet fragmented time nature of Internet users, while bringing more people to play games that were not traditional game-players. From MUD, FPS, RTS, MMOG, to social games, regardless the games nature or audience, developing smooth interaction experiences has always been non-trivial to developers. Only the most technically advanced or resourceful developers were able to provide great multiuser experiences. Among the chal- lenges are [2]: Consistency: at the most basic level, networked games require players to see a shared view of the world, and experience interactions with more or less the same sequence and types. This implies that game states should be processed in the right order, and delivered or presented to players in the same sequence. Interactivity: engaging games require players to see each others response quickly, though latency requirements differ among game genres. Actions games may need to deliver packets in less than 150ms, while MMOGs can allow latencies up to seconds. Ensuring latency bounds across geographies is especially challenging for globally deployed games. Scalability: The usage and demand for todays Internet games differ greatly during the games lifetime, days in a week, and even hours in a day. Being able to support concurrent players at various scales thus is important for game operators. Reliability: Commercially deployed games typically need to be available 24 by 7. Although typically there are scheduled downtime for servers to fix bugs or apply new content, unex- pected downtime due to bugs (i.e., logic errors) or overloading are unacceptable to players and may ruin the games reputation and loyalty. Persistency: While early FPS or RTS are session-based (i.e., no player records exist after the session ends), keeping player or world states intact throughout different sessions was the default design for MMOG and social games. Storing such records in a persistent database thus has already become standard practice in the industry.