
Relic's Introduction to Game Types
For UnrealED 3.0 / UT2003-2004
The purpose of this tutorial is to cover the basics of the various game types in Unreal. By the end of this lesson, you should be able to create maps for DM, DOM, CTF, and BR game types. These are the most common, so they will be the only ones covered. I will also briefly cover the actors involved in UT2004 Onslaught games. You should have a basic understanding of the Unreal editor before beginning this lesson.
Some beginner mappers think they can simply make their map, add the game objectives - like the BR goals or a CTF flag base - and expect everything to run fine. Besides naming your map correctly (i.e. BR-mymap or DM-mymap) the first thing that you should do for any game type is define a few parameters in the level properties. To do this, click the view menu, then choose level properties. You will see a bunch of settings. We are only concerned with the levelinfo properties, so expand it. The two important settings in the levelinfo settings are the DefaultGameType field and the PreCacheGame field. Usually, the PreCacheGame field is already set for you. For most cases, this should be set to xGame.xDeathMatch. The DefaultGameType field needs to reflect the type of game you are making. If your map crashes unexpectedly, or if it loads as a mutant or last man standing map, then change the PreCacheGame field to match the DefaultGameType. Here are the appropriate DefaultGameType settings per game type...
Bombing Run - xGame.xBombingRun
Capture The Flag - xGame.XCTFGame
Death Match - xGame.xDeathMatch
Domination - xGame.xDoubleDom
Onslaught - Onslaught.ONSOnslaughtGame
(Figure 1-1)
Now that we have that taken care of, we need to know where to find the game objective actors - like the bomb goals, or the domination bases. I am assuming that you already have a map started, and are ready to add these actors. All of the game objectives can be found in the actor class browser. Open it and find the NavigationPoint actor class. Expand this class and you will find all of the following game objective actors (see figure 1-2).
Figure 1-2
These should be pretty self-explanatory, with the exception of the xBombDelivery actor. This is the only actor that will require some property changes. To add a game objective, simply select it in the actor browser. Next, right click in your map and choose 'add whatevergameobj here'. For the xBombDelivery actor, you will need to define which team it belongs to. To do this, simply place the actor in your level. Double click the actor, or right click on it and choose properties. At the bottom of the properties dialog box, you should see a parameter called Team. Expand this and enter a number for the desired team as follows: 0 defines RED team and 1 defines BLUE team.
Figure 1-3
Now that we have covered some essentials, let's move on to some game specific details that must be added for each game type to work correctly. We'll start with deathmatch since it is the easiest.
Deathmatch games don't require anything fancy except plenty of playerstart actors. These should not be assigned to a specific team number, unless you are making a team deathmatch level. Unlike BR and CTF, where you would normally place playerstarts near the blue and red bases, in deathmatch it's a good idea to evenly distribute your playerstarts around the map. You don't want everyone spawning in the same room ... although it might be interesting and bloody. Next simply place the necessary pathnodes/navigation points and your bots will be happy. Note that map symmetry is not an issue in deathmatch.
The remaining game types require some symmetry to the map itself for it to be a success. You don't want one team to have an advantage over the other. This means you will need to consider weapon and pickup placements, and overall map layout. Symmetrical maps aren't a must, but usually work the best.
Capture The Flag is probably the 2nd easiest to tweak. Again, there is not much to add besides the flag game objectives themselves and good bot pathing. One thing to mention though would be the use of assault paths, sniping volumes, and so on. This simply makes for better bot AI. That is another subject, and would require it's own tutorial. Other than that, just be sure to assign team numbers to your player starts so that they spawn in the correct bases.
Bombing Run might be the trickiest game type for UT2003. It's not so hard to get the game working, but rather teaching the bots what to do. Several things need to be considered when bot pathing in this game type. BR almost requires map symmetry to keep the power balance even. The goals and ball should be the same distance from each other, and weapons/pickup layout should also be even on both sides. If not, you will find that one team always has an advantage over the other. I have seen this happen simply because a single pathnode, weapon, or pickup was not also placed on the other team's side. The xBombSpawn should be placed dead center of the map, or equal distance from each base. It should also be fairly easy to access so that bots do not get confused. If your map requires a few tricks or jumps to reach the ball, then remember to also place forced paths, jumpspots, etc so that they can reach them. Getting your bots to the ball is one thing, getting them to score is another. In my experience, there are 3 ways to ensure that a bot will know how and where to score without writing AI scripts. The first method is using shootspots. This actor can be found under NavigationPoint>ShootSpot in the actor browser. The actor tells a bot "hey, this is a good place to shoot the ball to score!". Bots will tend to shoot the ball rather than jump through the goal if they are under attack. The actor also lures them to the goal itself. Red shootspots should be placed at the red goals, blue at the blue goals. The only placement guideline here is to make sure it's a reasonable place to score. The 2nd method is to place a NavigationPoint>JumpDest>Jumpspot actor near the front or behind the goal. But most important is a forcedpath between a pathnode and the xBombDelivery actor. This will force a bot to jump through the goal if it collides with the forced pathnode As with the xBombSpawn placement, make it fairly easy to access. If it's a tricky maneuver to score, make use of navigation actors to aid the bots or they will probably just wander around with the ball. The figure below is from BR-Anubis, and is a good example of these techniques...
(Figure 1-4)
Domination - About as simple as a CTF game. As with CTF, it might be a good idea to use assault path actors and sniping volumes to ensure good bot support. Not much else to mention here.
UT2004 Specific
UT2004 Onslaught - This is a different kind of beast. There are a ton of things to consider when making an ONS map. Most ONS maps are outdoor as they require plenty of room for vehicles. Outdoor or not, the same rules will apply. Here's where to find the ONS game objective actors in the UT2004 editor...
(Figure 1-5)
Map Origin - ONS uses the radar map to show nodes, cores, and navigation. If you do not have the center of your map placed that the origin, don't expect your radar map to work correctly. If you have already designed you map, but forgot to center it to origin, you can select all using the shift-ctrl-alt combo and left mouse button to select EVERYTHING in your map. Then just drag the entire map to center up with the origin, save, and rebuild. If you are unsure about where the origin is located, you can do this: highlight your builder brush, right click on it and chose reset>all. This will move the brush to the maps origin and give you a reference point. Center you map around this and you'll be OK.
Map Flow - As in CTF or BR, you will want an even map flow. These maps are not usually symmetrical, but they do have equality. Since either team can take control of the entire battlefield, you want to give each team equal opportunity to defend and attack. Use of strategic "choke points" is a good idea...places to cut off the enemy's movement. Vechicle and turret placements play a big part in this.
Power Cores/Nodes - Of course you need a blue and red power core! The number of power nodes is not important. An ONS game can have 1 or 20 power nodes and be just as challenging. Several things to remember about power node areas. Place plenty of playerstarts around EVERY power node. If you don't place any spawn points, you won't be able to teleport to that node. Plus you don't want spawn killing occuring because you only placed one or two playerstarts around the node! Remember that vehicles will not spawn until a team controls a node. It's a good idea to place your vehicle spawn points near the nodes - and provide a variety of different vehicles to suit your map.
Link Setup - I just finished an ONS map and one of my rooms was completely USELESS. This was because I had a poor link setup. The first time you run your ONS map, you will notice that there aren't any cores or nodes in your radar map. Before you can use them in the game, you MUST create a link setup. Also, vehicles will not spawn until you have created your links. To create your link setup, run your map from within the editor. When the map starts, hit ESC and choose the "Map" tab at the top (in game). Next click on the "link designer" button. Now you should see your cores and nodes, but without any paths between them. To start linking, simply click on a node or core and then click the next node or core you want to link to. When you are finished, click on the "export to unrealed" button to create a link setup actor that can be pasted into your map. Exit the game at this point and return to the editor. In any of your viewports (i like using the top viewport) right click and go to edit>paste>paste here and the link setup actor will appear. It doesn't matter where you place the actor, but I always place mine near my skybox and increase it's drawscale to 5 so that it is easy to find later. Save and rebuild your map and your cores/nodes should appear in the game and in your radar map. Figure 1-6 shows the link designer in the game...
(Figure 1-6)

This concludes this tutorial. More advanced options may be covered at another time.