Games have a knack for making boring, dull, or difficult tasks seem fun and interesting. They engage players, rather than putting them to sleep, and make it easier to learn through action and experimentation.
Light-Bot, which started life as a web game but is now available for Android, serves as a brilliant introduction to programming. It teaches logic through puzzles that require you to guide a robot through a level by writing step-by-step instructions for its movement. And it’s fun to boot.
In a move sure to anger environmentalists, Light-Bot tasks you with turning on all the lights in a level. You do this not with the flick of a switch but via the magic of programming. Your little robot needs instructions, see, or it’ll just stand motionless in perpetuity.
Levels are laid out on an 8×8 grid, with blue squares representing switched-off lights. Most levels offer tiles stacked up from the base layer; your robot always starts on the bottom layer.
It starts out simple, but you’ll be needing to get crafty soon.
There are seven types of instruction: Forward, turn left, turn right, jump, toggle light on/off, enter Function 1, and enter Function 2. Using combinations of these, you must overcome the increasingly fiendish puzzles. You get more points if you solve a puzzle with fewer steps, and there’s also a maximum number of instructions.
A bit of cleverness overcomes the restrictions, however, and this is where Light-Bot makes you think. While early levels can be completed through brute force, later ones require the kind of abstract thinking involved in re-usable functions.
What does this mean? Well, in programming you want to do things as efficiently as possible. Being able to re-use a block of instructions reduces size and complexity, improving performance and making debugging easier. If something can be re-used, that’s one less piece of the puzzle you have to worry about later.
This looks simple enough, but appearances can be deceiving; you’ll need to apply modular thinking and create reusable functions.
Light-Bot encourages you to think in this way by awarding higher scores for fewer instructions. More than that, it forces you to adopt the principles of high-level abstraction and modularity in order to solve the majority of its puzzles. You may not realize it if you haven’t done any coding before, but Light-Bot teaches you vital concepts and principles behind programming.
Stop and Go
There are three methods, or functions, at your disposal — these are essentially sets of instructions. The main method has more available instructions, but it runs only once per instance — executing when you hit the Go! button. It can call Function 1 and Function 2 if you need more instruction slots. These functions can also call each other, or themselves.
Be careful not to get stuck in an endless loop, with each function calling the other or one repeating itself indefinitely — never switching on that final light to complete the level. Your little robot will follow your instructions until no more remain, until every light is switched on, or until you hit the Stop button to reset the grid.
Things can go wrong pretty easily when you start trying to be clever.
Trial and error is both a viable and recommended approach, but at some point toward the end you’re likely to need a pen and paper. Light-Bot, rather like the task it turns into a game, is a thinking pursuit — you’re unlikely to blow through it in an afternoon — unless you’re an engineer or coder — even though there are currently just 18 levels.
If you really get stuck, there are tutorials on YouTube for the first 13 levels — which are also found in the web version. There’s an app on the Play Store called Light-Bot Guide, too, with a screenshot of a valid solution for each level.
Light-Bot is great for what it is, but it could be better. It could do with some more instructions — not so much in how the interface works, which is already there in the How to Play menu, but in how to progress and what the underlying theories are. Intuition can get you most of the way, but at some point, novices to programming will likely get bewildered and bamboozled by the puzzle design.
This is the full extent of your instructions.
There’s no indication as to what instruction is being executed at any given time, making the process of debugging your simple programs more difficult. Once again, people who already know how to program will likely have an easier time figuring out where the robot is in the sequence when things go wrong — but they aren’t the target audience here.
A level editor would also go a long way to improving the game. Programming heavily relies on creativity after all, so encouraging players to design their own puzzles should get the right juices flowing.
Fun and Challenging
In spite of these complaints, Light-Bot is an excellent and fun introduction to the principles of programming. Its simple interface and attractive-yet-minimalist visuals take a back seat to the challenging puzzles, and its effortless championing of the art of logic and programming should be applauded.
Children especially should be encouraged to give it a try, learning essential skills for the future all while having fun. If you can already code it’ll test your problem solving skills, too. Light-Bot is ultimately a refreshing change of pace only stilted by a lack of longevity. Apply a little logic and give it a go.