You can install MMOWGLI in a two ways: a single-node Virtual Machine (VM) that includes all of the functionality of MMOWGLI in a single host; and a multi-node collection of VMs that separates the functionality across several hosts in a more scalable way.
The major components are:
- A front end web server, in our case Apache. This serves static content and artwork, such as images used for buttons, backgrounds, and so on.
- One or more Tomcat servers used to generate dynamic content and handle user sessions. This is where the MMOWGLI web application lives.
- A MySQL database server, which is used to store card content, user accounts, and other game information
- An ActiveMQ Java Message Server. When users play a card we want that card to appear on the screen of other users. If we have multiple Tomcats, the fact that a card has been added must be sent to the other Tomcats. ActiveMQ is used to communicate this information between the Tomcat servers.
- Shared Filesystem server. When users upload images to the game the images are not saved in the database, but rather on a filesystem shared between all tomcat servers and the web server front end. This filesystem is also used for report generation. This reduces the load on the database and enables the images to be placed on a Content Delivery Network (CDN), such as Akamai.
Single Host Configuration. It’s possible to run all the components mentioned above on a single host and handle 100-200 simultaneously logged in users. This is adequate for most games, and much simpler to deploy and manage. It is the recommended starting point. You can download a single host virtual machine at
It is distributed as an “ova” format file, which can be loaded into VMWare or VirtualBox utilities, or a VMWare Esxi server. It should also be compatible with Amazon Web Services, though I haven’t tried this.
The VM is initially configured with a “reasonable” security profile. Common security holes have been patched. However, any VM distributed in this way has inherent security issues if placed on the internet, primarily related to the default passwords used. The passwords have to be revealed to those downloading the VM in order to configure it, but passwords must be secret to be useful.