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_dummyandagent_randomare the most simple agent implementationsagent_treeis an hardcoded agent for thePatternenvironmentagent_ppoandagent_acktrare wrappers for OpenAI's baselinesagent_rlruns PyTorch RL algorithmsagent_nearestis a K-Neareast-Neighbor agenttest_controlleris a simple usage ofMinecraftControllermulti_agent_test_patternruns multiple agents in a single environment with only one Python processagent_imitation_traindoes imitation learning