Setting up a basic online Quake 3 MP server, dealing with fire walls, map rotations and problems
Setting up a Q3 MP server. One of the greatest mysteries of the universe, the Q3A game server, is revealed here. See it in all it's glory and understand it's unfathomable depths.... mmmm, not quite, read this though and you be on the path of enlightenment.
"See instructions below on how to use"
If you 'Skirmish' a lot on single player then setting up a multiplayer server game shouldn't be too difficult.
Open a q3 game as normal and go into the 'mulitplayer' screen
Click on the 'create' button [bottom 2nd right]
Choose the 'game map' you want to play. Click 'next'.
bot skill :if you're going to include 'bots' in the game you can set their 'difficulty' here
player list : 8 players is the default setting for the game (you can modify this later)
map and game type : this is the game map you chose earlier, this is the one you will be playing (can be modified later).
frag / time limit : set the frag limit (if you leave this blank it will default to the limit that goes with the map in 'normal' game play). Set the time limit here as well.
pureserver :if you switch this 'on' , a person can only log on to your server if the main q3 game files on both systems (your server and the player/client) are the same. Any 'cheats' (i.e.. making characters stronger, faster etc.) will mean that they wont be able to log on to your server. Click 'off' to allow cheats'.
dedicated : do you want to be part of the game yourself? or is this game going to be solely 'dedicated' to the game (via the Internet or LAN).
no : to be able to play in the game your setting up
Internet : allow others to access the game over the Internet
LAN : allows others to access the game over a local area network
If you chose 'Internet' or 'LAN' you generally cannot play the game on the server itself. If you wanted to play you would need to access the game by using a PC connected by LAN or Internet.
name : give your server a name so that it shows up when players do a multiplayer game search
fight : depending on how you've set up your game, you'll now see one of two things, the normal game screen which means you're joining the game, or the system console running on your desktop, which means you set the game as dedicated
That's the basic's, which you need to familiarise yourself with before fiddling around with the server console.
A bit more advanced set-up
As mentioned on the above it's best to understand the basics of setting up a game server before you embark on the console which should look like this; picture below.
All your commands are typed into the console using the white box (see highlighted area in picture above) and unlike the game console (which is activated in game by pressing the key above the tab key) you can't use the '/' prefix to indicate a command, instead most have the 'sv_' (server) or one of several other prefixes (r_, com_, cg_ and many others).
Once you've figured out what command you want to enter, just type it in, generally it won't be executed until you restart the match or q3 itself (exceptions usually are map and bot changes. For example, the following will start q3dm17;
- /map q3dm17 [Enter/Return]
If you set a (dedicated) server up for play over the Internet, by default a 'ping' (a packet of data containing basic details about the game you're setting up) is sent to the main q3 server which checks what IP addresses are available and can be given to your game (it 'resolves' an address, which is a series of numbers that allow computers to talk to each other e.g. 220.127.116.11). Once the address is resolved other players can then join your game; basically you're exposing your q3 bits to the world.
Hot-tip : have a look in the 'Quake 3 Help System' (Start > Quake 3 Arena > Help System [if you've installed quake3 in it's default directory click here]) under 'dedicated server' it lists some of the basic's, game types, memory allocation, IP addressing.
to join the game now running, the ideal situation is to have two PC's, connected together with LAN cards (or a network hub), one running ('hosting') the game server, the other to join the game with. The server doesn't need to be powerful either, there are q3 servers out there running p166's.
From a servers point of view, two things that seem to make a notable difference to game play are RAM and access type / speed, you need as much ram as you can lay your hands on and a decent (fast..!) connection to the net. A 56k modem will just about manage 3 players with pings of about 250-350, you could push it to 4 players but you get a lot of 'connection interruptions' or 'pinglocks' (well that's the polite version anyway!).
You can also join your own game server by re-launch q3 again on the same PC as the running server and browsing your 'local' connection to find the game.
The one big drawback of this is that you really do need a s**t hot PC to give good game play and good server access, otherwise players that join your server won't be there for long, game play will 'stutter' like mad, they'll get a '999' ping and they will be thoroughly p*ssed off...!
One of the other great mysteries of the universe, changing maps, is unravelled here, soon the light of enlightenment will awaken from within and you will be on the path of righteousness. Hmm, OK, it's easy when you know how.
Changing a single map from the server console is dead easy, all you need do is type
Make a note of which number goes with which map from within the game (when you choose an arena there's a number underneath the picture, this is used to tell the server which map you want).
You can play through your favourite maps by creating a 'map cycle', this is a text file which lists the maps you want to use e.g.
// START of map rotate cfg file
// This config file cycles through the maps listed below in the game.
// Free For All mode.
set g_gametype 0
- set m7 "fraglimit 20; map q3dm6; set nextmap vstrm16"
- set m16 "fraglimit 20; map q3tourney4 ; set nextmap vstr m19"
- set m19 "fraglimit 20; map q3dm15 ; set nextmap vstr m20"
- set m20 "fraglimit 20; map q3tourney5 ; set nextmap vstr m21"
- set m21 "fraglimit 20; map q3dm16 ; set nextmap vstr m22"
- set m22 "fraglimit 20; map q3dm17 ; set nextmap vstr m7"
// cfg map rotate file - END
Copy and paste the above text between '// START..' to '.. END' into a *.txt file and then save it to your /baseq3 folder. Rename it to something appropriate with the *.cfg file extension and you should be ready to rock 'n' roll.
Note : if you look at the text above you will see the numbers in bold text ('.. set m7 ..' & '.. vstr m16 ..') repeat at start of the line below, this gives basic instructions to the server to go to that named map next. You can change the order and which map are cycled through by changing this text, just remember to 'instruct' the server to go back to the first map to play the cycle again..!
All you need to do is copy and paste the text above to a new text document (notepad or similar). It must be saved with a '.cfg' file extension. The filename will look something like this, 'cycle1.cfg'. You then need to save/copy/move the file to your 'baseq3' folder. You can then execute the map cycle by typing in the command 'exec filename.cfg'. Using our .cfg file it looks like this when typed into the console
Doing this will shutdown the current game and any bots and/or players that you left in the previous map should 'roll over' into the new game. Simple eh..!. Well, once you got past the basics shown above you can start to 'program' all sorts of 'things' into the game, from setting 'maxping' to zero-G in game.
Problems setting up an online Quake 3 server
There appears to be a nasty little problem that users of some broadband services seem to be encountering when trying to set up an Internet server. Everything works fine; the game runs, maps load and you can even connect over a local LAN connection. But for some reason you or your friends simply cannot connect to your own online server. It appears the culprit for this problem is the IP number your service provider assigns to your connection via the broadband service you're subscribed to.
Because of the way most broadband accounts work (at least in the UK via ADSL) you don't get assigned a 'proper' IP address (which you would if you had a connection using a 'static' IP), you're basically piggybacking on your service providers IP address and getting assigned what is in effect a 'local network' address (in the same way as you can set IP numbers on your own home network; 127.0.0.1 being typical). The ramifications of this are that it's often incredibly difficult to find out what your actual IP address is, even when using an online tool like 'what is my IP', they're more often than not listing your service providers IP and not your computers connection to the Internet.
The bad news is, there doesn't appear to be an easy way around this problem; if indeed there is one, and because of the way service providers work you won't know you've got a problem until you try to set up a server. If that happens, you're stuck, they (ISP's) don't really like people running online servers over their connections; uses too much bandwidth or so they say, so they won't necessarily be inclined to help you.
Playing with fire (walls)
When this article was originally written, oh so many years ago, personal fire walls and network routers were pretty rare; everyone was basically connecting a single PC to the net. Nowadays, you shouldn't really be on the net without a firewall running at least in software on your PC.
This brings us to our current issue, a network server not being seen over the local network. Assuming you've actually set the network menu to browse you local network instead of the net (*cough*) the chances are now that if you're not seeing the game it's being blocked by your firewall (hardware router type or software ZoneAlarm type).
There are going to be two basic types of block; a 'program block', and a 'network IP block'.
A 'Program Block'
A 'program block' is going to be client based, basically this means that Quake3 can't get out from your PC to view the network, the firewall will be blocking the programs access rights to the network (send requests). If this is the case then you need to set up permission for Quake3 to be allowed access, the chances are that if you can already browse the net for online servers then access rights have already been set up for Quake3.
If you've not done either then you'll need to look at your firewall settings for a list of programs that have tried to access the network. In there will be an entry for Quake3 (if not you should be able to browse to where the exe is), it should be a simple case of selecting the entry and highlighting various network options, how you do this will depend on your network and firewall set up. As an example ZoneAlarm has a 'program' page that lists everything that's tried to access either the network or the Internet. All you do is find the entry you want (or browse to the exe as per above), select it and then check off the options you want to apply to that program and et viola Quake3 can now see the network (usually after a reboot even on XP)
A 'Network Block'
A 'network IP block' is different to the above and is more about 'received requests'. Now the problem here is that exactly how you tell a firewall to allow access to a certain network IP's is going to vary depending on the set-up you have, so only 'generic' info can be given here, but as an example in the case of ZoneAlarm (software firewall - I use this on my machines, very good app it is too.!) there is a page - alerts and logs tab - which lists the specific received requests that have come into the PC which are blocked automatically; by default nothing gets through. In here as you look down the list, you'll see all sorts of stuff, most of it is junk but there will probably be the odd entry that looks familiar, you'll be seeing either the IP address of your other PC on the network or the name of the it.
For ZoneAlarm to allow access it's a simple case of selecting the correct entry and clicking on the 'add to zone' button, this will then set traffic to pass through that address. Again the chances are that if you can browse for files on your network then PC 2 PC access has been set up already and the problem is more likely to be one of local blockage as mentioned above.
If after fiddling with this stuff you still can't get it to work try connecting the PCs directly together (using a crossed cable) and see if they find each other - disable any firewalls so you *know* there's nothing blocking access at all. If the PCs still can't find each other then you've probably got a wider problem that's not just effecting Quake3 but the whole network.
Q : setting up zonealarm for hosting online games
A : If you can already play Quake 3 online then you may not need to do anything else to ZoneAlarm in order for you to create a server for online play. However, if you have problems with the server not getting online or you're setting up for the 1st time you'll need to check a few things. First drop into windowed mode (Alt+[return] when Quake 3 is running), this is just a precaution to stop your PC locking up or crashing when you try to do something in the background when Quake 3 is full screen - it doesn't like that.!
Go into the 'multiplayer' menu. As soon as you do this ZoneAlarm *should* throw up a 'permissions' warning flag which you need to say 'yes/no' to, click the 'remember setting' checkbox (use Alt+TAB to jump between Quake 3 and Zone Alarm so you can actually click on the warning flag). This sets the access permissions for Quake 3 to connect to the Internet, and once done should then allow you to create a server. You may get another permissions flag when you do that.
If none of the above happens then you'll need to open Zone Alarm and check the settings from there. Click the 'Program Control' menu item on the left to open the relevant page, you'll be on the 'Main' page by default. In the top right, just under the 'help' icon are a couple of page tabs; 'Main' and 'Programs', click 'Programs'. You should now see a list of names displayed, each being a program that has tried to get through Zone Alarm and access the Internet. There should be an entry somewhere on that list for 'quake3.exe', highlighting that entry will show you what permissions it has, it should ideally have green 'ticks' (check marks) in each of the columns, if not, click in the respective column and choose 'allow'. Leave Zone Alarm open and go back to Quake 3 and try to connect to the Internet again, if nothing happens close and restart the game and then try it again, if everything else on your system is OK then you should find you can access the net and set-up and run a Quake 3 server.
This also applies to setting up and running servers for Doom 3, Return to Castle Wolfenstein, Call of Duty, etc.. etc..