Agents are implemented as a combination of Java and Python.
Environments or tasks should be described in Java, by extending the Environment class. Those define the observations, actions and rewards of the agent. For now, each agent has its own environment instance.
The learning algorithms should be written in Python, they interface with Java through a MinecraftEnv
instance that implements the gym interface. This environment assumes that env.reset()
is called initially and after each step that returns done = True
.
Python scripts communicate with the Minecraft server through TCP sockets.
agent_dummy
andagent_random
are the most simple agent implementationsagent_tree
is an hardcoded agent for thePattern
environmentagent_ppo
andagent_acktr
are wrappers for OpenAI's baselinesagent_rl
runs PyTorch RL algorithmsagent_nearest
is a K-Neareast-Neighbor agenttest_controller
is a simple usage ofMinecraftController
multi_agent_test_pattern
runs multiple agents in a single environment with only one Python processagent_imitation_train
does imitation learning