When I was a kid, one of the first video games I played was called Robot Odyssey on my friend's Apple. You played the role of a human in an underground city or something, and you had 3 robots. You could go inside the robots and wire them up to carry out tasks autonomously, e.g. the robot might need to go into a room by itself, navigate the environment, retrieve an item, and exit the room to return to you. To do all this, you need to program the robot by going inside it and wiring up its insides. For example, you could wire the left bumper to the top thruster, so that when the robot bumps into a wall on the left side the of the room, its top thruster fires and it moves down.
I found the process of designing the autonomous behavior of the robot endlessly frustrating and fun, and I've been fascinated by the idea of designing a game in which the player composes a behavioral script for an agent. I think if it is done the right way, it could be very compelling, while also teaching or reinforcing critical thinking and very basic programming concepts.
I think when I mentioned this before, it was Kenny who mentioned the board game RoboRally as employing similar concepts.
So I finally ordered it last week and played my first game this week.
The game is somewhat similar to what I was envisioning. Each player has a robot that starts at a given position on a board (the setting is supposed to be a factory). There are conveyor belts (not actually moving parts, just indicated by arrows on the board), pits, repair stations, and flags. Each turn, each player draws some number of cards which indicate basic movements (e.g. move forward 2 spaces, turn left, back up 1 space, etc.). The player composes a series of movements out of these cards each round and places them face down in front of them. Players then turn their cards over one by one and execute the movements.
The "programming" in this case only consists of movement instructions, so there is not use of control statements or logical operators. In this sense, the analogy to programming is quite weak. Also, you only ever get one shot at a given "program". There is no iteration, which I think was one of the most compelling things about Robot Odyssey. You would wire up your bot, send it into a room, and see what it did. Often it would behave in ways you hadn't anticipated, and you'd then be able to make a couple of small changes and try again. There is no trying again with RoboRally. You end up where you end up at the end of a turn. You discard your old program and draw and compose a new one.
The game seems to require an awful lot of mental spatial manipulation, planning, and prediction. In this sense, it reminds me an awful lot of the Labyrinth board game by Ravensburger. So for teaching mental spatial skills, I think it's great. But programming? Not so much.
And a couple of other criticisms: The game is not very casual at all, so in that sense I don't see broad appeal, especially to younger kids. The game is quite complicated. There are elements that easily could have been left out (e.g. Option cards, which we never even got to in our first game) that would still retain the core experience. Also, the game is pretty brutal for making mistakes of any kind. If you accidentally navigate off the edge of the board (which is pretty easy to do while you are still learning the basics), you have to position the bot back at the starting point, you lose one of only 3 life tokens, you take two damage points (which reduced the number of cards you can draw each turn, AND you lose an option card. I mean, come on.
Another big disappointment was that there's a cool variety of different robot designs, and each robot has a name (e.g. "squash bot") and an individualized tracking card to place tokens on. I thought this signified that each robot had some kind of specialized skill or something to differentiate each one from another. But no, despite their idiosyncratic names and designs, they are all exactly the same in terms of game play.
Anyway, cool game, but in my opinion it's overly complicated, unnecessarily harsh on beginners, and doesn't really capture the core elements of algorithmic design (this isn't an inherent problem with the game, it's just that I was hoping it would flex programming skills more than mental movement and rotation).