Game Server Manager Project

gsmGame Server Manager (GSM) started life as a very simple system for managing Linux based game servers. The early versions all worked via shell scripts and whilst this worked very well managing the servers requires an understanding of Linux. GSM was created to remove the requirement for any Linux knowledge in setting up and managing game servers.

You can view this project here: Game Server Manager website

How does it work?

GSM consists of main 3 parts

  • The Game servers themselves
  • A set of *nix scripts for managing the servers
  • This website

All of these come together to prodive a simple and effective way to manage game servers.

What’s so clever about GSM?

  • There is only ever ONE copy of the game installed, massivley saving on disk space
  • Users have FULL control over the server config files
  • Each user has an allocated number of servers. A user can create other accounts and allocate a portion of their servers to each account
  • It supports multiple servers, i.e. can setup games on remote machines
  • It supports multiple IP’s, i.e. a user can have thier own IP
  • GSM provides both a basic and advanced mode for users to manage the game server
  • GSM can ‘recover’ a broken server, if the server won’t work a ‘fix me’ option will attempt to get it running
  • Built in remote Rcon for all games with auto complete on commands
  • Users can create and save ‘quick’ rcon commands for each game server
  • Player management. Players can be kicked, banned etc
  • GSM can manage both local and remote servers
  • GSM supports different server configs, i.e. match/public mode that can be easily switched
  • A Teamspeak monitor is provided allowing you to see who is on your TS server

GSM

Technical Information

GSM consists of main 3 parts

  • The Game servers themselves
  • A set of *nix scripts for managing the servers
  • This website

The Game Servers

The game servers are all installed ‘out of the box’ into a base directory. These base installations are used to create the actual game servers and the method used depends very much upon the game itself and what options it supports.

The idea behind GSM is to try and keep the disk usage to a minumim and where possible avoid installing a new copy of the game every time a server is created. Two approaches are used for this.

1. Some games (Such as Call of Duty 4) support options to allow the core game code to exist in on directory and all of the config in another. Where possible GSM uses these options so that there is only every one copy of the main code.

2. For games that dont support the above option a slightly different approach is taken. In these cases symbolic linking is used to create what appears to be a full instalation of the server even though it isnt really. The directories for the game are created as real directories and then every file within them linked back to the base installation of the game.

Another core part of a game server is its configuration. In both of the above scenarios its simple as we just create the config folder and copy a set of ‘base’ server config files in, the various options within the config file are set from the options entered when the server is created.

The *nix scripts

Every game server has a standard script used to start it. When the serve is created this script is copied into the new game server and the various options within the script set from the ones provided by the user when creating the server. Every user has a specific IP Address allocated to them to provide some seperation and to allow the first server created to run on the default game port. GSM will automatically find free ports for the game server to run on so the user does not have to worry about it.

The game server are all run under named SCREEN sessions. This allows the website to easily find out if a server is running. Stopping the server becomes a simple case of ending the screen session. Another advantage to this is that the system admins can connect to the screen session and see what is going on with the server.

This Website

The GSM website is all based around CakePHP. The desicion to use cake was taken as its a very flexible and rapid development framework.

I have recently been helping out on the GSM project and it is all in working order – it currently has supported around 12 games and is constantly improving every time we touch it. If you would like to know more, head over to the GSM website and blog at http://www.gameservermanager.co.uk and http://blog.gameservermanager.co.uk

Steve

Web Developer, IT enthusiast & PC Gamer.

Leave a Reply

Your email address will not be published. Required fields are marked *