-
Notifications
You must be signed in to change notification settings - Fork 68
Sample MCTS Controller (2 Player)
rdgain edited this page Jul 6, 2016
·
2 revisions
The 2 player sample MCTS controller is programmed in three different classes:
- Agent.java: Main class of the agent, that extends class AbstractMultiPlayer. Implements a constructor and the act function. Catches the player's ID, the number of players in the game, the opponent's ID and the actions available to all the players (saved in a static array).
- SingleMCTSPlayer.java: Implements MCTS and holds a reference to the root node, object of class SingleTreeNode.
- SingleTreeNode.java: Each MCTS node, implementing the typical MCTS operations (uct, expand, rollout, backpropagation, etc.).
To note, the actions assumed for the opponent are always random.
Analogously, Sample OLMCTS also implements a Monte Carlo Tree Search controller, but in an open loop fashion. This means that the states are not stored in the tree, which behaves better in non-deterministic scenarios. The classes are analogous to those from the Sample MCTS controller.
Important: both MCTS implementations use static variables. This means that they will not be able to play against themselves (MCTS vs MCTS or OLMCTS vs OLMCTS). This does not affect the competition as controllers will never play against themselves, but imposes care when testing the framework.
-
GVG Framework
- Code Structure
- Creating Controllers
- Creating Multi Player Controllers
- Creating Level Generators
- Running & Testing Level Generators
- Creating Rule Generators
- Running & Testing Rule Generators
-
Forward Model and State Observation
- Advancing and copying the state
- Advancing and copying the state (2 Player)
- Querying the state of the game
- Querying the state of the game (2 Player)
- Information about the state of the Avatar
- Information about the state of the Avatar (2 Player)
- Information about events happened in the game
- Information about other sprites in the game
- Game Description Class
- Constraints
- Game Analyzer Class
- Level Analyzer Class
- Sprite Level Description Class
- Sprite, Termination, and Interaction Data Class
- Level Mapping Class
- Competition Specifications
- VGDL Language