Minecraft is a hugely popular game that runs on PC, Xbox, PlayStation, and even smartphones. It's the best-selling PC game of all time and has become a worldwide sensation with obsessive players around the world, a large online community, and a vast array of merchandise. Many people enjoy building complicated structures and even creating their own interactive systems using only the mechanics of the game.

The free Raspberry Pi version of the game is the only one that comes with a programming interface, allowing players write code and manipulate the world around them. It's based on Minecraft Pocket Edition for Android, and a Python API is provided. It's bundled with Raspbian, the Pi's main supported distribution, and it's being used to teach programming skills to young people around the world.

You can explore the Minecraft world with your mouse and keyboard, place blocks and build things manually, but the fun really starts when you open up a Python window alongside Minecraft and start sending commands into the world.

Minecraft Python API

So, what can you do from the Python API?

Location

Get your player's coordinates, and use these to teleport to another location in the worldwide.

Blocks

Set a block at a particular set of coordinates (perhaps right in front of your player), or set multiple blocks in a cube or cuboid. There are 70 block types available, including stone, grass, dirt, water, lava, snow, ice, flower, melon, and TNT.

Loops

Use infinite loops to keep placing blocks behind your player as he walks or build a house and get it to follow you wherever you go.

Viewpoint

Change the “camera” viewpoint, i.e. how you view the world.

Events

Keep track of what has happened to a particular block, and use events to trigger other actions.

Explosive TNT

The TNT blocks can be activated by the player hitting one with a sword.

With this set of functionality available, it is possible to create amazing structures autonomously, create games and interactive applications. Combined, the functions can be used in interesting and imaginative ways.

Games

Create a Minecraft version of Whack-a-mole (Whack-a-block), Snake, Hide and seek, and more—all programmed using the Python API.

Animation

Watch this amazing Minecraft Pi recreation of a scene from Star Wars:

And recreate it for yourself by downloading the code!

Fractals

Learn how fractal trees are generated and write code to build your own.

Minecraft in Education

We've found this version of Minecraft to be a valuable learning tool that gives young people the chance to learn programming in a domain they can relate to, and one which motivates them to use code to solve problems.

Install

Minecraft has been pre-installed in Raspbian for about a year now, so you may already have it.

If you have an older Raspbian image, just run:

sudo apt-get update

sudo apt-get install minecraft-pi

To learn more, check out the Getting Started with Minecraft Pi learning activity on raspberrypi.org and check out an API reference guide at stuffaboutcode.com.

Raspberry Pi

column

This article is part of Ben Nuttall's Raspberry Pi column, where he shares news and stories from the world of tiny computing.