1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
use crate;
use crateCommandTree;
/// How an agent interacts with a game.
///
/// The agent:
/// - Receives observations (game views)
/// - Decides what to do (internally using GOAP, HTN, ML, hardcoded logic, whatever)
/// - Produces commands for the game
///
/// Different agents playing the same game can have completely different
/// internal representations. One might use GOAP with 50 beliefs, another
/// might use a simple heuristic. The arena doesn't care — it just asks
/// for commands and measures results.