Figure 1: Rummy game based on MoGS.
The MoGS project was set up to investigate the possibility of building a portable server API for multi-player mobile games, able to support the game server logic of many different games. The language chosen was Java, as this is a very convenient language for developing servers. For the networking technology, we chose Bluetooth.
A suitable game server API was developed, as well as server implementations for Mobile Information Device Profile 2.0 (JSR 118) [MIDP 2.0] and Java™ 2 Standard Edition (J2SE 1.4) and two example games using the servers, Paintball and Rummy.
The MoGS code is 100% Java, using the Java APIs for Bluetooth Wireless Technology (JSR-82) [JSR-82]. On MIDP 2.0 we used the implementation in the Nokia 6600 (and 6230), and on J2SE 1.4 we used the commercial implementation for Linux from Rococo Software (www.rococosoft.com).
This section summarises the requirements for the MOGS design.

Figure 2: 'Smart server' in PC or set-top box.
MoGS was originally conceived as a framework for multi-player games where phones running MIDlet clients would play together using a shared server, connected to it over Bluetooth.
Later, we noticed that we could use the same game logic in a simpler server which would be combined with the MIDlet client.

Figure 3: 'Simple server' in phone.
It would be possible to have versions of the MIDlet client both with and without the server, though in practice we always included the server in the client and just offered the option of using it to host a game or ignoring it and joining a remotely hosted game (either in another phone or in a PC).