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)

(Figure 1-6)

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