Getting TF bots to *consistently* airstrafe.

Amicdict

L1: Registered
Jan 21, 2021
17
3
(EDIT: ) NOTE: This technique works in the base game (so no mods).

Some time ago, I published a guide to making TF2 nav meshes on GitHub. (In retrospect, I wish I published it on Codeberg, Gitea, or Forgefriends; GitHub is proprietary.)

A technique I listed in that guide is airstrafe paths; a path of nav areas that trick a bot into airstrafing. However I want to better elaborate on airstrafing in the nav mesh (and how to get bots to airstrafe).

"How do bots airstrafe?"


Bots travel through navigation areas (shortened to 'nav area'), regardless if the bots are grounded. (Bots will still attempt to move, when in the air, if they are still on a nav area.)

I will illustrate this concept through an example.



Imagine a map where there is a navigation area above the ground; there is a bot under the nav area.

init-example.png


The bot will not attempt to move, despite being able to walk.

However, if the bot is on the navigation area:

able-to-move-example.png


The Bot will attempt to move (and turn), despite being inable to actually move in a grounded manner.

P.S If you are worried that I am lying, or want to test this concept out, I have made a nav mesh that incorporates groundless nav areas: pl_vigil_rc7.nav. The airless nav areas are located at BLU spawn. (I probably should have included a video; but I was too lazy to do so.)

Trick the bot into utilizing the groundless nav areas to get to, for instance, the patio. (bot_moveto does not work; so you will have to use an `item_teamflag` entity to get bots to move to a specific location.)


NOTE: Nav areas in the air will still work in the same manner as regular nav areas. (They can be connected and biconnected, they can be marked with attributes.)

"So how do I get an nav area into the air?"​

Nav areas can be raised or lowered through nav_corner_raise and nav_corner_lower. (Nav areas can be horizontally shifted through nav_shift, and nav_begin_shift_xy then nav_end_shift_xy.

Tips​

  • Mark an area with the CROUCH attribute to make bots crouch in the air.
  • Utilize the PRECISE attribute to prevent bots from skipping nav areas. (Like on the nav area that initiates the airstrafe to prevent the bot from attempting to skip the airstrafe.)
 
Last edited:

Amicdict

L1: Registered
Jan 21, 2021
17
3
I have added a video demonstrating this technique. \[1\]\[2\]

EDIT: I have also added a demo for the video, though you will need pl_vigil_rc7 to load it. The bot airstrafing begins at ~18000 ticks.
 

Attachments

  • bot_airstrafe_demo.zip
    3 MB · Views: 134
Last edited:

worMatty

Repacking Evangelist
aa
Jul 22, 2014
1,257
999
I suggest you upload the videos to YouTube. I'm a little bit interested to see this but not enough to download a file. I would like to share it with some friends.
 

mohammedparadox

L1: Registered
Jun 22, 2022
2
0
how do you make bots dodge erratically with nav generation,
also there is no nav meshes in tr_arena_rc2 yet the bots still dodge regardless tell me why