• Please make sure you are familiar with the forum rules. You can find them here: https://forums.tripwireinteractive.com/index.php?threads/forum-rules.2334636/

Level Design Bot pathing tips from Ramm!

[TW]Ramm-Jaeger

Tripwire Interactive President
Oct 11, 2005
1,884
3,097
www.redorchestragame.com
This info comes from a PM I sent to a custom mapper with tips on bot pathing maps for RO. It might not all be relevant to your map, but these tips can really help when bot pathing your map. And those of you entering the mapping contest should pay close attention to this :)

1) Don't try and path the whole map at once. Rebuilds take longer the more paths you add. Add pathing for 1 objective, then hop in game and make sure the bots can cap (or defend) that obective. Then do the remaining objectives the same way, 1 at a time.

2) Objective actors have to be in a bot "reachable" area. Game objectives are navigation points, and need to be on the ground where bots or vehicles can reach them. They can't be embedded in BSP, floating in the sky, etc. All of those "Navigation Point not on Valid Ground" errors you get when you build should tell you something :) If the objectives aren't reachable, the bots won't attack or defend them.

3) For the vehicle driving bots to attempt to capture the objectives, they either need completely white road path nodes leading to an objective, forced road path nodes leading to an objective, or a special assault path set up so they know where to get out of the vehicle to cap the objective. The key is in the assault path, to set the "Objective Tag" value to the tag of your objective, and then in the ROObjectiveTerritory actor, in the "GameObjective" section, set the VehiclePathName to the name (under the "Object" field) of the closest RoadPathNode to the assault path you set up.

4) Keep it simple. Put down a basic RoadPathNode network that leads to the objective first, then connect any infantry spawns to this road network with regular path nodes. Get the bots fighting over the objectives first, then you can go back later and add extra paths and things to make it more fancy.

5) Vehicles hate bridges! They tend to get stuck on them, and its very hard to get white road paths accross them. If at all possible, make your roadpath just go through the river and avoid the bridge all together. In some instances (like where the bridge itself is an objective) this isn't possible. But wherever you can, avoid putting the road paths on bridges.

6) Make straight paths from the vehicle factories. If you vehicles are in a line, the bots will all just get stuck at the spawn. Set up the vehicle spawns so that when a bot gets in, they can just drive straight forward to the road. If they have to do manuevering to get out of the spawn, they'll likely just get stuck.

7) So you don't have to wait on the bots to capture the objectives you have already pathed for, I would suggest jumping in the map with no bots, capping the objectives you have already pathed for, and then using the "addbots" command to spawn the bots in and see if they attack/defend the objective your testing.

8) Use the "slomo" command to speed up/slow down the game for testing. I usually bind 3 keys to this so I can speed up/slow down the game at will. If you type these in at console, you can use these three keys for this:
set input leftbracket slomo 0.1
set input rightbracket slomo 1
set input backslash slomo 4

9) Use the bot debugging overhead map. The command for this is "showdebugmap". This will show where the bots are on the overhead map, what they are doing (A for attacking, D for defending), what they are in (flags are vehicles, stars/crosses are infantry). This will allow you to watch the bots flow through your map, and see if they are getting stuck somewhere.

10) Check out these UT2k4 tuts on pathing. Their not 100% for RO, but are generally applicable:
http://wiki.beyondunreal.com/wiki/Pathing_For_Vehicles
http://blitz.unrealplayground.com/tutorials/bots.html#AssaultPaths

11) Make sure the defendingteamindex in gameobjective on your ROObjective is set correctly to the right initially defending team. 0 = axis, 1 = allies.

Cheers
 
I was trying to find out if the auto bot path command works also if you have to remove all path nodes for this before hand.
Also could someone give me some pointers I understand that you can maybe get the bots to follow a path by using the pathnode array but Ihave read the wiki and just didnt understand how that works. Also I have pathnodes but the dont want to go up stairs maybe it is because i didnt connect to an objective yet though. I want my bots to go up the stairs to multiple levels and defend a building what is the method for doing this do I use sniper volumes or scripts it is hard to tell. Could use some more tuteledge here thanks.
 
Upvote 0
I was trying to find out if the auto bot path command works also if you have to remove all path nodes for this before hand.
Also could someone give me some pointers I understand that you can maybe get the bots to follow a path by using the pathnode array but Ihave read the wiki and just didnt understand how that works. Also I have pathnodes but the dont want to go up stairs maybe it is because i didnt connect to an objective yet though. I want my bots to go up the stairs to multiple levels and defend a building what is the method for doing this do I use sniper volumes or scripts it is hard to tell. Could use some more tuteledge here thanks.

Yea, keep in mind BotPaths just enable a bot to move somewhere.. they still have to WANT to move along that path.

So you have to make them want to go where you want them to go.

The easiest way to do this for Defense is to add in those Defensive AI scripts.. in short all they do is 'Hey.. goto PathNode412 and wait there for a few seconds'.
When a bot is assigned to defend a point, he will look at the objective, see what the tags are for the defensive scripts, and pick one.

You can also drop Pickups along a path to make it desirable to a bot. There aren't many pickups in RO, but if you are using fausts, that would work.

do a SHOW DEBUG when following your bots to see what they are up to btw.
 
Upvote 0
are you talking about ambush points and defense points from the actor list? can you use those? I saw the aiScripts I think in Basovka but not sure if these things are all the same or not.

You'll see the AI scripts in any of the official RO maps. easiest way to find them is to pick an objective and look for the DefenseScript (I think that's what it's called). That will list the tag of the AI Scripts to use for that objective. Then just Find->bytag and you should be golden.
 
Upvote 0
You'll see the AI scripts in any of the official RO maps. easiest way to find them is to pick an objective and look for the DefenseScript (I think that's what it's called). That will list the tag of the AI Scripts to use for that objective. Then just Find->bytag and you should be golden.
You lost me on all of this tag business but I will look I also cant seem to get my tank drivers to drive the tank. The AIscripts have to have the tag of the objective they are protecting? I thought you just used nodes to lead them to the script? Is the script then even part of the network path or just an instruction, so the bot goes to the objective then picks up the defense script tag then goes to the prescribed defencse point to wait or whatever? Also are assault paths used I have not run accross those yet in the official maps.
 
Upvote 0
You lost me on all of this tag business but I will look I also cant seem to get my tank drivers to drive the tank. The AIscripts have to have the tag of the objective they are protecting? I thought you just used nodes to lead them to the script? Is the script then even part of the network path or just an instruction, so the bot goes to the objective then picks up the defense script tag then goes to the prescribed defencse point to wait or whatever? Also are assault paths used I have not run accross those yet in the official maps.


Ok.. you probably got 3 different things going on then:

Defense Script rehash:
It's pretty easy, but if you haven't done any Event/Tag stuff, it might be new to you.

Basically, and as always, this is from memory, I don't have the SDK open/available to me right now, Each Objective has a listing for "DefenseScriptTag". This the the Tag (under Events->Tag of the actor) that you will assign to AIScripts that should be used for the defense of that objective.
The AIScripts are just simple Scripts.. again, they just pretty much say "Hey bot, goto PathNode421 and Sit there for 3 seconds". You can find them littered throughout the official maps. So when the bot is assigned to Defense of a point, it checks the objective, gets the Tag of the defense scripts, picks one of the several available defense scripts then follows it's orders. So the Bot will try to find a way to get to PathNode421 and go there.. then hang out for 3 seconds before looking for a new order.

The Script itself is not a PathNode, it's just an instruction set.

--------------

The 2nd part of this is you have to make sure your bots know to defend a point. This is usually just a matter of ensuring your Objectives are setup correctly.


--------
3rd:
Vehicles use RoadPathNodes, you want to have as many WHITE paths as possible.
If you're not sure about these, then check up on Blitz's Both Path Tutorial ( http://blitz.unrealplayground.com/tutorials/bots.html ), it's an excellent resource on UT2k4 style botpathing.

-----

Re: Assault paths.
Check if there are any on Bondervo.. I remember putting some on there at one point, but they may have been removed later in it's development.

Also, just so it's said, you need to make sure that you have adequate paths to your objectives, etc.
 
Upvote 0
Thanks that helps out a lot now I understand how to setup the scripts. The other thing is that some times my tank driver does not get in the tank he takes off down a path tothe objective also some times the bots get there before the tank drivers do so they cant get on as a rider. Any way to force the tank driver to find a tank? So if I wanted on the AI scripts I could put them all in one nice little are or next to their node the more logical position? Are snipe and Sniping volumes used in RO?
 
Upvote 0
Actually I have to correct myself really quick. From UDN:

This is the default action of the UnrealScriptedSequence (what you use to make Defense Points)

udn said:
MoveToPoint

This will do the same thing as MoveToPlayer, but will use the actor with a tag of whatever is in DestinationTag. If this is either blank, or non-existant, then it will move to wherever the ScriptedSequence actor is.


So you can either assign the TAG of an object, -OR- place the scripted sequence in teh location you want.
 
Upvote 0