How does the platform work?
At the heart of Project Malmö is the ability to create "Missions" which are essentially descriptions of tasks which, in broad terms, consists of the:
- Minecraft environment (world) such as the blocks, items, weather and enemies,
- Observations that an agent receives as it traverses the Minecraft environment,
- Reward handlers which define what "good" and "bad" agent behavior is, or, in other words, implement reward functions, and finally,
- Quit producers that define when a mission ends.
Project Malmö provides a simple API (a set of useful function) for creating tasks; however, for most development, a commonly used file format which can easily be extended and is compatible with many programming languages, namely XML, is used.
One Missions are created using a programming language of your choice, agents can begin interacting with the environment and try to complete the mission successfully by sending commands to Minecraft and receiving rewards and observations.
How do I get up and running?
For playing around with Project Malmö, a release version of the platform should suffice. However, for contributing changes to the platform and creating Missions with functionality not already provided by Malmö, a full build will be needed.
To get up and running with a Release version visit the GitHub Repo, scroll down to the README and follow the instructions under Getting Started.
The Download Link on the Right Pane downloads a copy of the GitHub Repository as a .zip. This works for a build. However, if you would like a release, please visit the GitHub page and follow the instructions in the readme there.
Most of the steps in the instruction should be quite straightforward. Should you face any difficulties, have a look at the Troubleshooting Wiki page on GitHub for solving some common problems; however, if you do not see your problem discussed there, do post an issue on GitHub or a message on the Gitter chat room if there are other problems you are facing.
As suggested in the readme, to get familiar with the interface once all the installation is done and things seems to work, you can go through the Tutorial which is currently based on Python. At this point, it is probably good to note that while the platform works with other programming languages, currently most of it is focused on Python simply because many AI and Machine Learning frameworks use Python and it works well as a scripting language with a gentle learning curve, which is especially useful when creating Missions.
The Documentation is also be very useful. More specifically, for getting more familiar with the agent side of things, such as the functions Malmö provides for agents to perform actions and receive observations, take a look at the API Documentation. On the other hand, for the Mission Generation side of things, take a look at the XML Schema Documentation.