I spent the past weekend studying a lot and coding. After I got my homework for Week 1 of the Interactive Programming class done (ironically, that first project isn’t interactive at all!), I was looking around for more stuff to do, and ran across Code Combat.Â
As you can see from the link title, it bills itself as an educational game that can teach you how to code. It plays in your browser, so you don’t need to download anything. You don’t even need to sign up to start. I played through the first world, which contains 17 stages if you haven’t signed up for a paid account.
The majority of players, and its target audience, are minors, kids from 9 on up until senior year of high school. I’m...not that target audience. I’m an adult, taking MOOC courses affiliated with colleges. So what I have to say about the game should be taken with that in mind.
Let’s go over what I like and what I don’t:
The graphics, writing, and design are well done and professional. The art is stylized/cartoony, the objectives of each stage are written in simple, easy-to-understand language, and each stage gradually builds upon the next in a reasonable way.
You get your pick of two player characters, male or female, and can unlock more with certain achievements. The two to start with differ only in appearance, so you aren’t penalized for picking one over the other (games that make female chars weaker suck).
Even though it’s aimed at minors, it’s still appealing enough for adults. A parent or teacher could sit down with a student to help them, and find themselves engaged. Adult players don’t feel like they’re stuck playing a kid’s game
It’s pretty fun as a puzzle game, and you can up the challenge by trying to compete on the leaderboardsÂ
The game walks you through each step of your code and warns you when something is about to go wrong so you can correct it
It teaches coding principles in a way that isn’t the same-old dull LOGO turtle stuff you see in ancient math textbooks. Granted, the earliest stages do involve simply walking through a maze, but the stylistic trimmings (explore the dungeon! Grab treasure!) are a little more exciting than older, turtle-based efforts at getting children interested in computer science. Older edutainment in this area was plodding and unappealing to children who lacked interest in turtles, flow charts, or mathematical logic (aka most of them).
Although you have your choice of programming language, and the code is based on the language you choose, it’s not really the same thing as the actual language. For example, if you want to write a loop, instead of using for/while, you use the command “loop”. Maybe this is just to start with and more advanced stages use the proper commands, but you certainly can’t type “loop” into a Python IDE and expect anything to happen.
You can play as a male or female character to start with, but both characters are white. You can unlock other characters later, but there’s only one character with dark skin (Arryn Stonewall). A few are ambigiously raced, and two are based on Asian fantasy tropes/stereotypes (Amara Arrowhead & Hattori Hanzo).
The early stages are very easy and kind of slow. The target audience might find them more challenging, though.
The game nags you a lot to pay up. If you’re a child, you might not realize how to get out of those nag screens and get frustrated, or wind up getting your parents to pay when it’s not actually necessary.
Some of the stages have code that’s “locked”, and it’s frustrating to figure out how to work around that to complete the level.
Outside of the pros and cons, let me also add that the game is set in the standard Ye Olde Medieval Fantasy world. I’m personally kind of bored with D&D/Tolkien-inspired settings, but I also understand that the tropey nature of a familiar setting gives the developers a firm foundation upon which they can introduce unfamiliar concepts to players. And the game isn’t about the setting or characters, so even if I wish they had gone with something else, I understand why they did it and that it doesn’t matter very much anyway.
Would I recommend this as a game? Yeah, it’s pretty good. It’s a fun puzzle/strategy game in its own right.
But is it a good way to learn how to code? Eh...it teaches basic principles and how to think ahead. However, what you’re doing in the initial stages isn’t that close to “real” programming, in that you’re using special commands and solving problems that only apply to the game world.Â
So I would say, this is more to help you practice the sort of thinking you need when you sit down to code. It’s not directly teaching you Python -- even if the language and syntax are based on Python, it’s not the same as coding in an IDE or taking a class on Python at all. It would probably be most useful leading up to learning how to code in a more traditional way, or as a breather from “real” coding classes, to reinforce that way of thinking about problems.