Sturmbot waypoint tutorial

After a long while of waiting here it is: Sturmbot waypoint tutorial.


1. Waypoints, what are they?

Waypoints are locations in the maps that the bots will use when navigating. They allow the bot to roam about the map without having to blindly bump into walls. They are something marking a path to make it easier to follow. The waypoints are not displayed while the game is being played. The bots "know" which way to go by following the path laid out by these waypoints.

In order to get the bots to cover the entire map when playing the game, waypoints should be laid out all over the map. Without the waypoints the bots will just randomly run around and will tend to stay in the same area. Waypoints also allow the bot to know where specific goals are in the game. You couldn' t play capture the flag unless you knew where the flag was. Waypoints are what makes all of these things possible. Bots with sufficiently advanced waypoint informationand algorithms would be able to navigate from their current position to somegoal on the other side of the map.

This document describes the commands needed to create or edit a waypoint file.When creating or editing a waypoint file it is best NOT to have any bots wandering around at the same time. Create a LAN game, and join the game then start layingout waypoints for a map. Save your waypoints often, use the "waypoint quicksave"if the normal save is too slow. Disconnect from the server, then start the game again, this time with the bots to see how good (or poorly) they follow the waypointsyou have created.


2. What do waypoints look like in the map ?

The waypoints are displayed using vertical lines that look like lightning or electric streams. The vertical line used to draw the waypoint is the same height as the player. The point in space at the center of this vertical line is what is actually used as the waypoint. Different Types of waypoints have different colors.

Waypoints are stored in a file with the same name as the map file name but using the extension ".wpt" instead of the map file extension of ".bsp". For example, the waypoint file for the map dod_caen would be dod_caen.wpt. It will be stored in the Half-Life\DoD\sturmbot\waypoints folder. Waypoint files are automatically loaded when the map is loaded (if they exist). If the waypoint file does not exist, you will need to create it using the directions contained in this document.


3. Waypoint console commands.
     
The following Waypoint commands are available (note these ARE case sensitive):

Console command  
Description
waypoint on
Displays all waypoints
waypoint off
Hides all waypoints
waypoint add
Adds a waypoint at the current player location
waypoint delete
Deletes the waypoint nearest to the player
waypoint save
Saves all waypoints data to a file also generates all routes (this may take some time)
waypoint quicksave
Saves all waypoint data to a file
waypoint load
Loads all waypoints for the current map
waypoint menu
Brings up a menu were you can edit the waypoint nearest to the player
waypoint team
Turn it off and you will be able to edit waypoints for the other team.
waypoint teamspecific
Will make next waypoint you add teamspecifc
waypoint connect Brings up a menu where you can pick a flag that you wish to connect to your current waypoint.
waypoint creator
(see below)
waypoint help
printes all console commands in the console ( see below)


autowaypoint
Displays the status of the autowaypoint setting
autowaypoint on
Turns on the autowaypoint setting
autowaypoint off Turns off the autowaypoint setting


autopath
Displays the status of the autopath setting
autopath on
Turns on the autopath setting
autopath off Turns off the autopath setting (waypoints must be manually connected with pathways)


pathwaypoint Displays the status of the pathwaypoint setting
pathwaypoint on
Displays all paths
pathwaypoint off
Hides all paths
pathwaypoint create1
(see below )
pathwaypoint create2
(see below )
pathwaypoint remove1 (see below )
pathwaypoint remove2 (see below )


ways
Displays the status of the ways setting
ways on
Displays all routes
ways off
Hides all routes
ways rebuild
Rebuild all routes
ways create1
Manually start building a route (very rarely used)
ways create2
Manually finnish a route           (very rarely used)
ways remove1
Manually start deleting a route (very rarely used)
ways remove2
Manually removes a route        (very rarely used)


connection create1
Start recording an connection
connection create2
Creates the connection
connection remove1
Start removing an connection
connection remove2
Removes the connection


To use the waypoint commands, you will have to use the console. You must start the game with the console option enabled (use "hl.exe -console" in the Target:line of your DoD shortcut or use "Half-Life Console" in your SIERRA menu from the Windows Start button). Use the '~' key to bring down the console. Enter the consolecommands that you wish, then use the '~' key again to return to the game.

You can make things easier by binding console commands to keys on the keyboard. Just type "bind" followed by the key you want to bind to, followed by the console command. You will have to use double quotes on the console command if it's more than one word. Here's an example of console commands that helps when editing waypoints...

bind n   "waypoint add"
bind m   "waypoint delete"
bind l   "waypoint menu"
bind o   "waypoint info"


The 'a' key will manually add a waypoint. The 'd' key will delete a waypoint. The 'l' key will open the waypoint menu (if you are close enough to a waypoint) and the 'o' key will print the information about the waypoint nearest to you .


4. Placing waypoints.

Turn on the displaying of waypoints and paths between waypoints by typing "pathwaypoint on" in the console.
By presing the key you have bound to"waypoint add" a waypoint will be added to your current location. Waypoints can be placed anywhere the player can go. When placing a waypoint, you will hear a sound to indicate that the waypoint has been dropped. You then have to specify the type of waypoint by pressing the key you have bound to "waypoint menu". You should place lots of waypoints (but still caring for some distance betweenthem), since the Bots use them for hiding and varying their paths.


5. Sorts of waypoints.

There are different sorts of waypoints, all the following waypoints can be placed by using the "waypoint menu"  while standing on the waypoint that you want to change properties for.

"Ladder Waypoint"
These need to be placed on a ladder if you want the Bots to climb it. Set the bottom waypoint at a position where you're already "stuck" to the ladder. At the top of the ladder you should place another ladder waypoint. Set this at a position where you can look ever the edge. If the ladder is quite along one, you might want to place another ladder waypoint in between the other ones. In most cases you need to connect the waypoints manually by using "pathwaypoint create1" and "pathwaypoint create2" ( see below) For better climbinguse a "Alt ladder" waypoint at the bottom of the ladder so they willjump off the ladder. If there is no connection between the waypoints the botswon't climb the ladder!

"Jump waypoint"

makes the bot to jump when he is heading for this waypoint. Place this one on the top of a obstacle witch you want the bots to jump over. make sure the object isn't to high to jump over.

"Door waypoint"

The bots will slow down and push the "use" button when it is heading towards adoor waypoint.

"Precision waypoint"

The bots will make sure he "hit" the waypoint before he continue
. (useful if the bots get stuck because they turn to the next waypoint too early)

"Crouch waypoint"

This will make the bots to crouch when he is heading for the waypoint. They are automatically added if you crouch while adding a waypoint.

"Flag waypoint"

This will let the bot know where he can find a flag. Make sure you place these exactly at the same point as the flag.

"Capture area"

This will let the bot know that it have to hold this area for a time and in some cases be at least 2 or 3 persons to capture it.
You have to connect this waypoint with the nearest flag waypoint so the bot knows which team that controls the area.
You can do this exactly the same as you add a path ( see below)between waypoints but exchange the "pathwaypoint create1/create2" command to "connection create1/create2" Or use the "waypoint connect" command when you stand at the capture area waypoint.

"Break waypoint"
The bot use will shoot breakable objects at this waypoint. If the waypoint also is a bazooka or a capture waypoint then they will use their bazooka / bomb to break it. If a bot don't have a bazooka or a bomb, then he won't try to use this waypoint unless its already destroyed.

"Object waypoint"
This will let the bot know where he can find a object or bomb. The bot will try to find a capture waypoint as soon as he has the object.

"Capture waypoint"
The bot will leave the object or the bomb at this location. Make this waypoint a "break" waypoint if the bots need to break a wall or something to get through.

"Bazooka target"
The bot use their bazooka at this location. Make this waypoint a "break" waypoint if the bots need to break a wall or something to get through.


"Sniper waypoint"
This will make the bot snipe at that place. The bots will look at the same direction as you when you changed the waypoint to a sniper spot

"Button waypoint"
The bot will try to push the nearest button when it has reached a button waypoint.

"Guard waypoint"
Works the same as the sniper waypoint, place it close to a flag and the bots will guard it if necessary. Place these behind turrets or mounted machine guns if you wantthe bots to use them. The bots will also head towards a guard waypoint if their team is defending.

6. Navigation waypoints.



Navigation waypoints is used for better bot navigation. If there doesn't exist any navigation waypoints the bots will always use the shortest path and won't learn which paths are most dangerous. Navigation waypoints shall be placed where the bot diverge to other routes, near goals (like flags or capture waypoints) and in the middle of some long routes. You can place Navigation waypoints   by using the "waypoint menu" while standing on a waypoint that shall become a navigation waypoint .  If the waypoint you are standing at is non teamspecific,  then it will make 2 waypoints. One for each team. After placing some navigation waypoints you will have to save the waypoints in order to make the bots work. Turn on the displaying of the ways by using "ways on" and add new navigation waypoints where its necessary.

The bots will always use the shortest path if no navigation waypoints exists.Navigation waypoints shall be placed in the middle of a route...
FIG1                                                                         FIG2


Fig1:

Navigation waypoints are created at the start of the map and on the flag.

Fig2:
A navigation waypoint is placed in the middle of the long route.


7. Things you need to know

Waypoint Commands

If you want to see a list of all waypoint commands while playing, you can type "waypoint help". You will then see a list of all waypoint commands
used by Sturmbot in the console.
   
Manually
creating a path

Type "pathwaypoint create1" when you are standing at the waypoint thepath should start at. Run to the next waypoint and type "pathwaypoint create2".You can do the same to remove paths by using "pathwaypoint remove1 " and "pathwaypoint remove2"
Note: If you want the path to not be one way, you will have to do the same again but start at the waypoint without any path.

Waypoint creator info

You can let sturmbot show a message when the map starts by using the " waypoint creator" command, here is an example
waypoint creator "This message will be shown when the map starts. \n this is a new line"

Normal problems

After you have placed some waypoints and added a bot to test how good the waypoints are, the bot might spin and say  "Warning no route from waypoint *** to waypoint ***" 
This is probably because you haven't saved your waypoints after you have changed some of them, or because there actually is no path from the waypoin the is standing to the waypoint he is talking about. To fix that find the waypoints by usingthe "waypoint find" command  (see below) and check if there isany paths form the waypoint to another.

Finding a specific waypoint

To find a specific waypoint, you will have to write "waypoint find ***" where *** is the number of the waypoint that you want to find.
You will then see a beam from your current position to the waypoint that needsto be found.

Making a bot to go to a specific waypoint

You can make all bots in the game to go to a specific waypoints by writing this  text message "waypoint test". All bots in the game will react andtry to find the waypoint nearest to you. This can be very useful if you want to test if the bots can get up to a sniper location etc.



Phew! I hope I didn't miss anything. Remember: the better the waypoint file, the more fun it is to play with the bots ! If they are stuck somewhere on a map, it's usually the fault of the waypoint file creator...

If you've got questions not answered here, please mail me at: Jowo@houstondod.com or post your question at the forum that can be found at
http://www.sturmbot.houstondod.com
Happy waypointing!

Send any waypoints you create to smitty@houstondod.com, if they are good enough, they will be posted at the waypoint database.

This waypoint tutorial is made by Jowo and Envinyatar