Networked and Mobile Gaming, 2014/15

Category: lecture

Lecture 12: Advanced Topics

The last lecture for CS4344 explores two advanced, but important, topics for multiplayer games: cheating and cloud gaming. The topics do not quite have proper solutions yet, and are currently being actively developed and studied by both the academia and the industry.

Additional resources:

Preview the slides here

Lecture 11: Transport Protocols

In this lecture, we will look at the characteristics of networked game traffic and its impact on the design of transport protocols for games. We will discuss the pros and cons of using TCP and UDP for games, some tweaks to TCP that makes it more suitable for games.


Kuan-Ta Chen, Chun-Ying Huang, Polly Huang, Chin-Laung Lei, “An empirical evaluation of TCP performance in online games,” in Proc. of ACE 2006 [Google Scholar]
C Griwodz, P. Halvorsen, “The Fun of using TCP for an MMORPG”“, NOSSDAV 2006 [Google Scholar]
S. Harcsik, A Petlund, C Griwodz, P. Halvorsen, “Latency Evaluation of Networking Mechanisms for Game Traffic“, NetGames 2007 [Google Scholar]

Download slides here.

Lecture 10: Server Discover and Player Matchmaking

In this lecture, we will look at the current protocol for discovering game servers and how to improve the protocol.  We will also look at ways we can group players with low latency to each other together in the same game session.


The REED server discovery algorithm is discussed in detail in [Armitage12].  [Manweller11] provides a highly detailed description of a study in latency measurement and estimation in mobile networks, with application to player matchmaking in mobile games.  The use of hierarchical clustering and QT clustering to match players are discussed in this context in the section on Grouping Agent.


Justin Manweiler, Sharad Agarwal, Ming Zhang, Romit Roy Choudhury, and Paramvir Bahl. “Switchboard: a matchmaking system for multiplayer mobile games.” In Proceedings of the 9th international conference on Mobile systems, applications, and services, pp. 71-84. ACM, 2011. [Google Scholar]
Grenville Armitage and Amiel Heyde. “REED: Optimizing first person shooter game server discovery using network coordinates.” ACM Transactions on Multimedia Computing, Communications, and Applications (TOMCCAP) 8, no. 2 (2012): 20. [Google Scholar]
Download slides here.

Lecture 9: Energy-Efficient Mobile Gaming

Dr. Bhojan Anand will give a guest lecture this week and share with you his PhD research work on energy-aware mobile gaming.  He will present two of his work on:

  • K Thirugnanam, Bhojan Anand, J Sebastian, PG Kannan, AL Ananda, RK Balan, and MC Chan, “Dynamic Lookahead Mechanism for Conserving Power in Multi-Player Mobile Games,”  IEEE INFOCOM 2012, Orlando, Florida, Mar 2012. [PDF]
  • Bhojan Anand, Akhihebbal L. Ananda, Mun Choon Chan and Rajesh Krishna Balan, “ARIVU: Making Networked Mobile Games Green – A Scalable Power-Aware Middleware”, MOBILE NETWORKS AND APPLICATIONS, Springer Netherlands, Feb 2012. [PDF]

UPDATE: You can now download the slides from this guest lecture.

Lecture 8: Hybrid Architecture

This eLearning lecture consists of two parts. The first introduces you to mirrored server architecture and zoned server architecture. The second, which is prerecorded and given by the co-founder of ImonCloud, Dr. Shun-Yun HU, introduces you to the ImonCloud and the back-end architecture (which is a hybrid architecture and uses a type of VON).

Here are the videos. Note that the ImonCloud presentation video is password protected. The password is posted in IVLE announcement.

Here is the reference to ImonCloud:
Shun-Yun Hu, Matthew Lien, “ImonCloud: Easing Development and Deployment
for Scalable Networked Games”, IEEE CCNC 2014. [PDF]

There are no suitable references to the lecture on hybrid architecture. You can download the slides here.

Lecture 7: Interest Management (Part 2)


In this lecture, we will discuss how interest management is used in a point-to-point architecture to reduce the number of message exchanges. In particular, we will look at two different methods, one that uses cell-to-cell visibility and the other that uses distance-based visibility.


  • [Stee05] is the main reference for Frontier Sets.
  • [Hu06] is the main reference for VON.
A. Steed and C. Angus, “Supporting Scalable Peer to Peer Virtual Environments using Frontier Sets,” IEEE Virtual Reality 2005 (VR2005), Bonn, Germany, March 2005. [Google Scholar]
Shun-Yun Hu, Jui-Fa Chen and Tsu-Han Chen, “VON: A Scalable Peer-to-Peer Network for Virtual Environments,” IEEE Network, vol. 20, no. 4, Jul./Aug. 2006, pp. 22-31 Available on Google Scholar
A demo of Voronoi Diagram can be found in University of Bonn’s VoroGlide site.


Preview the slides here.

Lecture 6: Interest Management (Part 1 of 2)

In this lecture, we will review different approaches to interest management, and study a few algorithms in details.


  • An overview of AOI mechanism is presented in [Smed06].
  • A good overview of different interest management schemes can be found in [Boul06].
  • Cell-to-cell visibility algorithm is described in the context of interactive walkthrough in a classic paper by Teller [Tell91].
  • The generalized interest management scheme used in Lucid Platform 1.0 is described in a paper by Liu et al [Liu05], while the sort-based region matching algorithm is described in [Racz05].
J. Smed and H Hakonen, “Algorithms and Networking for Computer Games”, Wiley, July 2006. [NUS LINC]
J. Boulanger, J. Kienzle, and C. Verbrugge. “Comparing interest management algorithms for massively multiplayer games,” In NetGames ’06. [ACM DL | Google Scholar]
S. Teller, and C. Sequin, Visibility preprocessing for interactive walkthroughs. In SIGGRAPH ’91. [ACM DL | Google Scholar]
Liu E. S., Yip M. K., and Yu G. Scalable interest management for multidimensional routing space. In VRST ’05. [Google Scholar]
C. Raczy, G. Tan, and J. Yu, A sort-based DDM matching algorithm for HLA. ACM Transactions on Modeling and Computer Simulations 15(1) (Jan. 2005), 14-38. [ACM DL | Google Scholar]

Here is the preview of the slides.

Lecture 5: Multiplayer Game Design

This week, let’s discuss about the design of multiplayer games, focusing on usability and balanced/fun game mechanics, as a preparation for your project. I do not play games (anymore) so I will rely on the class to augment the content with your own game playing experience.


  • Pinelle, D., Wong, N., Stach, T., and Gutwin, C. (2009). Usability heuristics for networked multiplayer games. In Proceedings of the ACM 2009 International Conference on Supporting Group Work, GROUP ’09, pages 169-178, New York, NY, USA. ACM. [Google Scholar]

Additional references that might be useful include:

Lecture 4: LPF and Bucket Synchronization

Abstract In this lecture, we will continue our discussion on consistency techniques in multiplayer games. We will discuss local perception filter, a technique used to improve interactivity in the games, and bucket synchronization, a technique used in point-to-point games without a server.


  • A more complicated version of local perception filter, where passive entities accelerates and decelerates, is described in details in [Smed06].
  • Bucket synchronization is used in MiMaze [Gaut98].
  • [Bret01] provides a good account on how synchronized simulation is implemented from the view of AoE.
J. Smed and H Hakonen, “Algorithms and Networking for Computer Games”, Wiley, July 2006. [NUS LINC]
L. Gautier and C. Diot, “Design and evaluation of MiMaze, a multi-player game on the internet,” in Proc. IEEE Multimedia Systems Conference, June 1998. [Google Scholar]
P. Breetner, and M. Terrano “1500 Archers on a 28.8: Networking Programming in Age of Empires and Beyond”. In Game Developers Conference ’01. [Google Scholar]

You can preview the slides for this lecture.

Lecture 3: Prediction and Compensation

Abstract We have seen that we can get into inconsistent states in multiplayer games.  In this lecture, we will see how players and servers can predict what the “right” states are, and how they can compensate for incorrect states in making decisions.


  • The unreal Tournament’s networking component is described here on the Epic Games website.
  • Convergence is described by [Smed06] in Section 9.3.2 in the context of dead reckoning.
  • Lag Compensation techniques used in Half Life in [Armi06] Section 6.3.2 and also in great details online at Valve’s Wiki.
  • Predictions, both local and opponent predictions, are discussed in [Armi06] Section 6.2.
  • Dead reckoning is discussed in Section 9.3 of [Smed06]. A classic article by Jesse Aronson can be found online [Aron97].
J. Smed and H Hakonen, “Algorithms and Networking for Computer Games”, Wiley, July 2006. [NUS LINC]
G. Armitage, M. Claypool and P. Branch, “Networking and Online Games: Understanding and Engineering Multiplayer Internet Games,” Wiley, June 2006. [NUS LINC]
J. Aronson, “Dead Reckoning: Latency Hiding for Networked Games”, Gamasutra, September 1997. [Gamasutra]

You can preview the slides for this lecture here.

Lecture on HTML5/JavaScript

Here are the videos for HTML5/Javascript. Note: It won’t cover everything on HTML5/Javascript, but enough for you to understand and start Assignment 2. Also, this is recorded for eLearning Week last AY. Some comments might be out of context.

And here is the last part on Pong, partially repeat what I covered in class.

Lecture 2: Lag

In this lecture, we will try to achieve two things.

First, I will show you a simple two-player Pong game and walk you through the key parts of the code.  This game will serve as the basis for your Assignment 2 and help to explain some concepts in this lecture.

Second, we will see how lags (or latency, or delay) on the Internet lead us to a solution that causes inconsistency and unfairness, and how we can introduce lags ourselves to mitigate these two issues.  We will end with a discussion on a set of experiments conducted to study the acceptable lags in two popular games, Unreal Tournament and Warcraft III.

Although not necessary, those of you with a laptop can bring it to class to follow along the Pong game.  Watching demos is useful, but there is nothing compared to playing with the demos yourself in class :)



  • Permissible client-server architecture is used in Unreal Tournament, and is described by [McCo03]. The article also mentions the responsiveness issue and describes how a client can use short-circuiting for movement command to improve responsiveness in Unreal Tournament.
  • Local lag is introduced by [Diot99] in the form of bucket synchronization and in the context of peer-to-peer architecture (we will cover this later in class). The term local lag and the idea to adapt the lag is introduced by [Mauv04].
  • Short circuiting with immediate feedback is mentioned in [Smed06], Section 9.1.1.
  • Time delay is mentioned in [Armi06], Section 6.3.1.
  • See [Armi06], Section 7.1 for a summary of user studies and results.
  • Papers on the user studies can be found on the WPI project web sites for Unreal Tournament and Warcraft III. Screenshot of Unreal Tournament is taken from the same site.
  • The “dead man that shoots” example was mentioned by [Mauv00] in the context of fully distributed games.
A. McCoy, D. Delaney, and T. Ward, “Game-State Fidelity Across Distributed Interactive Games”, Crossroads vol. 9, no. 4 (Jun. 2003), 4-9 [ACM Crossroads]
C. Diot and L. Gautier, “A distributed architecture for multiplayer interactive applications on the internet,” IEEE Networks magazine, vol. 13, no. 4, July/August 1999. [Google Scholar]
M. Mauve, J. Vogel, V. Hilt, and W. Eelsberg, “Local-lag and Timewarp: Providing Consistency for Replicated Continuous Applications,” IEEE Transactions on Multimedia, vol. 6, no. 1, pp. 45-57, 2004. [Google Scholar]
J. Smed and H Hakonen, “Algorithms and Networking for Computer Games”, Wiley, July 2006. [NUS LINC]
G. Armitage, M. Claypool and P. Branch, “Networking and Online Games: Understanding and Engineering Multiplayer Internet Games,” Wiley, June 2006. [NUS LINC]
M. Mauve, “How to Keep a Dead Man from Shooting.” In Proc of the 7th intl Workshop on interactive Distributed Multimedia Systems and Telecommunication Services, 2000. [Google Scholar]

Slides: Download

Code for Pong is on GitHub.  Fork it.

© 2017 CS4344

Theme by Anders NorenUp ↑


Follow this blog

Get every new post delivered right to your inbox.

Skip to toolbar