Learn Basic Programming While Playing with Cargo-Bot for iOS

Maurice Cherry

Do you know a programming language? Is it JavaScript? Python? Ruby? PHP? Within the past year or so, there has been a huge interest in teaching people how to code using gamification methods. Badges, achievements, leader boards, progress bars…all of these are employed to motivate the player and give the user a sense of accomplishment after slogging through a few introductory code examples. But, do they work?


Cargo-Bot is an interesting variation on this theme because it’s a game disguised as a way to teach programming. The premise is simple: just use the crane to move boxes back and forth between platforms. It sounds easy, but with any simple game, the devil is in the details. Let’s have a closer look.

Home Screen

On first run, you’ll see the Cargo-Bot loading screen. One of Cargo-Bot’s main draws is that it is the first game that was designed and programmed entirely on the iPad. Rui Viana, an Australian game developer, built Cargo-Bot using Codea, a touchscreen-based code editor. You can tap anywhere on the screen to start your game.


There are six level packs to choose from: Tutorials, Easy, Medium, Hard, Crazy, and Impossible. Each level pack is comprised of six different puzzles, and you can earn anywhere from one to three stars based on your efficiency in completing the level. While you may be tempted to start off with the easiest level pack, you should definitely run through the tutorial levels first. Here we go!


By now, you’re probably wondering what stacking boxes using a construction crane has to do with programming. The straightforward answer is that Cargo-Bot will not explicitly teach you how to program. Rather, Cargo-Bot can make you more familiar with certain programming concepts like loops and conditionals, which are standard across a number of scripting languages. Programming, after all, is about learning how to solve problems. And what easier problems could there be to solve than stacking boxes in order? The key for Cargo-Bot is teaching you efficiency, so you can do more with less time and fewer actions.

The crisp retina graphics do a great job of drawing you into the game, and the Yann-Tiersen-style music helps you concentrate without driving you crazy. And, you’ll need that concentration in order to start grasping the basics of Cargo-Bot.

The basic Cargo-Bot programming interface is comprised of four rows for commands (three rows have eight slots and the last row only has five slots) and a big green play button at the bottom of the app to process all the commands in the rows. To the right, you have a toolbox which has directional tiles for the crane (left, right, and down), four “loops” for each row, and a button to clear all the slots in the rows. The goal of the level is listed at the top of the app, and there are buttons to show you hints, advance forward through the rows one step at a time, fast-forward the crane’s movement, and return to the main menu. One thing I love about Cargo-Bot is that puzzle solutions can be saved to the iPad for sharing on social networks like YouTube or emailing to a friend.


The first four levels — “Cargo 101,” “Transporter,” “Re-Curses,” and “Inverter” — are fairly easy to accomplish. Once you start “From Beneath,” four additional commands are added to your Toolbox which handle conditions for the crane. You have a yellow flag, a blue flag, a rainbow flag, and a gray None flag. Using these flags on top of any command tile or loop tile, you can add a condition to control the crane if it is holding a box of a specific color, of any color, or if it’s not holding a box at all. In “Double Flip,” you gain a green flag and a yellow flag. Not every puzzle gives you these flags to use, so you have to be pretty creative with some levels. Soon, you’ll be creating subroutines, recursive functions, and nesting commands with ease…but it will take you a while to get the hang of it.



Despite the basic appearance and simplicity of Cargo-Bot, this game is anything but child’s play! It’s hard to call this a drawback though. The game only has 36 levels, but I guarantee you’ll have a hard time getting through them all and scoring three stars in each one. The tutorials are there to help you out, and creating solutions are all about planning and efficiency.


Each level contains a Hints button at the top-left corner to give you some direction if you become stuck. These hints aren’t particularly helpful in the later levels, but they can give you a bit of help in the beginning.

Aside from this, there’s not much to the game once you’ve progressed through the levels. You gain stars depending on the efficiency of your stacking algorithm, but the stars have no use in the game outside of that. They don’t unlock any other levels or different commands or conditionals. I guess the satisfaction of creating an efficient solution is good enough, especially since many of these puzzles are quite difficult.


Cargo-Bot is a fun yet challenging game that masks the teaching of programming concepts within a simple and attractive gaming interface. The learning curve for beginners is a bit brutal, so it’s definitely a game for kids. If anything, Cargo-Bot is a great example of what Codea can accomplish as an iPad programming app.


Cargo-Bot is free in the iOS App Store and requires iOS v5.0 or higher to run. Download the app from the App Store link below or by using the App Store button provided.

Download Cargo-Bot

CSS Master, 3rd Edition