When a Game Teaches You
Press Command to Start
Grab your beer, your cup of coffee, or whatever… The tale begins here.
A year ago, we met some lovely people from a training center. They had this training course in programming and were looking for a game to help their participants learn programming more efficiently. They didn’t have a ton of money but the idea of making a game about coding was enticing.
There is no need to tell you how coding is important in video games development, and at Fishing Cactus, we really do love making games. After hours of reflection, we called those guys back. Challenge accepted!
Then we thought about it. How are we going to teach programming without being dull and boring? That was our first challenge, and also the beginning of the A team. As part of this team, Laurent Grumiaux and Guillaume Bouckaert thought about the game’s concept, and we can truly tell you that this game was mind-tingling before even being a real game.
The first good idea that came out from this collaboration was to invite programmers to join the team, which allowed them to act early in the development process. It turned out that many of them used to play Logo and Robot Rally as kids. That point helped to redefine the concept.
Step 1: Redefine the Concept
Making a game about programming is not that easy, and we didn’t want to create another “OkILearnedSomethingAndSoWhat?” game. Then we were reminded of a famous quote from Steve Jobs: “I think everyone should learn how to program a computer, because it teaches you how to think.” The solution was so obvious that no one even noticed it until then: we wouldn’t create a game that teaches you to code, but a game that teaches you how to improve the way you think.
But how were we going to do that? With logic, of course! Nowadays, coding is one of the more desirable skills there is, and coding is nothing without logic. With this in mind, we set out to create a game that would help people grasp the essential skills of logic that the programming craft requires. Good! We have got a nice concept. The question now is how will we manage to do that?
The first idea was to create a character that has a job to perform in a futuristic power plant full of leaking toxic containers, industrial crates, and stubborn little robots. By carrying around those toxic containers, sorting them out and re-arranging them, the player will need to be smart and use programming basics such as functions, variables, the set theory, conditions, and loops.
The player won’t control the character directly. He won’t make him jump on mushrooms by pressing a single button either. Instead, he sets up a sequence of orders for him: go straight, turn left, go straight again, turn right, etc. When the player is done creating his little sequence, he passes it on to the character, who will follow the given orders to move around the power plants. In a nutshell, the player manipulates sequential commands to order the character around in an attempt to reach the given goal of the level.
Step 2: Select Your team
We had a concept and a gameplay. All we needed was love, time, and money. We had to make this concept into a game. Joined by Jef Stuyck, Silouane Jeanneteau, and Christophe Clementi, our team 1.1 was now made up of a project manager, a game designer and three programmers. The programmers would tell you that they are all you need to create a game, but they are wrong. We needed a complete world. More than anything, we needed a hero. Then, we needed artists.
In game development, that is the moment when everything turns into chaos. Not because artists join the development, but because now you have a complete functional team with motivated people full of ideas. In that moment, nobody is a programmer, an artist, or a game designer, but everyone is the guy with an idea. And because it’s a game about coding, guess who think he knows best? Well, it’s like bombarding atoms with neutrons. It’s up to the project manager to make good use of this energy.
Step 3: Create a World
Even if you want to, you definitely can’t sell a game about coding starring a unicorn in a cotton candy world. Obviously, the robot was the perfect hero for our game. Inspired by Wall-E, Antoine Petit, our 2D artist, mixed futuristic shapes and retro styling into a robot with a real personality. Since there was no reason for Algo-Bot to be a 2D game, Cédric Stourme started to 3D model the robot and its world.
Speaking about the world, we imagined it as a huge power plant with a level of toxicity so high that humans can’t enter without dying instantly. The first mockups of this power plant were way too bright. You really don’t need that much light in a place where humans can’t stay. We had to stay realistic. Oh yeah, I hear you from here: “Realistic? With a robot in a futuristic toxic power plant, huh?” But yes, we had to stay as realistic as we could be within that setting. We now have a version of the power plant close to our idea: darker and more appropriate to the gameplay.
Step 4: Make a Game
“Make a game” sounds simple enough. Everyone can make a game, but we wanted to make a good game, and making a good game requires a lot of self-investment.
First of all, a game needs time and includes hours of research and development. Focusing on this uncommon gameplay and writing this clean code that would bring the game to life became our daily routine. The deadline was approaching, and Algo-Bot seemed like nothing more than a seed, no matter how much time and love we gave it.
In most developments, being too self-invested in your project happens to be a huge thorn in the team’s foot. There is that moment you are truly living for your game, rejecting other ideas because you think that you are the only person who knows where this project is going. When you waste hours modifying the concept, trying to do the work of others… let me tell you this: you’ve never been so blind! So have a Kit-Kat and stop trying to be the man of the situation. Game development is a sports team for geeks. That’s the lesson we learned from this development. If Algo-Bot was made to teach others programming, it taught us how to communicate within our team.
And then we experienced the moment when you believe the game you dreamt of will never be developed for the simple reason that the client is out of money. Sure, the client can perfectly use this version. It’s playable, the learning process is quite effective, and the graphics are not so bad. But for you, it would never be more than an alpha version of your dream. So, like any good parent, you open your wallet until you run out of money yourself and then you cry… AND you launch it on Kickstarter.
Now you know the topic of my future article: How our Kickstarter failed :D Because obviously we won't meet our goal. One says that failure is the best lesson to learn :)
Article Update Log
27 Jan 2014: Initial release