YATE is an abstraction layer for 3D gaming environments and virtual worlds intended for use in training prototype AGI (Artificial General Intelligence) systems, at present supporting only minecraft, though the general architecture is intended to work for any other 3D gaming environment.
The system consists of a few parts:
- The game server: where the game actually runs, YATE doesn't really directly alter anything here at all
- YATE proxy: connects to the game server (or theoretically could embed a game engine) and translates+abstracts details to present a uniform interface
- YATE proxy driver: handles game-specific tasks for the YATE proxy
- YATE console (optional): connects to the YATE proxy and gives an overview of what the state of the game is from the AI's perspective, can also be used as a lightweight client if desired
- Your AGI: connects to the YATE proxy using a simple UDP-based protocol and does AGI stuff - I call mine MrRobot and it's in this repo
- Start a minecraft server in offline mode and ensure it's listening to port 25565 on localhost (you can of course change this if you really need to, but then you need to update the minecraft_proxy.sh script)
- Start the YATE proxy by running minecraft_proxy.sh
- Join the game with a normal minecraft client and find your bot's avatar - it should be standing still
- Start the YATE console, MrRobot or both (see the relevant directories in this repo) and then have fun