Comparison of the top 10 best computer science edutainment games
This table shows a comparative summary of all the reviews, based on our opinion. While entertainment is an important point, the most important point determining the total rating is the educational aspect.
Name | Features | Difficulty | Language | Fun | Total rating |
---|---|---|---|---|---|
Codingame | Learning, Singleplayer, Multiplayer | Beginners / Advanced / Experts | Various popular languages | ||
Codegym | Courses, Tasks, Games | Beginners / Advanced / Experts | Java | ||
Elevator Saga | Single game | Advanced / Experts | JavaScript | ||
Untrusted | Single game | Advanced / Experts | JavaScript | ||
CodeCombat | Several challenges, Made for schools | Beginners | JavaScript, Python, HTML | ||
CodeMonkey | Several challenges, Made for schools | Beginners | Python | ||
VIM Adventures | Single game | Beginners / Advanced | - | ||
Flexboxfroggy & Flexboxdefense | Single game | Beginners / Advanced | CSS | ||
Baba Is You | Single game | Beginners / Advanced / Experts | - | ||
Lightbot | Single game | Beginners | - |
1. Codingame.com - An overview
Codeingame is by far our favourite, because of the variety of different features. It's suited for all kinds of experience levels. For inexperienced coders, there is lots of learning material. For advanced and expert coders, the multiplayer games should be the more interesting choice. The single player games are better suited for inexperienced as well as advanced coders.
Bonus: Codeingame contains a job platform for employers looking for good coders and vice versa. This shows that the challenges are to be taken seriously, as companies choose their candidates based on solutions for those.
Codingame.com (single-player)
There are many single-player games categorized in easy, medium, hard and very hard available. Let's have a look at "The descent"!
In "The descent" you will playfully learn about loops in a popular coding language of your choice. The difficulty is marked as easy. There is a discussion and a solution page, in case you're starting from scratch with your coding skills or want to exchange ideas.
The Enterprise ship is in danger: drawn towards the surface of an unknown planet, it is at risk of crashing against towering mountains. Help Kirk and Spock destroy the mountains... Save the Enterprise!
- Story excerpt from The descent.
The community success rate is currently only at 54%. Do you take the challenge?
Spoiler: In the picture below you can see the game overview and my solution to it.
Codingame.com (multiplayer)
There are lots of multiplayer games categorized as bot programming, code golf and optimization.
A great game to start is the racing game Coders Strike Back. It all starts with a simple step by step tutorial to start your first race against a bot. After completion, your code is ready for real players in your league! As you advance, you will reach higher leagues with more features like distances and angles available. I love this point a lot, because it's a fair system to ensure equal conditions to the challengers.
Let's have a look at another less visual but yet great gamified multiplayer coding challenge: Clash of Code.
"Clash of Code" got me really hooked. Within a 15 minute time, you're competing against other players from different countries on a given challenge. There are 3 game modes:
- Fastest - Complete the challenge as fast as possible.
- Shortest - Complete the challenge with lowest code size possible.
- Reverse - Guess what you have to do by observing the test sets.
Spoiler: In the picture below you can see how I solved a recent clash.
2. Codegym
Codegym is a gamified online Java programming course. It offers 1200 practical tasks with increasing complexity. A nice plus is the success story section of the site. In stories like this one, you can read up on other people's programming career choices and their lessons learned.
They also offer a couple of games like "Hungry Snake". The game has 20 different tasks that build on each other.
Spoiler: Below you can see the finished solution for the second task of "Hungry Snake", to get a better idea on how it looks.
3. Elevator saga
In Elevator saga, you're coding the core functionality of an elevator in JavaScript. It all starts easy at level 1, but gets harder all the way up to level 18. The API documentation is available here.
In case you really don't get any further, you can check out other solutions like this one, which only uses < 60 lines of JavaScript!
4. Untrusted
Untrusted is a JavaScript game where you have to reach the blue rectangle by modifying the game logic. Code with red background can't be edited. With CTRL+1 the API can be toggled, so that available functions for use are seen.
Spoiler: In the images below a possible solution for level 2 of Untrusted is shown.
5. Code Combat
Codecombat is a very beginner friendly place to learn about coding. The goal is to move a character with the help of programming-commands through various buildings while solving challenges.
Also, it's made for school classes. A teacher can setup an account and can track the individual process of the students.
Below picture shows the different buildings and their topics.
6. Codemonkey
At Codemonkey, it all starts with pseudocode of functions, logic, events and conditions. Here, your goal is to get the monkey to his banana. Tips are shown along the way so that it's really easy to understand and solve the challenges.
Later on, challenges need to be solved with real coding languages like Python.
The "Trivia Chatbot" challenge is a good example for that. You can see it's challenge structure in the image below.
7. VIM adventures
VIM adventures teaches the usage of the popular text editor VIM. The rules you are learning in the game can be directly applied when using the real VIM editor. As I always used nano for editing, the game really teached me how to navigate with VIM in a fun way. In case you're looking to learn using VIM, this game might be a good start!
8. Flexboxfroggy & Flexboxdefense
Flexboxfroggy is a game that visually improves your CSS-Skills. This game is suited for beginners as well as advanced programmers. As beginner, you can hover over the propery to learn more about it. If you're more knowledgeable, try remembering the property features on your own. The goal is to move froggy and his friends to the lily pads in a total of 24 levels!
Flexboxdefense's teaching method is similar to Flexboxfroggy. The goal here is to move the towers into a good spot, so that the coming waves can be defeated. There's a total of 12 waves and just like with Flexboxfroggy, it's made for beginners and advanced programmers.
9. Baba Is You
Baba Is You is a pure logic game. The rule parts are on the map and to be moved around by you. Sometimes, various solutions are possible. Baba Is You is available on Steam and the Nintendo switch. Are you able to get the flag?
As the trailer of the game is really well-made and explains the whole concept better than just describing it, check it out below!
10. Lightbot
Lightbot is a mobile game available for Android and iOS. The game teaches you sequencing, overloading, procedures, recursive loops and conditionals in a nice way.
The goal is to switch all the blue squares to yellow. A single square can be switched with the lightbulb symbol. Now figure out to do it for all!
Spoiler: Below you can see a solved level about loops.
Edutainment is the better way to learn
In conclusion, there are great edutainment games for all kinds of experience levels out there. If my old computer science teacher in school only knew about Code Combat for example, more people likely would have engaged with the course material. If more coders knew that they could get a real job through solving challenges on Codingame, surely the platform's usage would increase even more.
And in my opinion, this is by far not the end yet. VR technology is just on the starting point to reach mainstream adoption. The use of edutainment software in VR could be even better, as the gamification part can be created even more visually. Imagine being in a Minecraft-like world, in which you can code your own script that performs routine work - like cutting wood. Wouldn't kids want to learn how to code, purely because of their own lazyness?
Furthermore, if they start to figure those kind of things out on their own, they will soon have the confidence to build things in the real world. I'm convinced by that.
Social Links
If you want to stay updated about malware, be sure to follow these accounts:
RansomBleed - Personal Twitter account from Ransombleed.
G DATA CyberDefense – G DATA CyberDefense Twitter account.