editing guide
[xonotic/xonotic.wiki.git] / Planning / Bot.md
1 Bot
2 ===
3
4 General behaviour
5 -----------------
6
7 ### Goals
8
9 Pathfinding
10 -----------
11
12 ### Goals
13
14 -   Plan A - Grid based
15
16 -   Plan B - Waypoints based
17     -   Cached waypoint links
18
19 -   A\* based
20
21 -   Cached nodes _(applies to both plans)_
22     -   This means that most of map discovery or waypoint creation will be done offline
23
24 Navigation
25 ----------
26
27 ### Goals
28
29 -   Steering behaviour
30
31 -   Swimming
32     -   Support getting out of water
33     -   Float in the same place if until a path is found
34     -   Eventually support navigation under water as long as the pathfinder supports it too
35
36 -   Able to get out of lava, acid, etc
37     -   Ideally it should request quickly a new path to the pathfinder, instead of improvising on the movement code
38
39 -   Never, ever, get stuck in the same place. Wander around if there nothing better to do.
40
41 -   Able to rocket-jump _(as a last resource measure, when they're thrown into space void)_
42
43 -   Plan A - Waypoint based
44     -   Avoid path congestion _(this happens when more than one bot on the same team are traveling over the same path)_
45
46 -   Filter insanely quick movements (aka shaking)
47
48 Talking
49 -------
50
51 ### Goals
52
53 Aiming
54 ------
55
56 ### Goals
57
58 Coding guidelines
59 -----------------
60
61 Links
62 -----