Rocket boy takes off to the GameAdmins forums! GameAdmins.com Website - News you can Use!


     Page Hits
We received
6286929
page views since September 2002

     Site Menu
· Home
· Forums
· AvantGo
· Content
· Downloads
· Feedback
· Members List
· News Archive
· Private Messages
· Recommend Us
· Search
· Server Guides
· Submit News
· Surveys
· Top 10
· Topics
· Your Account

     User Info
Welcome, Anonymous
Nickname
Password
(Register)
Membership:
Latest: Sup3rior
New Today: 1
New Yesterday: 0
Overall: 27728

People Online:
Visitors: 0
Members: 0
Total: 0

     Survey
Would You Like to See a New Theme?

Hell Yea!
No -- This One is Fine.
New is Good, Old is Good Too.



Results
Polls

Votes: 106
Comments: 1650

     Amazon




Doom 3 Dedicated Server Guide

(3292 total words in this text)
(16447 reads)   Printer Friendly Page




Last Updated: 8/26/2004 by Zxel

We thought that you might be interested in how we configure our Doom3 game server so we've decided to show you how it's setup. Currently we're running it "plain Jane" with no major "tweaks". Doom3 is not the friendliest game to run as a dedicated server, you'll find Doom3 sucks up 100% of whatever CPU it's running on (even when empty). Some things in Doom3's code looks like it was bolted on at the last minute for internet play and some cvars are there but non-functional. Running the server above 4 slots is certainly not a difficult thing to do, however, keeping it stable over 12 slots is rough and above 16 will certainly get you into hot water, no matter what CPU you're on.

We are hoping that id software will come around to the importance (and cash potential) of internet play and patch these problems. We look forward to the Linux version (not released yet as of this writing) which hopefully will be a better platform to run on. To be certain for those familiar with "getting under the hood" of Quake3 and the genre of games on the same engine (like SOF2 and Wolfenstein) you will find a rich set of familiar code that can be easily "hacked or moded" to offer a variety of game play modifications. We look forward to a plentiful set of mods for this engine and although it isn't geared toward internet play we certainly see possibilities in the code to make it more CPU friendly and a welcomed next generation engine for internet game play.

This setup is geared toward the Windows version (as of this date the Linux version is not available), however, the configs should work fine on the Linux version once released. We've also provided a startup batch file to give you professional server crash restart and log control.

All config files should be placed in your base (under the Doom3 directory) or mod directory (if you run a mod), please note a default.cfg file was NOT included as we just decided to use the one included in the game pak file - you can of course override that by making your own file with the same name.

For your convenience we have zipped up all these files in a doom3.zip file and put it on our download site.

The startup command line:
top prev next

basic:
doom3.exe +exec server.cfg

advanced:
substitute the IP and Port info to match your needs (default values shown)

doom3.exe +set net_ip 127.0.0.1 +set net_port 27666 +set si_maxplayers 8 +exec server.cfg

The autoexec.cfg file:
top prev next
This file is run automatically every time the server is started up, certain cvars will only work in this file while others are best not placed inside it. Good for global cvar settings (although we keep ours lean).

// This config is always executed first    
set net_serverDedicated "1"   //make server a public dedicated server
set net_allowCheats "0"   //no cheating allowed here ;-)

The public.cfg file:
top prev next
In this file we put all the info we want to broadcast publicly about our server, including the server name (as listed in the game browser). You can extend or make up any info cvar you want here, the "sets" command is what makes a cvar public.

// Public server info    
seta si_name "GameAdmins ^1DOOM3"   //server name (can use color commands)
     
// public info    
sets ".Administrator" "Viruseater and Zxel"    
sets ".Connection" "OC48 - 2.48832 Gbps"    
sets ".CPU" "Intel P4 2.8Ghz 800mhz with 1Gb RAM"    
sets ".Clan" "open playing"    
sets ".Email" "doom3@gameadmins.com"    
sets ".Hosted By" "Clanservers.Net"    
sets ".Location" "Dallas,Texas"    
sets ".Plug" "God Bless the Game!"    
sets ".URL" "http://www.gameadmins.com"    
     
// add up to 4 additional master servers to report to
// net_master1 thru net_master4 (never use net_master0)
   
seta net_master1 "master0.gamespy.com"    
     
writeconfig doomconfig.cfg   //stamp config settings
wait   //wait till file is written before proceeding

The server.cfg file:
top prev next
Here we have the main server config file with most settings being specified here, note that we exec the public.cfg file above first to name the server and add the public info.

// Public Info    
exec public.cfg    
     
// General Settings    
set si_pure "1"   //server does not allow modified data
seta si_spectators "1"   //allow spectators or require all clients to play
seta g_spectatorChat "0"   //let spectators talk to everyone during game
seta net_serverMaxClientRate "25600"   //maximum rate to a client in Bytes/sec
seta net_serverClientTimeout "40"   //client time out in seconds
seta net_serverZombieTimeout "5"   //disconnected client timeout in seconds
seta net_serverMaxUsercmdRelay "5"   //maximum usercmds from clients the server relays to another client
seta net_serverAllowServerMod "0"   //allow server-side mods
     
//Logs    
seta logFile "1"    
seta logFileName "qconsole.log"   //console log - NOT a game stats log
     
// Game Settings    
seta si_gameType "deathmatch"   //game type - singleplayer, deathmatch, Tourney, Team DM or Last Man
seta si_timeLimit "15"    
seta si_fragLimit "30"    
seta si_teamDamage "0"    
seta si_warmup "0"    
seta g_balanceTDM "1"   //maintain even teams
seta g_countDown "10"    
     
//Passwords    
seta net_serverRemoteConsolePassword "remotepass"   //rcon password - change this!
seta si_usePass "0"   //enable client password checking - change to 1 to activate g_password
seta g_password "gamepass"   //game password - change this!
     
//Voting    
seta g_voteFlags "0"   //bit mask value - currently broke?
     
//Mod (comment out if no mod)    
//exec mymod.cfg    
     
//Map cycle
// game/mp/d3dm1 "Tomiko Reactor"
// game/mp/d3dm2 "Delta Lab"
// game/mp/d3dm3 "Frag Chamber"
// game/mp/d3dm4 "The Edge 2"
// game/mp/d3dm5 "Lights Out"
   
     
seta si_map "game/mp/d3dm3"   //starting map
seta g_mapCycle "maps"   //your .scriptcfg file
     
writeconfig doomconfig.cfg   //stamp config settings
wait   //wait till file is written before proceeding
     
//kick off the server    
spawnServer    

The maps.scriptcfg file:
top prev next
This file controls the server map rotation, notice it is code and shows how you can use the scripting code to modify your game server.

/*
map cycling script sample - select with g_mapCycle

the script is purged and reloaded at each map restart
which happens on map change, but also when hitting GAMEON
for persistance, you need to use the {get,set}Persistant functions.

files with .scriptcfg extension can be loaded outside of pure paks
*/

namespace mapcycle {
void cycle() {

// config
float cycle_maps = 1;
float cycle_gametypes = 0;

// cycle maps and game types
float replay_count = sys.getPersistantFloat( "replay_count" );
string si_gameType = sys.getcvar( "si_gameType" );
string si_map = sys.getcvar( "si_map" );
if ( replay_count <= 0 ) {
  // restart n times before next map
if ( si_gameType == "Tourney" ) {
  replay_count = 3;
} else {
  replay_count = 2;
}}
replay_count--;
sys.setPersistantArg( "replay_count", replay_count );
if ( replay_count <= 0 ) {
  // restart n times before next map
if ( si_gameType == "Tourney" ) {
  sys.setPersistantArg( "replay_count", 3 );
} else {
  sys.setPersistantArg( "replay_count", 2 );
}
if ( cycle_maps > 0 ) {
if ( si_map == "game/mp/d3dm1" ) {
  sys.setcvar( "si_map", "game/mp/d3dm2" );
} else if ( si_map == "game/mp/d3dm2" ) {
  sys.setcvar( "si_map", "game/mp/d3dm3" );
} else if ( si_map == "game/mp/d3dm3" ) {
  sys.setcvar( "si_map", "game/mp/d3dm4" );
} else if ( si_map == "game/mp/d3dm4" ) {
  sys.setcvar( "si_map", "game/mp/d3dm5" );
} else {
  sys.setcvar( "si_map", "game/mp/d3dm1" );
}}
if ( cycle_gametypes > 0 ) {
if ( si_gameType == "deathmatch" ) {
 sys.setcvar( "si_gameType", "Tourney" );
} else if ( si_gameType == "Tourney" ) {
 sys.setcvar( "si_gameType", "Team DM" );
} else if ( si_gameType == "Team DM" ) {
 sys.setcvar( "si_gameType", "Last Man" );
} else {
 sys.setcvar( "si_gameType", "deathmatch" );
}}
} else {
 sys.say( "^1GAMEADMINS.COM ^3map cycle: ^7restarting current map " + replay_count + " more time(s)" );
}

}}

The d3server.cmd file:
top prev
This is an example batch file you can use to automate the running of your game server - please note that it REQUIRES the "SLEEP" command included in the Microsoft Windows 2003 Server Resource Kit (free download from Microsoft) for the restart time delay setting to function. The sleep command included in the kit will work on Windows NT, XP and 2000/2003 (although the kit itself may not install). You can find the sleep command on the gameadmins.com website in the utilities download section if that is all you want (at least until Microsoft forces us to remove it), just save the command in your windows directory.

If you do decide to use the included batch file please READ IT! Inside you will need to configure it for your Doom3 setup, however, the file is heavily commented with help. You can put the batch file anywhere you want (it is not directory dependent).

d3server.txt - (save as d3server.cmd)
  

[ Back to Doom 3 | Server Guides Index ]




All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2002-2006 by GameAdmins.com
Some of the links on this website let you leave GameAdmins. These sites are not under the control of GameAdmins and GameAdmins is not responsible for the contents of any linked site or any link contained in a linked site, or any changes or updates to such sites. GameAdmins is providing links to you only as a convenience, and the inclusion of any link does not imply endorsement by GameAdmins.
PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Page Generation: 0.32 Seconds