Ready, Aim .... Fire Up the Gaming Server
Blasting enemies to smithereens isn't part of the normal remit of most server admins but it sure can be good fun. So why not take some of the skills you've amassed over the years and apply them to setting up your own dedicated game server, allowing you match wits with friends or colleagues in multiplayer gore fests?
|Setting up a gaming server is generally a piece of cake for most techies. The skills required transfer easily from the data center to home.|
Actually, multi-player gaming is about much more than creating mayhem: Depending on what game you choose to play, it can be as much about strategy, teamwork and quick thinking as it is about the speed of your trigger finger. But more of that later. Let's start with the principals.
Many computer games, such as Half Life, Unreal Tournament, and Halo - Combat Evolved, can be played as single-player affairs. At their core, the game engines can also be used to support many players at once playing various types of game against each other. And as it turns out, playing against other humans is much more fun than playing against the game's artificial intelligence. In multi-player mode, games get personal.
Some games have a built-in server that you can run to allow one or more other players to connect and play simultaneously, but this is analogous to working on a desktop PC while others in your organization use your machine for file storage. Just as you want a dedicated file and print server in a busy department, the best way to run multiplayer games is to set up your own dedicated game server.
What sort of box should you use? No hard and fast rules here because it depends on the game you plan on playing. In general, the older the game, the lower the spec the server requires, and a moderately specced machine should be fine. Two tips that will save you money in the long run: No need for a fancy (and expensive) graphics card for the server, and more RAM is always a good thing.
As to the server software itself, you may be planning to play the state-of-the-art Unreal Tournament 3, the evergreen Counter-Strike or a classic like Halo - Combat Evolved. Whichever you choose, you're going to have to Google for "dedicated server" to find the game's server software, and install it.
For the purposes of this article we'll look at how to get a Halo - Combat Evolved server up and running. I've picked Halo as it is a classic game, available relatively inexpensively, and fairly easy to set up. It also illustrates the principals behind most dedicated server software. From start to getting the server running, a multiplayer game should take no more than 30 minutes.
To play Halo in multiplayer mode on a dedicated server you'll need :
- A minimum of three moderately specced PCs (one server and two or more clients)
- Halo Dedicated Server software (available free)
- Two or more copies of Halo - Combat Evolved, available on Amazon.com for about $10 apiece
A quick Google search for Halo Dedicated Server finds the software you need at: http://www.microsoft.com/games/pc/halo.aspx.You'll also need to download and install Halo for Windows Dedicated Server v1.02; an update file, Halo for Windows Dedicated Server Update v1.06; and Halo maps, Halo for Windows Dedicated Server MAP Files.
The dedicated server software performs a number of key roles. At the most basic level it runs the game, allows players to join, keeps track of where each player is in the game world and shares this information with all the other players. Individual players' machines can then use their processing power and graphics cards to render the worlds as quickly as possible, getting information about all the other players from the server.
Every game's dedicated server software needs a certain amount of configuration before getting going. That's because, as server administrator, you'll usually have a large number of choices to make about how the game is played. These depend to an extent on the title you've chosen, but they usually include:
- The maximum number of players
- Whether the game is available to players connecting over the Internet or only those on the LAN
- What map you want the game to start up in
- What happens when players die (are they out for the rest of the round, or do they respawn (i.e., come back to life) immediately or after some delay)?
- What game variation you want to play in Halo, these include Oddball (keeping control of a skull for a given amount of time) Capture the Flag, and Slayer (kill as many people as possible), and team variations of these
Depending on the dedicated server software in use, you'll often be able to put all of these options into a configuration file, start the server (either from a GUI or a command-line interface) and point it at this file. Alternatively, you may be able to enter all of these configuration options as switches when you launch the program.
The Halo-dedicated server program, haloded.exe, automatically looks for a text file called init.txt in the directory in which it is located, and runs any commands it finds in the text file at start-up.
A typical init.txt file for Halo might look like:
sv_name Halo1 sv_public False sv_maxplayers 16 sv_password halo sv_mapcycle_timeout 15 sv_mapcycle_add timberland CTF sv_mapcycle_add dangercanyon assault sv_mapcycle_add gephyrophobia slayer sv_mapcycle_begin
Going though these lines in order, the init.txt file:
- Gives the server the name Halo1
- Makes the game LAN only (i.e., not available to players on the Internet)
- Sets the maximum number of players to 16
- Sets the server logon password to "halo"
- Sets the pause between the end of a game using one map and the start of the next with a new map to 15 seconds (providing time for players to see the game summary and statistics)
- Adds a Capture the Flag game using the Timberland map to the mapcycle (i.e., the list of maps and games that the server will play in order)
- Adds an Assault game using Danger Canyon to the mapcycle
- Adds a Slayer game using Gephyrophobia
- Starts the map cycle (the games defined above will play, one after the other)
With this init.txt file, starting the server haloded.exe will result in the following command console popping up:
|Halo Server Console|
The server administrator can use the console to start and finish games, kick or ban players, and generally manage the server.
Most dedicated server software packages allow the server admin (and other players with the authority to do so) to issue server console commands remotely, which means they can do so from their client PCs, rather than moving to the server.
In Halo, you can enable RCon (remote console) by setting a password from the console window:
rcon password command argument
Valid commands and arguments include:
|sv_ban [player name or index]||Ban the player with the given name or index from the server.|
|sv_banlist||Show the list of the banned players.|
|sv_end_game||End the current game and go on to the next one in the mapcycle.|
|sv_kick [player index or name]||Kick the player with the given name or index out of the game.|
|sv_map [map name] [game variant]||Start a game with the map and game variant. When the game is over it will restart, ignoring any games in the mapcycle.|
|sv_unban [player name]||Allow the player to join the server again.|
To join the game, players start Halo, choose the Multiplayer option, and select Direct IP, entering the local IP address of your game server and password specified in the sv_password line of the init.txt file in this case "halo"
To configure other games' dedicated servers, the details will always be slightly different but the principals are the same. In Counter-Strike, for example, you'll find at least four configuration files: an autoexec.cfg file that runs when the server starts, a server.cfg file that runs every time a game starts, a motd.cfg file with a message displayed to each user when he or she logs on to the server, and a mapcycle.txt file containing the maps through which the server will cycle.
The good news is you'll find plenty of configuration tips on the Internet to get the server going and multiplayer games running.
Which means all that remains is to start playing and get shooting.