15 Years ago a game called Colobot was released for Windows and it was so cool that I instantly bought it after playing the demo. The game is to this day the most amazing edutainment software I have seen that is useful to both kids and adults who want to learn programming (or just play a cool game). It was made by a small company from Switzerland called Epsitec, I don’t think the game gained as much attention as it should have, but there are many dedicated fans and it has been open sourced a few years ago and a team of developers from Poland has worked on it since then and it is now available for free and runs on Windows, Linux and macOS with a bunch of new, modern graphic effects and a lot of added features compared to the original game release. They call this open source version the “Gold Edition”.
The basic premise of the game is this: You are an astronaut (with a jetpack!) who visits different planets and solves problems by programming robots (with a very C/Java like language, this is not some kids toy, it’s real programming you learn in the game). On your travels you will have to fight alien bugs in 3rd or 1st person mode, either directly by remote controlling robots, or indirectly by writing programs to make them patrol and attack aliens automatically. While fighting off the aliens, you build up your colony on the planet you are visiting with your rocket ship. You build research buildings to research new technology, you build robot factories, power plants and more and you can automate everything with robots and programming or do it yourself.
One task you might want to automate with programming is robots searching for titanium ore, transporting it to the ore converter where it’s turned into titanium blocks that can be used to build buildings or more robots. And don’t forget to program your robot to recharge his battery when it runs low! And then you can think about automating energy gathering as well. Send out robots to find uranium ore, bring it to a power plant, let robots fetch empty batteries and recharge them so that you have an automatic supply of charged batteries. Have a fleet of flying robots that wait for a distress signal from your other robots to sweep in and rescue them from alien bug attacks. Your imagination is the limit here, there are so many things you can do.
The game offers a lot of different play modes. I would recommend new players to start with the main campaign of the game. It has a story and teaches you the game and programming along the way. Later on you can go through the specific programming exercise or battle game modes, to test the skills you gained through playing the main campaign. There is also a free play mode where you can just do whatever you want. The features in the free play mode are limited to those you unlocked by playing the main campaign though, so make sure to play through that first or your abilities in free play mode will be quite limited.
Your astronaut has a handy little computer on his wrist that you can look at by pressing the F1 key. It shows you your current objectives, and also has an in-depth Wikipedia like manual explaining everything about the game and the programming language you can use to control robots. You don’t need to have a manual or text editor open on another screen, everything you need is in the game itself.
The controls are very easy. Just keep the F1 key in mind to look up things you don’t know, use WASD to move your character, and when you get the jetpack or a flying robot, you can fly up with the Shift key and down with Ctrl. You can grab things by pressing E. Moving the mouse to the sides of the screen rotates the camera. I think that’s all you need to know, but it’s explained in the game as well.
One point I want to stress again is that this is real programming you are learning in the game. There are some other games that teach you programming, often with dragging and dropping blocks, little pieces of code, and that’s cool for really young kids, but for older kids and adults it’s too dumbed down in my opinion. It teaches you the concepts of programming, but It’s too far removed from actual programming which is still completely text based.
Colobot is different and that’s a good thing. And that’s also why it’s not just appealing to kids, but also adults. It doesn’t assume the player is stupid. It assumes the player has the ability to learn. And I believe that assumption is right. I believe people are much more intelligent than even they themselves think. They just need the opportunity to show it and maybe find it out for themselves, and Colobot is an amazing opportunity like that. It makes learning fun and easy but it does require you to learn and what you learn is actually useful and you get instant gratification in the game, but since it’s real programming, you can even apply what you learned in the real world and start writing your own games or apps.
Download
You can download the game or find out more about it here. If you are using Ubuntu Linux 16.04 you can install the game right from the Ubuntu repository. It doesn’t need a fast computer and runs on all of the three major desktop operating systems, so everyone should be able to play it. Have fun!
The website of the original, commercial release of Colobot is also still up here.
I'm totally adding this to my #pir8FOSS spotlight! I'm suddenly wondering where my youth went so wrong that this was not in it. TY @crypticwyrm.
I don't think the game was that popular internationally when it came out, didn't have a big American company behind it, but there was a version called Ceebot especially meant to be used in schools, that must have been popular because they released quite a few versions of that. I just saw Colobot in a store one day and for me it was an insta-buy it because I already loved programming as a kid. I hope now that it's open source it will find a new and bigger audience :)
I hear ya there. I would have bought it too. lol. I've found there's a kind of revelation about who loves a game when it gets open sourced. I'll be checking it out, definitely! Thanks again. This kind of post ranks right up there with finding an unopened record in a thrift store. SCORE!
Great work!!!
This seems like a good game in general. Well you deserve an upvote for this.
If you already know a little bit of programming, from creating websites for example, then yeah it's a pretty good game on it's own, it's basically Starship Troopers the game, but with robots :) The graphics aren't that good of course since it's old but to me that doesn't matter that much when the gameplay is great. Maybe you can even get away without any programming at all. Some things would be a bit tedious but I think you can do it. When you remote control a fighter robot, the game is basically a first person shooter with real-time strategy elements.
You can also combine the programming with manual control. For example, you could fly a ship manually but have a program ready that automatically targets and fires at aliens. Or have one that returns a ship back to the base to recharge the battery so you can remote control another robot and don't have to do that tedious bit of backtracking to the base yourself and just stay always where the action is :)
Unfortunately, I never played this game. But it seems a good game though.
This sounds just so super awesome. The programmer's dream - automate any and all tedious tasks! And it's got space stuff as a bonus.
I'd like to suggest this game to friends or family, but I don't know how to "sell" it to them. I mean, if I mention that they can learn programming while playing it, I don't think that's gonna motivate them or pique their interest. Quite the opposite. Deliberate learning is not why they play games. In my view, if there is no mention of programming and the game is presented as a fun cool thing with robots and space stuff, and the programming just sneaks in at some point, they will be much more interested. They can start learning without knowing that they are learning. Because, unfortunately, most people have already learned (from years of schooling) that learning is boring and tedious and hard, and definitely not the way to relax and have fun.
So do you know of anything (a video or other) that presents this game like a fun thing without any mention of programming? And do you think it could be effectively advertised in such a way?
Good question! :) I sadly don't know any videos like that. As for selling the game like that to people, without mentioning the programming, maybe. It was sold like any other game in a DVD box in stores after all, in the games section not in the software/education section. It's been a decade or so since I played through the main story campaign, so I don't remember it all to well. I have to play it again some time, it was really fun and you do something new all the time to keep you interested. In one level you have to fly through hoops with a remote controlled robot for example, in another you have to wade through swamps and try to not get caught by the alien bugs. I think the story campaign started really slowly with the programming and no programming in the first few levels at all, so it could work. Worth a try.
There are some other games with programming elements too but I don't remember their names right now. I should do some research when I find the time and write an article about those to give an overview, maybe one of those would be better suited as a start before moving on to Colobot.
I heard many positive things abut this game but i never give it a shot. And i don't know why. Maybe i'm afraid that this will be only lose of my time because i already know programming.
I wouldn't worry about that, just play the first few levels and see if it's something you'd enjoy. It's free, so there is really no reason not to try it. At most you waste half an hour, by that time you should know if it's something you want to continue playing or not.
I did already know programming when I tried the game since I started programming many years before the game came out when I was a little kid, but I still got something out of the game. See it as a 3D code golf game to improve your skills. In the missions for example, outside of the main story campaign of the game, it's basically just that, it gives you programming problems and you try to come up with the most beautiful solution to the problem. That will improve your skills even if you're a veteran programmer, we programmers never stop learning after all.
You can also really think outside of the box in this game. For example, you have winged robots that can shoot, basically fighter jets. You can program them to find and attack aliens. Some people however came up with the idea to just make them hover in the air, never moving from the spot they are flying above, just endlessly spinning around and looking for enemies and firing on them when they approach. So they turned these airplanes into turrets that can defend your base :)