Fritzbot ET Intro to Waypointing
From Bots-United Wiki
This article forms the first section of the FritzBot ET waypointing tutorial. If you are looking for the RTCW tutorial go Here.
THIS ARTICLE IS UNDER CONSTRUCTION. IF YOU WANT TO HELP FEEL FREE TO USE THE DISCUSSION PAGE. OTHERWISE PLEASE COME BACK LATER
(All trademarks mentioned are the property of their respective owners. FritzBot ET and its waypointing tools are provided free of charge for use, as-is and no warranty is provided or implied)
Contents[hide] |
Components of Waypointing
What is waypointing exactly?
way·point (wā'point') n. A point between major points on a route, as along a path or track.
You will not find the verb/noun "waypointing" in standard dictionaries, but it is a similar concept. The A.I. waypoints for computer players (bots) are collections of points connected to form the various paths that the bots navigate or follow. The bots use these paths to get to the major points that are part of the goal system of the game.
In FritzBot ET, as with similar game-specific bot mods, the waypoints are added to the existing maps, built over top of the original surfaces. This network of connections can sometimes look like a bit of a cobweb lying on the ground. Below is a birds eye view of the web of connections in the map trenches05.
This web or network of points and interconnections are stored in separate waypointing files that are only used within the bot mod.
Of course bots need more information than just points and connections. The bots also need to understand the goals to the game. And they need to understand that there are often more than one path or route used to get to the same end point. To provide these 3 types of information, FritzBot provides 3 classes of information points. We will refer herein to these points as nodes, actions and routes (or more fully as navigation nodes, action hints, and route start nodes).
Navigation Nodes
Navigation nodes appear as a distinctive red vertical Bar or spindle. There is a unique green number above the spindle (between 0 and 1023). And depending on display options there may be 8 white horizontal lines or spokes radiating from the center of the spindle.
Nodes will appear in the in-game display even when the individual node is disabled (so long as the editor is set to display nodes). A bot navigating along a path must touch or enter the radii spokes of each node connected along his specific path.
BTW the white text shown above on the right side of the image is an optional Heads-Up-Display (HUD). This informational HUD is very useful when waypointing.
Action Hints
Action hints look similar to nodes but have a yellow or yellow-green spindle and an unique cyan or blue number above it.
Actions hints are invisible until their action type (OBJ) is set for one of the two teams. The action type tells the bot what it has to do at this location (more on types and other attributes later).
Route Start Nodes
Route Start points look similar to nodes and actions but have white spindles and a unique red number above them.
Routes appear in the display when you add them. The route HUD will only detect those routes that have their target ROUTE ACTIONS set.
Is That all?
So those 3 classes of points plus the connection paths are the basic components for waypoints. There are other details of course, like the special attributes that each may have and the AI scripting system that updates the waypoint components as the game progresses. And there are other optional files that we will talk about later. But what we want to emphasize is that only 2 files are needed to have functioning waypoints. The .nav or navigation file with the waypoint components and the .aiscript file that follows the progress of the game and controls the components with simple script commands.
(And a side note if you have not played FritzBot ET before. The FritzBot ET mod is a proprietary server side mod and can not be added or mixed with another server mod. And while client side mods like Whaleclient have been used, you will want to use the client provided with FritzBot ET when you waypoint. And that means you need to run Windows and a fully patched Windows version of Wolfenstein Enemy Territory 2.60. The FritzBot_ET main wiki article provides more installation information.)
Getting Started
Using the Console
Now to start creating waypoints you need to become familiar with the Enemy Territory Console. Much of your work setting values and attributes must be done from the console. The console is a text entry window that drops down from the top. Find the tilde key ~ on your keyboard. It normally is the same key with the special single quote ` mark. When you hit that key the console should drop down halfway. When the console is open your keyboard is redirected from the game play to type on the current line in the console. Above the current line in the console, are all the buffered messages. These messages that you see are those that ET or FritzBot ET have printed so far in the game. All the buffered messages can be reviewed with page-up and page-down. To return quickly to the current line use ctrl-end.
Now commands made from the client's console are prefixed with a slash / to differentiate them from game chat. And most ET and many FritzBot ET commands can be found by typing the first few characters then hitting the tab key. Open the console ~ and try typing
/node_
then hit tab. About 9 possible commands are listed. These are commands controlling the waypoint editor. Missing from this list are some of the commands that you will use to set the individual node attributes. So you will have to remember those commands in this tutorial that do not get listed in the console.
Generally to review a value, you type the value-setting command with no parameter. Try typing
/sv_pure
then hit enter. The console will respond with the value, in this case either 1 or 0. And since you will need to have sv_pure equal to zero, type
/sv_pure 0
then enter.
What you just typed in the console is added to a second small buffer. This buffer remembers the recently typed commands. You can recycle a previous command and then edit it. Try it now, hit the up arrow, and on the current line your previous command /sv_pure 0 appears. Hit uparrow again and the earlier command /sv_pure appears. The left and right arrows will allow you edit the line. The insert key toggles between insert modes when editing.
BTW If you find the size of the console interferes with viewing the map and the HUD, ctrl-tilde (ctrl ~) opens a 4-line console.
Loading a Map to Waypoint
Now to waypoint you will need to load an existing map. If you have a map in mind you could select that one, but for the initial exercises in this tutorial we suggest using et_slide. Download and unzip the partially completed waypoint for the map et_slide.
The et_slide map by SteelRat is a straight forward but fun map that is easy to waypoint and provides a variety of waypointing exercises. The partial waypoints provide a starting point that you can view in the waypoint editor and then mimic on the other side of the map. Look for the et_slide topic in the forums to find the download link for the waypoints.
First you should download and install the et_slide.pk3 map by SteelRat and put it in your \etmain directory with your other maps. Next download the Fritz_et_slide...zip waypoints into your \fritzbot directory. Then unzip these waypoints preserving the saved directory tree. With the et_slide.nav file now in \fritzbot\bots\maps, you are ready to begin.
Now start ET, then start the FritzBot mod and set /sv_pure 0 (above). You can now start the et_slide map by typing in the console
/devmap et_slide
and then enter. The console will disappear and the ET loading screen appears, then finally you will be in the map spectating.
Before joining a team do the following in the console;
/bot_pause 1
and enter. This allows you to edit the waypoints without having to fight the bots that have joined. Next type
/timelimit 1440
and enter. This prevents the game reaching its timelimit for up to a day so you won't be interrupted. A smaller value (in minutes) is fine too. This needs to be done after the warmup period. Next type
/node_editor 1
and enter. This enables the waypoint editor so it understands all the needed commands. Next type
/node_drawhud 1
and enter. This puts node specific info for the nearest node in the game display. Next type
/node_vis 1
and enter. This will make all the colored spindles visible around you (within a set distance). But wait nothing appears! Well the display has to be refreshed in a way that also reloads the partial waypoints. So finally type
/vid_restart
and hit enter. ET will briefly disappear, then reappear with the load screen, and then you find yourself back spectating. But where are the colored spindles? Well you will start spectating on the Allied side of the map and that is where you will start adding in your waypoints. But if you fly down and through to the Axis side you will see the nodes appear near the health and ammo cabinets and (when close enough) also around the Axis slide, stairs and ladder. Basically there is a single loop of nodes and connection starting at the Axis spawn going down the slide, around and inside to the health and ammo cabinets then back out to the stairs, up the ladder to the Axis spawn. And if you un-paused the bots you could watch them navigate this loop in the described direction endlessly (due the presence of 2 action hints in the loop but more on actions much later).
Now the above list of commands have to be entered every time you start FritzBot ET and open et_slide to waypoint. But to save time you could save the commands in a text file called a config (.cfg) file. Just use Windows Notepad to enter each command on a new line like this;
bot_pause 1 timelimit 1440 node_editor 1 node_drawhud 1 node_vis 1 vid_restart
Don't enter the vid_restart command in your config file, it needs to be invoked only when the map is loaded
TO BE CONTINUED
Then save the file as wp_et_slide.cfg in your \fritzbot directory
To run the commands in your saved cfg file type
/exec wp_et_slide.cfg
(or whatever you named the file) then enter.
TO BE CONTINUED
Binding Console Commands
Binding is the method in games like ET to define what a certain keypress does in the game. The Bind command defines a string of characters that you could type in the console. The Bind command associates that string to an identifier for the keypress to use instead. The form of the command is;
/bind "<keypress>" "string"
where "<keypress>" is the character (in quotes) on the keyboard (e.g. "5") or a short string for special keys like "kp_5" for the numeric keypad's 5 button (center of keypad). The "string" can be any single line (in quotes) that would be understood by the game if typed in the console. You can even mimic multiple lines in a single line by using the semicolon in place of the enter key. Example;
bind "F5" "node_add;node_autoconnect"
then enter. This example binding substitutes two console waypointing commands for each press of the function key F5. Please note: Bindings are setup in the console but operate in-game only.
A further discussion and example of a waypointer's config file to bind keys is given in FritzBot_ET_Waypointer's_Config_File.
FritzBot In-Game Menu
Since you should be running the FritzBot ET client when waypointing, you have access to the in-game FRITZBOT submenu. Hit Esc to bring up the in-game menu;
The FritzBot submenu (middle of above) can be used for a few useful bindings and settings. It can save remembering a few of the console commands previously mentioned. Below is a image of the FRITZBOT submenu text.
Note on the right from the top are options for setting the waypoint node editor, HUD and waypointing-display draw options. Clicking on these cycles through their various settings. You can use these in place of the some of the console commands mentioned in the subsection Loading_a_Map_to_Waypoint above. The bottom half of options on the right and the top 2 on the left are Bind settings. The remaining ones on the left are play options.
Console Command Quick Lookup
/sv_pure 0 = Use to un-restrict the ET server. You must turn off the pure-server restrictions in order to waypoint. This allows for files created or modified during waypointing to be re-loaded. If your changes seem to disappear when you restart ET check this setting with /sv_pure.
/devmap <mapname> = Loads the specified map in developers mode (allows some needed cheats etc.) Substitute <mapname> with the filename of the map's bsp file (e.g. /devmap oasis loads the Siwa Oasis map).
/timelimit 1440 = Sets the maps time limit to the value given in minutes. Use after the warmup ends.
/node_editor 1 = Turns on FritzBot ET's node waypoint editor, a value of 0 turns it off. (Also see Node Editor: in the FRITZBOT submenu)
/node_drawhud 1 = Turns on the HUD info for Fritzbot's nodes only. (not actions).
- /node_drawhud <value>
- Value of 0 turns off the HUD
- Value of 1 turns on the in-game HUD for nodes,
- Value of 2 turns on the in-game HUD for actions, and
- Value of 3 turns on the in game HUD for Routes.
(Can also be set in FRITZBOT submenu. re:In-Game HUD:)
/node_vis 1 = Enables the display of nodes, actions and routes to be visible when placed.
- /node_vis <value>
- Value of 1 displays everything,
- Value of 2 draws actions only,
- Value of 3 draws routes only, and
- Value of 4 draws only nodes & paths.
(Can also be set in FRITZBOT submenu. re:Draw:)
/vid_restart = Refreshes the video display and reloads some waypointing files (needed sometimes to see your nodes)
Next Tutorial
There are a few test questions you can try for review Here (I suggest you open it in a new window or tab)
To continue the tutorial go to Go to Section II - Basic Waypointing.
Credits
Special thanks go to Denny for his RTCW tutorial on which this article is modeled and borrows from.