| Program Text | Demo |
|---|---|
![]() |
![]() |
The computercraft mod for Minecraft adds programmable robots called turtles, which can move around, dig tunnels, build walls and interact with anything in-game.
AdaBots helps to teach children and adults alike the Ada programming language. If your child cannot read yet, I recommend you start him / her on DoBots first.
It is possible to use the small terminal window in-game and the built-in scripting language Lua to write programs, but I wanted to make this easier. This is a standalone program you can run on your computer locally, outside of minecraft, which issues commands to the in-game turtles. This means you can use a real programming environment, with code-completion, a debugger, static-analysis and even mathematical proofs of program correctness using SPARK.
Ada is a very safe, easy to learn language. It was designed from the ground up to be easy
to understand and difficult to make mistakes in. It is case-insensitive, disallows assignment
inside conditional statements, has explicit end if;, end loop; etc. instead of the popular
but confusing } in most programming languages, disallows all implicit type conversions
(which also makes it possible to overload on return type), and even makes multithreading easy with
its simple tasking and rendez-vous idiom. Since you can create tasks and multiple turtles in a single
program, you could explain these concepts intuitively using AdaBots.
In addition, the Ada compiler is an unusually helpful one, saying things like:
lovelace.adb:10:04: warning: variable "Blocks" is never read and never assigned
lovelace.adb:20:30: error: "Dat" is undefined
lovelace.adb:20:30: error: possible misspelling of "Data"
You will need:
- A minecraft or minetest installation
- An Ada development environment
You can use either Minecraft or Luanti (formerly Minetest) to run a commandlistener for AdaBots programs.
Luanti is recommended, and is fully supported and also what adabots.net uses. Luanti (minetest) installation instructions here.
I do not recommend Minecraft, because it is closed source and Microsoft has been adding a lot of bloat to it in recent years. However, it probably still works if you are willing to debug old versions of AdaBots. Use the install instructions for Adabots in single-player at your own peril.
For Ada programming, you will need to install:
- An Ada compiler (run the installer for your platform here)
- An IDE (details here)
- Alire (alr)
Clone the AdaBots_examples repo to have a project up and running quickly. Just open adabots_examples.gpr and src/build_wall.adb in your IDE.
Open a terminal and issue make. It should be around ten minutes the first time, but should only take seconds afterwards.
To start the program, run ./bin/[program_name] in a terminal.
Assuming listen is already running on a minecraft turtle, or turtle:listen() on a minetest turtle, it should start moving.
Now that everything is working, you need something to do. If you are on your own, set yourself some goals:
- build a staircase down (3 blocks tall, so you can follow!), and then
- a cavern of 10 x 10, 3 blocks tall
Or, on the surface, build yourself a house, a tower, or a castle. The sky and bedrock are the limits!
To teach (children) using AdaBots, you need at least a basic understanding of programming (not necessarily with Ada). I recommend the AdaCore Introduction to Ada (html / pdf) as a course syllabus. Next, you need to stay one lesson ahead of your pupils by experimenting yourself first.
There is a collection of example programs here. I recommend you use them as a starting point for using AdaBots.

