Frogbot Waypoints

Guide for making waypoints for frogbots in quakeworld

Configuration

The impulses and keys used in this tutorial

KEY IMPULSE FUNCTION
MOUSE1 119 SPAWN A MARKER
O 120 TOGGLE MANUAL-MODE
N 125 CHECK ALL GOALS
M 126 CHECK ALL ZONES
I 127 TOGGLE ACTIVE MARKER
P 128 REMOVE ACTIVE MARKER
H 129 DISABLE ACTIVE MARKER
J 130 TOGGLE ONEWAY-MODE
MOUSE2 131 TOGGLE CONNECT-MARKERS-MODE
G 132 DEFAULT MARKER-MODE
F1 133 SAVE MARKERS
F 135 TOGGLE CLOSEST-MARKER-MODE
T 137 CLEAR ACTIVE MARKER
Y 138 MOVE ACTIVE MARKER
U 139 VER?? MOVE ACTIVE MARKER
. 140 INCREASE GOAL/ZONES
, 141 DECREASE GOAL/ZONES
ENTER 142 SET GOAL/ZONE
C 143 PRINT GOAL
V 144 CYCLE PATH-MODES
- jump ledge-mode
- dm6 door-mode
- disconnect-mode
- reversible display-mode
- water path display-mode
- rocket jumo mode
- path mode OFF
B 145 DISPLAY TRAVELTIME (don't use)
Z 146 CYCLE DISPLAY-MODE
X 147 DISPLAY REACHABLE
My configfile for joequake: autoexec.cfg

Requirements

The stuff you'll need to make waypoints

Client: I recommend joequake.exe for the client to use with waypoints, it's pretty stable. Haven't tried any other clients so can't vouch for them. Remember it's the software version of joequake, not the fancy GL version.

Frogbot version: Using progs.dat from frogbot v0.85

At last you'll need some patience, because the client WILL crash on you, when doing some wrong newbie move. I'll try to clear the path for you in this tutorial.

Step 1

Introduction

To start with, you should find out what level you want to create waypoints for. (eg. ztndm1)

There is a couple of things that shouldn't be in the map.
Lifts: Well the map can have lifts going up and down but the bots doesn't handle them very nicely. And lifts that moves horizontal is a no-go, it's therefore there is a special bot version of DM2 with the lava and big room lifts exchanged with normal brushes.
Water: In the new version of frogbot, it's actually possible to make the bots dive and swim but it needs a lot of bug fixing and patience to make them NOT drown.
Buttons: The level can have buttons, but NOT floor buttons, that is, buttons on the floor.

Step 2

Creating zones

Frogbots need zones to navigate the map

Start joequake with the following cmdline:
joequake.exe -game waypoint -condebug

The -condebug parameter is important for STEP 8

Open your map (ztndm1). Switch to "MANUAL-MODE", then some player models should popup.
step2_manual_off.png step2_manual_on.png

Press "TOGGLE CLOSEST-MARKER-MODE", a text should print out this message:
'TOGGLE CLOSEST MARKER ON'.
step2_closest_on.png

Move to some items, let's say you start by the GL. You'll see the playermodel with a axe and in run-mode, which indicates that the item is the chosen one. Move over to the GL, and press "DECREASE GOAL/ZONE" until you reach a message that says: 'ZONE INDEX = 1'.
step2_zone_decrease.png

Now, hit "SET GOAL/ZONE". You'll see the message 'ZONE 1 SET (TOTAL = 1)', you has now placed a zone in this area.
step2_set_zone.png

Move to the health box, and hit "SET GOAL/ZONE" again.
step2_more_zones.png

Give all the other items in this area 'ZONE 1'.

Step 2.5

Placing markers

Then you have to place some markers. "SPAWN A MARKER". Markers are used for the bot to navigate in the room, the markers also has to have the "Zone" of the area.
step2_markers.png

You've created markers and zones to the first room on the map !

Well, now you have to create markers to another room.
Move to the YA/RL room, it's right next to the GL room. And make this 'ZONE 2'. And so on for the rest of the map.

Step 3

Creating zones again

Give the items in this room 'ZONE INDEX = 2', do NOT jump down the platform, yet ! Now, all the items in this room have been 'zone'd'. Let's place some markers here too !

Now you know how to create markers and zones on a level. You do exactly the same on all the other places on the map. Be aware that too many markers can cause bugs. And be aware that too few markers can cause bugs too.

Now you're ready to move on to the next step:
Making goals (The easiest part of this tutorial !)

Step 4

Making goals

Let's say you stand by the GL.

Press "DECREASE GOAL/ZONES" until you reach 'GOAL INDEX = 1'.
Now press "SET GOAL/ZONE". A text should read this:
'GOAL 1 SET (TOTAL = 1)'

Translated into english:
"Goal 1 is placed on the item, and there's one "Goal 1" on the map."

Please note, that it's not a good idea to give the same goal to more than one item, only if they are right next to each other, that is, 2 health boxes side by side etc.

I have had success with using higher number goals for health-packs and ammo-packs all over maps, however.

Step 5

Make the bots use teleports

First, you should select the teleport marker (The one inside the teleport brush)
Then, give it a zone (if it hasn't one)
Press "TOGGLE ONEWAY-MODE" ON
Press "TOGGLE CLOSEST-MARKER-MODE" OFF
step5_oneway.png

Now "TOGGLE MANUAL-MODE" OFF, you should be teleported to the teleport destination.
Then "TOGGLE MANUAL-MODE" ON again.
Press "TOGGLE CONNECT-MARKERS-MODE", and there... the teleport marker is connected.
step5_connected.png

Step 6

Make the bots jump off ledges

Select the marker, where the bot should jump FROM.
Press "TOGGLE ONEWAY-MODE" ON
Hit 'Toggle Closest Marker OFF'
Hit 'Active marker ON'
Move to the target marker.
Hit 'Toggle Connect Markers Mode' (impulse 131), and there, now the bot will jump to the target.

Step 7

Connection markers

It's important NOT to just connect Markers random. But to think of 2 way routes between markers. A idea is to make a route through the whole map, and then make some cross points out to the goals/items. Ex. in YA on ztndm3, there could be a marker in the middle lower room floor, and that marker could be connected to YA, Stairway, LG corridor and Teleport, markers.

Hit 'Default Marker Mode' (impulse 132) before making the routes, that makes sure, you are NOT using ONE WAY MODE. And then use 'Toggle Connect Markers Mode' (impulse 131)

It is a good idea to use 'Toggle Closest Marker ON/OFF' to make sure the wanted marker is marked. When it's marked then, when 'Toggle Closest Marker' is OFF, you can move to the next marker and use 'Toggle Connect Markers Mode' (impulse 131). Play with it, and test the bots movement on the map.

Step 8

Making the .qc file

There is no command for saving the specific file, for the compiler. But that is why you need -condebug in the command line. It will make a log file for all the commands typed in the console. And save that log file to quake\joequake\qconsole.log.

When you think you're finished making the waypoints, you can save all the info by hitting 'SaveMarkers' (impulse 133). It's a good idea to do this a couple of times, to avoid loosing all the work, if the game crashes (for testing purpose - since you need to get everything done in one session - it should be possible to compile and test in another client and leave joequake running.).

Step 9

Compile the qwprogs.dat

I use Trinca's excellent Source SRC of Frogbot 1.01. The version is now SRC379. To add a map to this source, you simply make a map_mapname.qc file for your map. And add it to the src379\maps\ folder. Then hit the genlist.bat. As I understand it, it will then add your map_mapname.qc file to the right files in the source. And then you will have to compile the qwprogs.dat, by using the fteqccgui.exe.

Simply just open the compiler, go to Options, press the O3 button and tick 'VectorCalls' and press USE. And it will compile the qwprogs.dat, who you should add to the Frogbot dir.
step9_options.png

Happy Gaming!!

Troubleshooting

Various issues that could happen

Remove markers: Before using 'Remove Marker' (impulse 128) remember to 'Clear Marker' (impulse 137). You'll have to clear paths, going from the marker, and to the marker, that you want to remove. Most clients will crash if you don't do this.