Proving correctness of a multiplayer game server

In the area of Massively Multplayer Online games (MMoG) – for example, online Poker – the server plays a very important role, if not the most. 10,000 to 12000 simultaneously logged in players, is quite usual in this world of MMoGs (and is a conservative figure). The server is required to enforce game rules on the players, retain and propagate game-state, interact with other servers (e.g., payment, lobby etc.) and database and implement business rules (e.g., a player can’t continue if her wallet contains less-than-threshold amount of money), among other things.

Dictated by the need to support such a set of functionality while being highly resilient and scalable, the server lends itself easily to a design based upon multitude of asynchronous messages processed by thousands of short-lived tasks. These messages may originate from game clients, server’s internal components and other servers participating in the whole application (e.g., Game Administrator) and they access/update components and data-structures in a largely indeterminate way.

Moreover, the betting games are legally required to be driven by truly random behaviour. Thus, it is almost impossible to assure that the trace of execution path of a given message in the server, can be easily retraced. The resulting unpredictability of behaviour poses a real challenge to the effort of building an automated testsuite for such applications to verify the correctness of the server’s behaviour and establish its reliability.

The session will look at background of the application, the design, testability challenges and their mitigation and lessons learnt

Takeaways for the audience:

  1. An understanding of issues in testing a highly-threaded, low-latency/high-throughput system
  2. An understanding of the importance of Test-Robots in development and testing of MMoG and similar applications

Speaker:

Speaker Software Testing & Quality ConferenceNirmalya is a freelance software technologist and has survived in the software industry for 20+ years now. For the most part of his career so far, he has worked for technology-driven product development companies, in India and Europe. He began his career as a professional ‘C’ programmer on large Unix systems. Later he moved to the world of Java and related technologies. His areas of work and interest include TCP/IP-based protocol development, highly threaded and low-latency server software, Event driven software structure, graph-oriented databases and finite-state-machine based modelling. He is an open-source enthusiast and loves to reside in the world of Linux. He works as a software designer and mentor for small start-ups, which are driven by technology.

Nirmalya Sengupta will be presenting on “Proving correctness of a multiplayer game server” at the 2nd Annual IndicThreads.com Conference On Software Quality to be held in Pune, India on 25,26 March 2011.Click here for a list of other Speakers & Sessions @ The Conference

This entry was posted in Sessions. Bookmark the permalink.

Comments are closed.