Description
Presented by: Katie Bell
There's already a great Python scripting interface for Minecraft, allowing you limitless creativity with the ability to read and place blocks anywhere. Unfortunately with limitless power the challenge of Minecraft disappears, because building a castle is somehow more satisfying when you have to mine and craft every block. If you’ve played Minecraft you’ve no doubt found yourself building or mining mindlessly in a pattern and wished you could simply script away the boring bits, but still keep the fun and challenge of the game.
In this presentation I'll be demonstrating a Python interface for writing Minecraft AIs, giving you the programming equivalent of Survivor mode. Your helper robots have some advantages over humans and can mine and build things for you faster, but ultimately this doesn't feel like cheating because it can’t do anything you can’t do. This also works well in multiplayer on an open server where players and bots can interact but no single player can destroy the world with a small software bug.
Writing an AI for the Minecraft world poses an interesting challenge for both young and experienced programmers, it’s a pure example of how we can use programming to avoid boring and repetitive tasks in the real world. It provides new programmers with immediate goals and for students exploring more advanced computer science concepts it leads well into real world robot control and game AI algorithms.
In this talk, I'll go through the Minecraft server and client implementation details, the challenges of multiplayer programming and the structures built into the interface to make coding AIs easier such as built-in state machines and the ability for the in-game player to give commands.
As a bonus, we’ll see how it plays out in the real world, what happens when we give the interface to a group of young programmers on a shared server, and how we can set up competitions and more specific AI-coding challenges.