The Black Sheep Wiki
The Black Sheep Wiki
Search:
UT2k4 | Onslaught Map Creation Tutorial

START WITH A LAYOUT

The usual way to start making on Onslaught map is to start with a terrain.
The RadarMap works best with terrain based maps, but you actually don’t have
to have a terrain at all. You can make an Onslaught map entirely out of BSP
if you want. Regardless of what you choose, it is important to get an overall
layout going first so you can make sure it is balanced and start testing
vehicles in it before committing to the design.

CREATING AN ONSLAUGHT FRIENDLY MAP LAYOUT

You will want to have a general PowerNode network in mind when creating your
basic layout for a number of reasons…

  • You want to make sure and have relatively flat areas in your maps where you can put in the PowerCores, PowerNodes, and surrounding VehicleFactories.
  • Walking sucks. Make sure players don’t have huge distances to get from one node to the next, because there will always be times in which they don’t have a vehicle and have to walk it.
  • Node/Core sniping sucks. It is impossible to defend a PowerNode or PowerCore that can easily be shot at from miles away. Distance between nodes can be important as well especially if you plan to have stationary laser turrets as defense. A laser turret that can shoot the next node in the series will pretty much ruin an Onslaught map. So make sure you have hills, staticmeshes, etc. to occlude areas where long range sniping would be difficult to defend against.

It is also be a good idea to read this entire tutorial before you even start your terrain to eliminate vehicle navigation issues before they come up.

Important: If you want to make your map RadarMap friendly, make sure your terrain/level geometry is centered at the world origin (0,0,0).

START TESTING YOUR MAP LAYOUT FOR BALANCE ISSUES

It is important to start getting vehicles into your map as well as actual PowerCores and PowerNodes. Vehicles need to be tested to make sure they can drive well on the terrain and can’t escape the map, and PowerNodes need to be checked to make sure you can’t snipe them from across the map. Keep in mind when testing vehicles on the terrain you may have to change the terrain you just tested to fix a PowerNode from being sniped too easily. Anytime you change the layout you will have to re-test all the vehicles again to be sure.

PLACING POWERCORES AND POWERNODES

With that in mind, it is a good idea to place your PowerNodes before doing a lot of vehicle testing so I’ll explain that part
first.

You want to start by placing a PowerCore for each team. Onslaught assumes there will be one red team PowerCore and one blue
team PowerCore. YOU MUST PLACE ONE RED POWERCORE AND ONE BLUE POWERCORE IN YOUR MAP BEFORE IT WILL WORK. The red and blue
PowerCores are listed in the actor list as two separate actors and can be tough to find on your own. Here are their
locations…

NavigationPoint | JumpDest | JumpSpot | GameObjective | DestroyableObjective | ONSPowerCore | ONSPowerCoreBlue
NavigationPoint | JumpDest | JumpSpot | GameObjective | DestroyableObjective | ONSPowerCore | ONSPowerCoreRed

There is only one kind of PowerNode, because PowerNodes always start out as neutral. The neutral PowerNode is located here…

NavigationPoint | JumpDest | JumpSpot | GameObjective | DestroyableObjective | ONSPowerCore | ONSPowerNode | ONSPowerNodeNeutral

Make sure the PowerNodes aren’t too high up so vehicles and players will be able to run over them without getting stuck or jumping.

PowerCore and PowerNodes are closely related to path nodes so be sure and REBUILD PATHS EVERYTIME YOU CHANGE OR ADD ANY POWERCORES OR POWERNODES.

SETTING UP A LINK NETWORK

Once you have placed your Cores and Nodes you need to setup your first link network. Once you have rebuilt paths and saved,
you will need to go ahead and run the map since link networks are created using the in-game Link Designer.

Once in-game, you will find that your nodes are invisible since there is no current link network. Press Esc to bring up the mid-game menu and select the “map” tab. Now select the button marked “Link Designer”

Now you should see the RadarMap with your PowerCores and PowerNodes clearly marked. PowerNodes will look like lock symbols at this point. Creating links is simple, first click on PowerCore and then click on a PowerNode and a link will be established. Click on a PowerNode and click on another PowerNode to create link between them too. Clicking on PowerNodes that already have a link will remove the link between them.

You don’t have to use all your placed nodes in a particular link setup if you don’t want to. If you don’t link a node, it won’t appear in-game and won’t activate any nearby playerstarts or vehiclefactories. Multiple link setups are possible so you may want to have extra nodes lying around for adding more complicated networks later on.

The reason the Link Designer is in-game is so that anyone can change link networks even if they are not a mapper. A non-mapper at this point can type in a name for his link network and save it by pressing the “save” button. Now his custom link network will always show up as an option in the Onslaught map list unless he deletes it later.

As a mapper creator however, you want to make at least one permanent link network that will always be stored in your map itself and cannot be deleted without editing the map. To do this just click on the “Export To UnrealEd” button once you have created your network. What this does is to copy a special actor into your clipboard exactly like when you copy an actor in UnrealEd. So now you can leave the game, go into your map in UnrealEd, and paste the actor anywhere you want by right clicking, selecting Edit|Paste|Here.

The actor you pasted will be called ONSPowerLinkOfficialSetup and as long at it is in your level somewhere, the link network you created will be stored in the map. If you want you can do the whole process again and paste additional official link networks into your map. If you didn’t set a name in the Link Designer you can always edit the actor and change its name in the LinkSetup category.

Warning: You can move your PowerCores and PowerNodes around after setting up the link network, but if you add or remove a PowerCore or PowerNode, you will need to delete the ONSPowerLinkOfficialSetups and setup your network again using the Link Designer. But always… DON’T FORGET TO REBUILD PATHS IF YOU CHANGE ANYTHING ABOUT POWERCORES OR POWERNODES.

There is one final step that needs to be done to get link setups to work correctly. Open up a command prompt and run the command “ucc exportcache *.*” in the system directory of your UT2004 installation. YOU MUST DO THIS EVERYTIME YOU CHANGE ONSPOWERLINKOFFICIALSETUPS OR THE INFORMATION THEY CONTAIN.

One last warning about link setups is the ExtraInfo field in the LevelSummary category of the Level properties. It is important to leave the ExtraInfo field blank. If this field is not blank, your link setups will never show up in the map selection tree. The reason for this is technical, but basically each time the map is saved the link setup information is automatically stored in ExtraInfo. The field always appears blank just in case modders want to override the link setup system with their own custom information.

GETTING VEHICLES IN YOUR MAP

As you work on balancing your layout, you will want to start testing vehicles in your map. There are three way to get vehicles into a map. The final Onslaught map will use ONSVehicleFactories, but vehicle factories will only spawn vehicles at PowerCores and active PowerNodes. Placing vehicle factories is explained later on, but until then there are temporary ways of getting vehicles anywhere in a map.

- To place a vehicle directly in your map, look in Pawn | Vehicle | SVehicle | ONSVehicle to find the various vehicle categories and vehicles.

- To summon a vehicle in-game, use one of the following commands…

summon Onslaught.ONSAttackCraft
summon Onslaught.ONSHoverBike
summon Onslaught.ONSHoverTank
summon Onslaught.ONSPRV
summon Onslaught.ONSRV
summon Onslaught.ONSMobileAssaultStation

Warning: Don’t summon a vehicle on top of your playerstart as summoned vehicles will sometimes kill you when summoned and if the vehicle is on your only playerstart you won’t be able to respawn.

TESTING VEHICLES IN YOUR MAP

When testing vehicles, there are several important things to look out for…

  • The most general rule is to realize that people are going to try and drive every vehicle everywhere in your map in every possible way. Make sure and test all of these situations and make sure you don’t get stuck easily, and also make sure you can exit your vehicle no matter where you want to. The exiting system checks a certain number of locations around the vehicle and if the vehicle can get into really tight quarters you may find yourself trapped. Nobody likes to be trapped in a vehicle and having to suicide.
  • Make sure that the wheeled vehicles can drive over the terrain without getting snagged easily, or constantly being flipped over by uneven terrain. Having lots of jumps is great, but make sure it doesn’t get annoying when your trying to get somewhere fast and every few seconds you’re nose diving into the ground.
  • The tank has the ability to drive over some pretty insane ground. Be sure and test driving it up and down vertical cliffs, over giant boulders, into tight places you wouldn’t expect people to want to go, everywhere. Tanks are usually valuable vehicles in a game and nobody likes it when they get one and then have to bail out because they get stuck.
  • The Manta and Raptor rarely have problems getting around in any map. But that is precisely the problem you need to be looking out for. If you want to have areas that only the Raptor can fly to, you will need to do a lot of testing to make sure the Manta can’t get there as well. The other, more important, problem is keeping them in the map. You don’t want to have people figure out how to get a vehicle out of your map and under the terrain where they can fire on people from underground. Fortunately you have three powerful tools for keeping this from happening…

RESTRICTING VEHICLES TO THE MAP

  • The first and most important tool for keeping vehicles in the map are blocking volumes. Blocking volumes should be used to keep vehicles and players from accessing the boundaries of your map. Obvisouly you don’t want to have a lot blocking volumes with nothing inside them so that they appear to be an invisible wall, but with Mantas and Raptors that can get over pretty much anything it is inevitable that at some point you have to just stop them short. «TODO: Add something about class blockers?»
  • The second tool is StallZ. This is a setting that you can find in View|Level Properties|LevelInfo|StallZ that limits the height that a flying vehicle can fly. Once you reach this limit the vehicle is pushed back down to safer altitudes.
  • The final tool is KillZ which serves as a backup just in case someone is able to get under the terrain or out of the map boundaries. Even if your map is very secure it is possible (although very rare) that a vehicle could be hit by a tank or something and somehow get smashed through the terrain. If you don’t have a KillZ at that point you will have player walking around that is able to shoot people up through the ground. «TODO: What is a KillZ and how do you place one?»

FORTIFY YOUR POWERNODES

Now it is time to add vehicle factories, turrets, playerstarts, and weapons to your PowerNodes and PowerCores. Vehicle factories, turrets, and playerstarts are all activated and deactivated by the node they are associated with, but fortunately we made it easy on our mappers by making the associations automatic. At the start of each game, every vehicle factory, playerstart, and turret find the closest PowerCore or PowerNode and registers with it. So all you need to do is make sure you realize this when placing your actors. If you place a turret too far away from the node it is defending, you may find that in game the turret is actually associated with another, slightly closer, PowerNode.

You also don’t have to worry about setting a team, since the PowerCores will automatically set this for their associated actors, and the PowerNodes will set this for their actors based on on their current team status in-game. The team property in PlayerStarts is ignored in Onslaught as it is overidden by the Nodes.

Vehicle factories conveniently appear in the editor as the vehicle that they spawn. This is so that you can place them in the correct orientation and make sure they are facing the right direction. The location of the vehicle factories is here…

SVehicleFactory | ONSVehicleFactory | ONSAttackCraftFactory
SVehicleFactory | ONSVehicleFactory | ONSHoverCraftFactory
SVehicleFactory | ONSVehicleFactory | ONSMASFactory
SVehicleFactory | ONSVehicleFactory | ONSPRVFactory
SVehicleFactory | ONSVehicleFactory | ONSRVFactory
SVehicleFactory | ONSVehicleFactory | ONSTankFactory

If you edit the properties of a vehicle factory you can find two options in the ONSVehicleFactory category.

  • bReverseBlueTeamDirection: Setting this to True will spawn the vehicle facing 180 degrees of where you placed it, but only if the blue team controls the node. This is a nice feature for central nodes in particular where it is important that the vehicle spawns facing the direction you are attacking.
  • RespawnTime: I strongly suggest not changing this unless you really feel it is important for your map. Players are accustomed to vehicles spawning in the default time, so it should only be changed, for example, if you feel a particularly powerful vehicle in your map might be spawning to often and the map would be better balanced by giving it s slightly longer spawn time. Even then it would be best to only change it by a small amount. Large changes to this number could be very frustrating to veteran players and confusing to newbies.

Stationary Turrets do not have a factory but are placed directly. The location is…

Pawn | Vehicle | ONSWeaponPawn | ONSStationaryWeaponPawn | ONSManualGunPawn

Again, make sure you can’t snipe other PowerNodes or a PowerCore with laser turrets or it will be almost impossible to defend against.

SETTING UP THE RADARMAP

The RadarMap is always centered at the world origin (0,0,0). Hopefully you made sure your terrain was centered in the beginning, but if not it is possible to move the terrain by moving the TerrainInfo actor. For non-terrain maps just make sure your level is generally built around the world origin so that the RadarMap will be centered on it.

In the toolbar at the top of the editor, go to View | Level Properties | RadarMap to find the RadarMap options…

  • bShowRadarMap: This defaults to true but you can set it to false if you don’t want to have a RadarMap. I highly recommend having a RadarMap as it is a major part of Onslaught unless you are creating a a specialty map where people already expect it to be different from the norm. If you make a map with a lot of levels in the Z direction where you have PowerNodes on top of PowerNodes this might be appropriate since the RadarMap would be confusing anyway.
  • bUseTerrainForRadarRange: This defaults to true and causes the RadarMap to use the Terrain in the level to determine the range of the RadarMap. For terrain based levels this is what you want. For levels with no terrain you can set to false and specify your own RadarRange in the next property.
  • CustomRadarRange: If bUseTerrainForRadarRange is false, then this will be used as the range of the RadarMap. If you don’t have a terrain and decide to use a custom range, you can find out the dimensions of your level by going into Top view, center your mouse cursor on the world origin and press Shift-Ctrl-MiddleMouseButton to drag a ruler in any direction. What you want to find is the largest distance from the origin that will cover your entire level.
  • RadarMapImage: This is the part of the documentation where you learn that the engine doesn’t create the background image of the level for you (sorry folks!). You have to create this image yourself and put the location here. Usually we store this image as a 256×256 DXT1 in mylevel, but you can put it in a texture package if you like. Now you’re probably asking, “How the hell do we create the image?” Well, there are a number of techniques for doing this and they are explained in the next section.

Note about multiple terrains: If you use more than one terrain in your level and select bUseTerrainForRadarRange, it will choose one randomly to determine the RadarMap range. You probably will want to specify which terrain to use for the range however so to do this put the phrase PrimaryTerrain in the Tag of the terrain you want it to use for the range.

CREATING A RADARMAPIMAGE

The engine may not make the image for you, but on the other hand since you are creating the image yourself you can do whatever you want with it. You can have a giant smiley face as your background if you want, although Onslaught players will probably not appreciate it too much. Most mappers will want a map background that matches their level geometry and here are a couple of tips for doing that…

  • One way to get a good image is to use Top view in UnrealED. The advantage is that you get a perfectly orthographic top down view that is already oriented correctly. The big problem with this method is that staticmeshes show up in wireframe so you have to hide them. If staticmeshes are a major part of your terrain then this probably isn’t the best method to get a good image. If that isn’t the case, start by saving your map to a backup version because you will need to make alterations that you don’t want in the actual map. Once you are working on the backup, go into Top view and turn on terrain with the “T” key. You then want to hide or delete all the actors, staticmeshes, volumes, etc that are drawn on top. Lastly you must paint back in any visibility that was removed from the terrain. Once your done, take a screenshot with Alt-PrtScr and paste into Photoshop. Make sure and get the terrain boundary lines in your screenshot because the final image must be centered exactly where the center of the terrain is and the boundary lines will help with cropping to this in Photoshop.
  • The second method is to use the dynamic lighting view in UnrealED. The advantage is that you get fully rendered staticmeshes. The disadvantages are that the viewport is not orthographic so the terrain will be warped by the FOV, you have to manually orient the map, and it is impossible to get a perfectly matched terrain, so you have to use Photoshop quite a bit to get the best matchup. To start, you will still need to delete parts you don’t want in the picture so save to a backup first and then delete all the icon actors from the map. Next I start by zooming way up into the sky in the dynamic light view looking down on the terrain. Then I flip back and forth between top view and dynamic light view adjusting the camera rotation in dynamic view until the center portion of the two map view are pretty well aligned. The outside of the dynamic light view will be warped by the FOV so it will never line up perfectly, but with a little Photoshop touchup work you can make a pretty decent backgrounds with this method.
  • The terrain heightmap is your friend! No matter what method you use, you will probably want to get the terrain heightmap into Photoshop. Since the range and orientation of the RadarMap is based on the terrain, which is based on the heightmap, the heightmap is a perfectly aligned, perfectly centered background image. Unfortunately it doesn’t look very cool, however you can use it as a guide in Photoshop to make your image line up correctly in the game. I like to make a layer with the heightmap with some transparency so I can align my image perfectly to it and then I just delete the layer. If you’re a much better artist than me, which is likely since I am a programmer, you might even consider just using the heightmap itself and painting in the detail. You can even use the Render | Lighting Effects filter along with the heightmap to create the terrain look. It’s a lot more work than the other methods, but you get a perfectly aligned background image and you can make it look as cool as you like.
  • If you don’t use a terrain in your map you won’t have a heightmap to help align your image, but you can still try to use the Top or Dynamic Light view methods above. A good alternative for aligning your image is to create a volume centered at the world origin that has twice the RadarMap range you specified as its width, height, and depth. In Top view you can take a screenshot and use the resulting image as a border to align and crop your actual background image to.

Once you have your image, save it into a package or myLevel and reference it as the RadarMapImage as described in the last section. Be sure and test carefull to make sure your location on the RadarMap in-game lines up with the location on the background image. Otherwise you will need to make adjustments in Photoshop.

SETTING UP VEHICLE AI PATHNODES … still to be added

Page last modified on September 30, 2005, at 11:23 PM