SERVER GUIDE

HoB Server Installation Tutorial

Welcome to the wonderful, mysterious, adventurous and sometimes confusing world of online game serving! This document’s 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 doesn’t 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 it’s Microsoft’s Personal Firewall for Windows or basic IPTABLES/IPCHAINS for Linux. Practice safe computing.

Do NOT run the Linux game server as ROOT! Don’t make me repeat myself. There are more exploits than Carter’s 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 it’s 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 don’t 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…

I’m 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 you’ve 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, let’s 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, we’ve 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? Don’t 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 you’ve been waiting for! Drum roll please…
Let’s 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, Admin’ing isn’t just a job, it’s 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

GETTING STARTED | HUD | WEAPONS | SERVER ADMINS | TROUBLESHOOTING