SERVER
GUIDE
HoB Server Installation Tutorial
Welcome to the wonderful, mysterious, adventurous and sometimes confusing world of online game serving! This documents purpose is to assist a newcomer to the game server community in the installation and configuration of Heat of Battle. While this task may seem daunting, it's not. It does require some patience, creativity and diligence.
Before we get started, there are some assumptions that need to be mentioned.
CoD supports two server platforms: Windows and Linux. For Windows, it's recommended to be using a server OS (like Windows 2000 server or Windows 2003 server). Though WinXP Pro does work well, if you plan on making money with this box, you will save yourself hours of potential headaches and tech support calls by using a more reliable OS. There IS a reason for these products to exist. Reliability and stability are at the top of that list. Speaking of reliability and stability, Linux is a great platform for gaming servers and CoD loves it. If you have the experience in any mainstream distribution (like RedHat, Debian, etc.) or are adventurous, this is the OS for you. The guide will cover installation for both platforms. Configuration is common between the two.
Security is JOB ONE. DO NOT IGNORE THIS FACT! Firewalls are your first line of defense against the hostile, leech-infested waters of the Internet. Most of you will be behind routers that are professionally maintained by large providers. So, though you might not have the latitude to make changes, that doesnt preclude you from asking questions. Know what your security measures entail. Your sanity might depend upon it. And, security is easier to deploy at the front-end of the project. Plan ahead. Blocking a particularly persistent asshat is infinitely easier if you have a good firewall. If you are on a cable/DSL circuit, chances are you have a router with some firewalling between you and the Internet. If not, then use something, even if its Microsofts Personal Firewall for Windows or basic IPTABLES/IPCHAINS for Linux. Practice safe computing.
Do NOT run the Linux game server as ROOT! Dont make me repeat myself. There are more exploits than Carters got pills (cheesy American cliché) solely designed to render shell control. By running your game as a limited-access user, you prevent wide-scale damage.
It is beyond the scope of this document to cover any security topics in detail. Their use is highly subjective and requires proper planning for success. Please refer to any of the numerous online resources for further information or contact us for some suggestions.
Basic Steps:
Windows: Copy/Install CoD
Windows: Install HoB
Linux: Install CoD
Linux: Install HoB
Set Server Configuration
Windows: Starting the Server
Linux: Starting the Server
Testing the Installation
(DISCLAIMER: This info
is based upon feedback from the IWNATION.com forums. Any software licensing
issue is NOT implied in this document. If you have any questions or concerns,
contact Infinity Ward, or your legal council, for first-hand clarification.)
A dedicated server does not require a separate copy of CoD to run. The Linux
dedicated server software is available at no cost, so the Windows side is
considered the same if operated ONLY as a dedicated server.
GETTING STARTED
Windows Version
Everyone is on a budget. Hell, even Bill Gates has to keep tabs on his IT wallet wait strike that. Regardless, this tutorial is based on WindowsXP Pro because of its lower cost and wider entrenchment in the community. I always recommend server-specific OSes when possible, but I also understand the reality of economics. So there!
Installing the OS is up to you. The cleaner the install, the better. so be sure to use any of the online resources for optimizing your XP machine. We will begin from the point of OS install completion.
Copy Install
The easiest way to jump-start the Windows install is to copy the existing
Call of Duty directory from your client machine to the new server. Copy
and paste the \Call of Duty folder into the \Program Files directory. As
updates are released, you will be less inclined to drop files into the wrong
place. So, if possible, drop the install into c:\Program Files\Call of Duty\
or on any other drive - just preserve the directory structure, like e:\Program
Files\Call of Duty\.
or
Install CoD from CD
If you dont have a current installation of CoD to use, you can install
CoD from CD. Again, try to use the default install locations where possible.
Install HoB
Download the latest copy of the HoB server installer. Refer to www.heatofbattle.net
for the latest download locations. Decompress the file into the recommended
location. Change the drive letter as required. Be sure to preserve the \hobv3
directory for installation.
For reference, the Windows
HoB installer places the following files into these directories:
\Call of Duty\hobv3\HoBHelp
\Call of Duty\hobv3\HoBOnline
\Call of Duty\hobv3\ReadMe.txt
\Call of Duty\hobv3\uninstall.exe
\Call of Duty\hobv3\zzz-hob0.pk3
\Call of Duty\hobv3\zzz-hob1.pk3
\Call of Duty\hobv3\zzz-hob2.pk3
\Call of Duty\hobv3\zzz-hob3.pk3
\Call of Duty\hobv3\zzz-hob4.pk3
\Call of Duty\hobv3\zzz-localized-english_hob0.pk3
GETTING STARTED
Linux Version
We are going to assume that the reader knows SQUAT about Linux or CoD/HoB. So, this may be painfully obvious to most of you, but we were all noobies at some point. This is for their benefit. Please bear with me
Im starting at a point just after the OS install. The major assumptions here are that we are using Red Hat Linux (works for any other flavor, though) and that youve never installed CoD/HoB on this machine.
OK, first, as root, you need to create the directory to install the CoD server. Again, staying generic, lets select /usr/local/games. Copy your downloaded copy of COD-lnxded-1.2.large.tar.bz2 to that directory. Make the file executable w/:
chmod 500 COD-lnxded-1.2.large.tar.bz2
Next, you can unzip and decompress the tarball in one command:
tar vxzf COD-lnxded-1.2.large.tar.bz2
Now you have a new directory
filled with the joy that is Call of Duty Dedicated Server! Settle down Sparky,
weve got a way to go yet.
While still inside the /CoD directory, create the directory for HoB:
Mkdir hobv3
HoB install is the next on the menu. Copy the file, HeatOfBattle_v30_FullLinux.tar.gz, to the /hobv3 directory and unzip like above:
tar vxzf HeatOfBattle_v30_FullLinux.tar.gz
For reference, the Linux
HoB installer places the following files into these directories:
../hobv3/ReadMe.txt
../hobv3/zzz-hob0.pk3
../hobv3/zzz-hob1.pk3
../hobv3/zzz-hob2.pk3
../hobv3/zzz-hob3.pk3
../hobv3/zzz-hob4.pk3
../hobv3/zzz-localized-english_hob0.pk3
About access rights
I have serious reservations making any specific recommendations about access
rights. Each system is unique and the decision falls on the shoulders of
the owner/admin. I have found several threads discussing the potential security
issues surrounding the execution of CoD server as Root. The bottom line?
Dont do it. Change the access rights to the CoD directory to allow
execution by local users (anyone other than root). That can be done by running
the command from the prior directory /usr/local/.
cd /usr/local/
chmod 755 R CoD/
THIS SETTING MAY NOT BE RIGHT FOR YOU!! Please determine the best access rights for your application and adjust accordingly.
The next step is to set up all of the server related files found in your CoD directory.
Set Configuration
There are a few simple files that need to be in the correct location for
proper configuration. Those include:
game_mp.i386.so
(Linux only)
hobserver.cfg (name it however you want)
(Linux) Copy the game_mp.i386.so file to /hobv3 directory. From the /cod
directory, execute:
cp game_mp.i386.so ./hobv3/.
(Both) Create a new file called hobserver.cfg in the /Call of Duty/main/ directory
(Both) Modify the hobserver.cfg to reflect your server setup.
See the Official HoB Server CVAR thread for complete, up-to-date configuration information.
Starting The Server
This is the moment youve
been waiting for! Drum roll please
Lets first test the basic functionality of your new server build.
To accomplish this, we must provide the server app with some critical information:
Define the gametype
Define dedicated server type
Execute your server config file
Activate map rotation
Define starting map
Linux:
./cod_lnxded +set fs_game hobv3 +set dedicated 2 +exec hobserver.cfg +map_rotate +map hob_village
Windows:
"C:\Program Files\Call of Duty 2\CoDMP.exe" +set fs_game hobv3 +set dedicated 2 +set fs_homepath "c:\Program Files\Call of Duty 2" +exec hobserver.cfg +map hob_village
Now, you might be saying to yourself, Boogie, what the HELL are you talking about? Geek speak was not a foreign language option in school. Explain this stuff in English!. Here you go:
NOTE: there are numerous reasons for executing certain parameters from the server launch versus within the config file. That decision is up to you and YOUR situation. This example is for demo purposes only. I highly recommend researching this topic at one of the numerous online resources listed at the end of this document.
+set fs_game hob is
critical to operating HoB.
+set dedicated 2 specifies that you are running a server over the internet.
+exec hobserver.cfg specifies which server configuration file to use. Be
sure to reference the correct file we just made!
+map_rotate This activated map rotation. If you use PunkBuster, this MUST
be listed in the server config file instead.
+map hob_village This sets the starting map. If you don't specify the map
here, the server will fail to start.
+set fs_homepath / fs_basepath (optional) will force CoD to operate from
the files found in your specified directory. This is important when you
are operating numerous game slots on the same machine. This is optional/unnecessary
for single slot users. PunkBuster makes this switch more necessary in some
installations.
Is it up and running?
Your console should look like this for Windows:
COD MP 1.2 build win-x86
Jan 20 2004
----- FS_Startup -----
Current language: english
Current search path:
C:\Program Files\Call of Duty 2\hobv3\zzz-localized_english_hob0.pk3 (3
files)
C:\Program Files\Call of Duty 2\hobv3\zzz-hob4.pk3 (73 files)
C:\Program Files\Call of Duty 2\hobv3\zzz-hob3.pk3 (104 files)
C:\Program Files\Call of Duty 2\hobv3\zzz-hob2.pk3 (7 files)
C:\Program Files\Call of Duty 2\hobv3\zzz-hob1.pk3 (66 files)
C:\Program Files\Call of Duty 2\hobv3\zzz-hob0.pk3 (74 files)
C:\Program Files\Call of Duty 2/hobv3
C:\Program Files\Call of Duty 2\main\pak8.pk3 (235 files)
C:\Program Files\Call of Duty 2\main\pak6.pk3 (3 files)
C:\Program Files\Call of Duty 2\main\pak5.pk3 (4858 files)
C:\Program Files\Call of Duty 2\main\pak4.pk3 (1668 files)
C:\Program Files\Call of Duty 2\main\pak3.pk3 (1992 files)
C:\Program Files\Call of Duty 2\main\pak2.pk3 (694 files)
C:\Program Files\Call of Duty 2\main\pak1.pk3 (2642 files)
C:\Program Files\Call of Duty 2\main\pak0.pk3 (12816 files)
C:\Program Files\Call of Duty 2/main
C:\Program Files\Call of Duty 2\main\localized_english_pak2.pk3 (9 files)
localized assets pak file for english
C:\Program Files\Call of Duty 2\main\localized_english_pak1.pk3 (3736 files)
localized assets pak file for english
C:\Program Files\Call of Duty 2\main\localized_english_pak0.pk3 (1204 files)
localized assets pak file for english
File Handles:
----------------------
30196 files in pk3 files
execing default_mp.cfg
couldn't exec language.cfg
execing config_mp.cfg
couldn't exec autoexec_mp.cfg
Hunk_Clear: reset the hunk ok
...detecting CPU, found AMD w/ 3DNow!
Measured CPU speed is 1.53 GHz
System memory is 768 MB (capped at 1 GB)
Video card memory is 0 MB
Streaming SIMD Extensions (SSE) supported
Winsock Initialized
Opening IP socket: localhost:28960
Hostname: tester
IP: 192.168.1.1
--- Common Initialization Complete ---
Working directory: C:\Program Files\Call of Duty 2
execing hobserver.cfg
net_ip will be changed upon restarting.
logfile opened on Tue Mar 09 04:23:48 2004
g_gametype will be changed
upon restarting.
map_rotate...
"sv_mapRotation" is:"gametype hob map hob_village gametype hob map hob_dawnville gametype hob map hob_railspike gametype hob map hob_offensive gametype hob map hob_scbeta"
"sv_mapRotationCurrent" is:""
Setting g_gametype:
hob.
Setting map: hob_village.
------ Server Initialization ------
Server: hob_village
Hunk_Clear: reset the hunk ok
----- FS_Startup -----
Current language: english
Current search path:
C:\Program Files\Call of Duty 2\hobv3\zzz-localized_english_hob0.pk3 (3
files)
C:\Program Files\Call of Duty 2\hobv3\zzz-hob4.pk3 (73 files)
C:\Program Files\Call of Duty 2\hobv3\zzz-hob3.pk3 (104 files)
C:\Program Files\Call of Duty 2\hobv3\zzz-hob2.pk3 (7 files)
C:\Program Files\Call of Duty 2\hobv3\zzz-hob1.pk3 (66 files)
C:\Program Files\Call of Duty 2\hobv3\zzz-hob0.pk3 (74 files)
C:\Program Files\Call of Duty 2/hobv3
C:\Program Files\Call of Duty 2\main\pak8.pk3 (235 files)
C:\Program Files\Call of Duty 2\main\pak6.pk3 (3 files)
C:\Program Files\Call of Duty 2\main\pak5.pk3 (4858 files)
C:\Program Files\Call of Duty 2\main\pak4.pk3 (1668 files)
C:\Program Files\Call of Duty 2\main\pak3.pk3 (1992 files)
C:\Program Files\Call of Duty 2\main\pak2.pk3 (694 files)
C:\Program Files\Call of Duty 2\main\pak1.pk3 (2642 files)
C:\Program Files\Call of Duty 2\main\pak0.pk3 (12816 files)
C:\Program Files\Call of Duty 2/main
C:\Program Files\Call of Duty 2\main\localized_english_pak2.pk3 (9 files)
localized assets pak file for english
C:\Program Files\Call of Duty 2\main\localized_english_pak1.pk3 (3736 files)
localized assets pak file for english
C:\Program Files\Call of Duty 2\main\localized_english_pak0.pk3 (1204 files)
localized assets pak file for english
File Handles:
handle 1: console_mp.log
----------------------
60392 files in pk3 files
------- Game Initialization -------
gamename: Call of Duty
gamedate: Jan 20 2004
0 teams with 0 entities
-----------------------------------
-----------------------------------
Resolving codmaster.activision.com
codmaster.activision.com resolved to 63.146.124.59:20510
Sending heartbeat to codmaster.activision.com
Hitch warning: 3120 msec frame time
Resolving codauthorize.activision.com
codauthorize.activision.com resolved to 63.146.124.59:20500
Hitch warning: 6077 msec frame time
Hitch warning: 850 msec frame time
If your screen looks something like this, regardless of platform, then everything
is running fine. Your server is ready to play on! If not, then look for
specific clues to the failure. Most involve incorrect file location. Find
the lost file and correct the directory definition. If, in Linux, CoD runs
but HoB won't start, check to make sure the game_mp.i386.so is located in
the /hobv3 directory.
Other Stuff
There are numerous add-ons/plugins for your server Some of the most beneficial
an popular are:
To be updated soon
Finally, spend countless hours keeping-up w/ the latest trends in HoB, CoD, Windows, Linux and gaming in general. Join a few forums and actively participate. Become part of the community and improve your personal skills with help from your peers. Sometimes the craziest stuff revolutionizes an industry
This was a culmination of years of experience, research, advice and pure luck. ;)
Remember, Admining
isnt just a job, its an adventure!
Please check the Server
Admin forum at the Heat of Battle website for sample server configs
and other things to help get you off the ground. Thank you for running a
Heat of Battle server!
___________________________________________________
All Content in this Manual © 2004 Heat of Battle Team.
Unique Content Featured in previous, current, and future versions of Heat
of Battle is © 2004 Heat of Battle Team.
Do not use content from Heat of Battle without the explicit permission of
the authors.
You can contact us by visiting http://www.heatofbattle.net