-
Notifications
You must be signed in to change notification settings - Fork 48
Single Player Learning Track Specifications
Thanks for using the GVGAI Single-Player Learning framework. All suggestions are welcome.
The Single-Player Learning track is based on the GVGAI framework. Different from the planning tracks, no forward model is given to the agent, thus, no simulation of games is possible. The agent does still have access to the current game state (objects in the current game state), as in the planning tracks.
This page explains the main competition procedure. For more details about how to create and test an agent, please refer to the following pages:
If you have any questions, please read the above pages first. If you can not find the answer to your questions, please do not hesitate to send a query to [email protected].
- You can run the Single-Player Learning framework on Unix, Mac OS X or Windows.
- This track accepts submission of agent written in Java or Python. The Python client has been tested with Python3.5. On the server, TensorFlow has been installed for Python3.5.
- The agent can choose to receive a serialised JSON game observation (String) or an image (PNG).
For a given game, each agent will have 5 minutes for training on levels 0,1,2 of the game, the levels 3 and 4 will be used for validation. The communication time is not included by Timer.
- Training phase 1: Playing once levels 0, 1 and 2 in a sequence: Firstly, the agent plays once levels 0,1,2 sequentially. At the end of each level, whether the game has terminated normally or the agent forces to terminate the game, the server will send the results of the (possibly unfinished) game to the agent.
-
Training phase 2: (Repeat until time up) Level selection: After having finished step 1, the agent is free to select the next level to play (from levels 0, 1 and 2) by calling the method
int result()
(detailed later). If the selected level id is not among 0, 1 and 2, then a random level id will be passed and a new game will start. This step is repeated until 5 minutes has been used.
In case that 5 minutes has been used up, the results and observation of the game will still be sent to the agent and the agent will have no more than 1 second before the validation.
During the validation, the agent plays 10 times levels 3 and 4 sequentially.
The framework can be downloaded here (master).
-
gvgai/clients/GVGAI-JavaClient
: It contains the all the necessary classes for client, including the communication via sockets and a sample random agent. You can create an agent for the Single-Player Learning Track of the GVG-AI competition just by creating a Java class that inherits fromutils/AbstractPlayer.java
. This class must be namedAgent.java
and its package must be the same as the username you used to register to the website (this is in order to allow the server to run your controller when you submit). During the testing phase, the package can be located ingvgai/clients/GVGAI-JavaClient/src
. -
gvgai/clients/GVGAI-PythonClient
: It contains the all the necessary classes for client, including the communication via sockets and a sample random agent. You can create an agent for the Single-Player Learning Track of the GVG-AI competition just by creating a Python class that inherits fromutils/AbstractPlayer.py
. This class must be namedAgent.py
and its package must be the same as the username you used to register to the website (this is in order to allow the server to run your controller when you submit). During the testing phase, the package can be located ingvgai/clients/GVGAI-PythonClient/src
.
Please take a look at the very simple sample Agent.java or Agent.py.
For more information, please check:
-
GVG Framework
- Tracks Description
- 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