Configuration I created for running nd80usa.net's game servers


From April 2003 until August 2005, I helped an aquaintance (and later friend), and former demi-admin of Xian's (Christian Antkow's.... of id Software) servers, by the name of ND80 (he was Notre Dame, class of '80) run a collection of game servers at nd80usa.net.

Initially, it was a single box running a single instance of id Software's Return to Castle Wolfenstein. However, that soon evolved to running multiple instances of the game on the box. When we saturated the first box, ND80 rented a second which increased the complexity of managing the site by quite a bit more than two-fold. As we ran more instances of the game and I foresaw where ND80 was headed, I realized we needed a centralized way to manage all our servers. So the by the time he had rented a 3rd system, I had started to move the management of the files/scripts/server definitions to cfengine control.

By early 2005, we had peaked at 5 boxes (dual-P4s with 1-2GB RAM on fat pipes) running up to 20 instances of Return To Castle Wolfenstein, Enemy Territory, Quake 3, Call of Duty, Battlefield X Y & Z (never played the COD or BF games since they didn't have a Linux clients, just Linux servers) as well as a few others. There were also the TeamSpeak (and later Ventrilo) servers for each game server and a central web server for the forums and gaming stats. The scripts and cfengine configurations I created allowed us to control all 20 servers from a centralized location and made it easy to move games instances from system to system in order to load-balance due to ever changing demand from the different game instances (a mod/map that was popular next week was often less in demand a week after). Furthermore, they were done in such a way that ND80 could change/move things as desired even though he had no Linux experience before renting his first server and was mostly terrified of a command line (your average Windows user).

I had hoped at one point to move the flatfile configuration of servers into a database with a nice web frontend that would provide complete control over server configurations which allow someone to run a similar site using only a browser. cvar (control variable) definition lookups, default settings, league settings, etc. would all be accessible/controllable without the site admin having ever to see a shell prompt. Unfortunately, a lack of donations and a change in community sentiment led to the demise of the game servers. To this day, only the forums remain. However, I did keep the cfengine files and server configurations and scripts in hopes that someday I, or others, might find it useful.

SiliconSlick
"We got a kinder, gentler, machine gun hand" -- Neil Young, Rockin' in the Free World, Freedom