Robo Instructus devblog

Updates on the development of coding puzzler Robo Instructus


Coding In The Game

I'm a game developer currently working on robot engineering puzzle game Robo Instructus. For my previous posts look here.

There aren’t too many games that let you go to town on the keyboard writing magic spells that solve all your problems. No, I’m not talking about Magicka, I mean games with actual programming inside the game.

# fps puzzle solving
loop
    for enemy in enemies_nearby()
        while enemy.is_alive()
            self.click_on(enemy.head)

    self.move_forward()

For the past couple of weeks I’ve been working on a project around coding in a puzzle setting. I’m working on this because I believe that getting you, yes you, the actual player, to write a little code will give them the joys of mastery and creativity in solving problems. I’ll talk more about my current game project later, but now lets explore the idea behind it a little.

Creating stuff is fun

The act of making your own stuff is enjoyable. This seems to be true even if you don’t believe what you have created is actually all that. So it’s strangely satisfying to dig out your first cave in Minecraft, slap down a residential estate in Sim City or link up some paths in Settlers.

Coding itself is inherently creative. Given a set of tools you figure out how to achieve some goal, there will be many different ways to solve a problem. Your solution will maybe be an unreadable mess, but it’ll be your unreadable mess.

Solving problems is fun

Puzzle games exist because of this simple truth. Again an important point is solving puzzles is still fun even if the puzzle may not seem to be the ultimate problem. It’s natural to feel a bit like a genius after solving an initially stumping problem, even if it actually wasn’t a graceful proof for Fermat’s last theorem. Even simple problems are satisfying to work through. Click through a level of Hexcells, it’s fun even initially when it isn’t actually hard. Not match-3 games though, enjoying them is probably a disorder.

When programming with the proper tools/APIs I can manipulate the world, I can solve a problem inside that world.

Mastering a skill is fun

Learning something, getting better at it and seeing the benefits feels good. We see this in games apparently beloved for being ‘hard’. In my experience it hasn’t been simply because the game is hard, it’s that the systems can be mastered, and their puzzles are designed to require the player to master them. This ties together with solving a problem. I have a problem I can’t solve, I get better at a skill, I can now solve the problem, boom satisfaction.

Undeniably, programming is a skill to be mastered, and solving a problem with code will require some mastery. Some more, some less. Some problems you can solve really easily if you’re really good, but even if not you can still get something working. This is a fantastic property of programming. You don’t need to be Martin Odersky to feel the satisfaction of mastery in code.

Putting it together

I want to make a game that puts these 3 together. Problems providing focus to master your tools, and create solutions. The mastery, the creation and the problem eliminated, all providing what we’re after: Fun!

Great, but…

Coding & mathematics are esoteric to many. It feels like there is no in to allow you to learn it and no quick rewards to doing so. But these are things I think a game can address much more directly than real world coding can. After all these are puzzles designed to be solved. I think programming can be enjoyed by anyone that wants in.

In fantasy fiction wizards are born into their rare mysterious talents, but in reality anyone can start down the arcane road.
So, do you want to cast spells?

Comment on twitter | facebook | reddit

All Posts