Format: PC/Mac
Est. Retail Price: $31.37
Beta Release: Dec 1, 2011
Target Age Group: 6+
Developer: Primer Labs
Genre: FPS, action-adventure, text-based
What kids will learn: Ideally, they learn the seeds of programming in JavaScript and UnityScript, but the beta build of Code Hero is currently a lesson in good intentions gone bad. Gameplay is uninspired, bug-filled, and not nearly as conducive to learning programming basics as a good book or free online tutorial. Code Hero has a long way to go before it can stand alone as an educational tool.
Experiences of a Playthrough
"Code Hero can teach a total beginner how to code from zero to hero. No experience is required. Prepare to amaze yourself."
Code Hero is a project that simply oozes with ambition. Learn how to write code and make your own games by playing a game! It's a promise that's generating a lot of buzz in both the business and gaming worlds, so when the beta release became publicly available, I jumped at the chance to try it out. But like so many things that sound too good to be true... well, you know how that one goes.
![]() |
There can never be too much neon yellow in cyberspace! |
Wandering around this lobby, it quickly became apparent just how much remains to be completed before Code Hero gets a final release. There are several doorways for players to chose from, some with more descriptive labels than others. Tucked away in some not immediately noticeable spots are doorways with labels like "Nexus" and "Platform." Entering these reveals several incomplete areas. Some contained curious easter eggs, like the room hiding Charles Babbage and his Analytic Engine. But mostly these rooms are just incompletely formed. In one area that I could not otherwise escape, I was able to walk through a wall and fall out of the game world entirely. In another, touching a glowing portal triggered a game-crashing bug. Whether these rooms are expected to someday contain wholly independent game features, or if they are just storage lockers of sorts for elements that haven't been incorporated into the game proper was unclear. Still other inaccessible doorways appear to be place-holders for tutorials that the game intends to support, like HTML5 and regular expressions. The only "complete" areas are those accessible via the three most prominently placed doorways, two of which lead to tutorials for the game's two main scripting languages UnityScript and JavaScript. The third doorway, labeled "FizzBoss," was marked with an ominous oversized Space Invader and a warning indicating that players should not enter until they know Javascript. Yet, even within these rooms, much is still under construction. In the rooms for UnityScript and JavaScript, only a small part of the tutorials were complete (1 of 5 for JavaScript and 2 of 9 for UnityScript).
![]() |
Expect to spend a lot of time plodding through lessons on this unintuitive console as you learn JavaScript basics. |
Fortunately, I'm somewhat familiar with JavaScript already, so I was pretty easily able to complete the entirety of the lesson. I was now "a hacker on the road to code mastery," the game told me. Once again, however, it conveniently forgot to give me directions to the next town on the way. Despite the achievement, of successfully completing the last JavaScript challenge, no new levels or doorways opened and no signs appeared telling me where to go and what to do. It was as if I hadn't bothered with the tutorial at all. The lesson simply ended. With no real feeling of progress made and with no better options presented, I grumpily trudged back to the main lobby and wondered again what I ought to do. Bored and unimpressed with the drab JavaScript tutorial experience, I headed to the FizzBoss room. "JavaScript knowledge required beyond this point," warned the sign outside. "I know this!" I thought. "Heck, those lessons were easy. I should be totally prepared!" Unfortunately, Code Hero once again disappointingly defied my expectations.
![]() |
Beware, children! Jilted at the altar, Policewoman Ada now
lurks inside your computer, waiting to swallow your soul.
|
Completely unable to stop the Fizz Bots in the FizzBoss challenge, I eventually decided that some backtracking was in order, so I returned to the lobby and sought out the UnityScript tutorials. In the UnityScript tutorials, the player at last gets away from the text-heavy console that dominated the JavaScript tutorials and begin learning to manipulate objects in the environment. You copy code into your code-gun that makes platforms and other objects move: up, down, and along the z-axis. You learn how to create shapes and how to destroy them. You learn how to get to out-of-the-way places to collect shiny gold stars (although there was no apparent reward for doing so). In all, it at last started looking like some kind of a game: overcome obstacles and get rewards.
But just as with the JavaScript tutorials, the UnityScript tutorials ultimately provided little sense of purpose or progression. Sure, it was briefly entertaining to create objects and make my own macaroni-art against the game walls, but I still didn't feel like I was playing much of a game. Why was I practicing building stairs when there were no secret areas that to explore that seemed only accessible by stairway? What good does it do to know the position of an object in the game world if I don't need to build anything? In short, the tutorials seemed to assume that you should learn these things for the sake of learning, which may be a fair assumption in an educational game. However, if players are already that motivated to learn programming, why play Code Hero at all? Why not just download Unity and start building their own game world right away? Better tutorials exists online than the tutorials presented within the game, and they're free. Why pay developers to put a cumbersome interface on well-documented scripting languages if their only target audience is motivated learners? Cruel thought it may sound, the more I wandered through the world of Code Hero, the more I felt like Code Hero had utterly failed to justify its existence.
![]() |
Look! Up in the sky! It's a bird. It's a plane. It's Fizz Bots!! |
A Fundamentally Flawed Approach?
While the developers at Primer Labs are obviously saavy programmers, my impression from playing Code Hero is that they are not nearly so saavy when it comes to understanding game design fundamentals. Ultimately, I felt that Code Hero, as a game, simply wasn't fun. What I consider to be three of the key pillars of good game design--reward, progression, and challenge--are all three largely absent from Code Hero.
My first disappointment is that there simply are no rewards in Code Hero. Sure, the satisfaction of printing "Hello World!" on the screen is something of a reward, but that's a reward that's inherent to coding (about which I will say more below). Within the game itself, there are no achievements to earn, no points accumulated, no in-game currency to collect, there are no exciting new levels to be reached, no stories to complete, no princesses to save, and so on. With the exception of some gold stars which players can pick up, but which have no apparent value and are not visibly tracked, players don't feel any motivation to proceed. The tutorials are about as motivating as taking a quiz in school--players do it because it's expected of them, not because they are rewarded for completing it.
Code Hero is also lacking in sense of progression in two key ways. The first, which I've already mentioned above, is that ongoing feedback on progress through rewards and other visual tokens of success within a stage, quest, or level. This kind of progression is useful for motivating players to continue playing the game and even to repeat playing a game or level to improve their performance. Without this, players feel little incentive to complete in-game tasks if they aren't rewarded or don't seem necessary to completing the game's objectives. But the second sense of progression, which is arguably even more crucial for an educational game than the first, is that sense of mastering a skill and moving on to the next level or challenge. On a neurological level, these kinds successes are the most crucial for cueing our brains to reinforce the new pathways its just created. And yet Code Hero give players little opportunities to experience the positive feedback of "leveling up,"nor does it give players satisfying indications of in-game achievement. For example, even when players manage to figure out the code needed to destroy all the Fizz Bots in the final challenge, one click of the mouse execute the code and the Fizz Bots instantly disappear. While this is accurate in the sense that the code that removes these 100 Fizz Bots is executed so rapidly that to us it appears that the Bots were all removed instantaneously, from the perspective of a player of an educational game, this makes the player's success virtually invisible! Instead of executing successful code in real-time, why not have an animation that slows the code down and highlights which enemies are destroy by each particular part of the code? Give players that important visual cue and that little jolt of dopamine that tells them, "excellent work! Now you're ready to move on to something harder!" But with that cry for more challenges comes a caveat...
Don't think like a programmer in developing the early challenges! This may sound like a specious complaint, but I think it actually speaks to a critical weakness of Code Hero. The key to making a game like this a success is in balancing the challenge level throughout. Challenges, if they are to be rewarding, have to be neither too easy, nor too difficult. But what is challenging in the mind of someone who is already quite competent at programming one who has no experience with it are fairly different things, and Code Hero, in my opinion, misjudges where the level of difficulty should be. The tutorials on JavaScript and UnityScript were fairly straightforward, to the point of being too simplistic. Instructions were not always as clear as they needed to be, and there's virtually no feedback to help players diagnose problems with their code, but for the most part, the concepts were not especially tricky. This stands in stark contrast with the FizzBoss challenge. While the basic concepts in this challenge were mostly covered by the tutorials, there are little adaptations to the syntax that players must make, which would be largely impossible for a novice programmer to deduce or intuit. For example, players learn about writing loops of code in the JavaScript tutorial, so they'll likely guess that a "for loop" will help them in eliminating multiple enemies. They'll most likely write something like the following:
for (i=1; i<=100; i++) {
GameObject.Destroy (GameObject.Find(i));
}
This most closely resembles what they've learned from both the JavaScript and UnityScript tutorials. But it won't work when they run the program. They'll shoot their code-gun and nothing will happen. They'll check the console and see the following error:
How many novice programmers could look at this and know what's wrong with their code? How would they figure out that they cannot try to
Find(i)
because i
in this context is an integer, and Find()
needs to look for a string? Would they know that they way to convert the integer i
into a string i
is to write i+""
? This is what the correct version of that code should look like:for (i=1; i<=100; i++) {
GameObject.Destroy (GameObject.Find(i+""));
}
For non-programmers, I realize all this code may seem like a confusing digression, but my point is merely this: I believe Code Hero fails to appreciate one of the majors reasons coding is so difficult for complete beginners: the syntax is very particular and often confusing. And Code Hero, for all it's heart and determination to make coding fun, can't do much to help inexperienced players get past this hurdle to entry. The console gives players only the typically cryptic messages of most debuggers, which does little to help "newbs" troubleshoot their code. Add to this the ridiculous time constraints of the Fizz Boss challenge and the fact that players will be expected to restart repeatedly even if their only error is a misplaced semi-colon, and you're left with a "game" that creates far more obstacles to learning code than it overcomes.
Final Thoughts
In the end, I really wondered what exactly Code Hero was about. When I imagined what an educational game about a code hero, armed with a code gun, would look like, I pictured players gradually learning little bits of code and then using that to manipulate their environment more and more by writing new code and shooting it into the world. Need a door? Write code to create a door! Need a block to climb an obstacle? Code a new block and inject it into the world! In other words, I pictured something like a combination of Portal and Scribblenauts, where each level the game world was surprisingly malleable and the number of potential solutions to puzzles were limited only by the player's imagination and ingenuity. Of course, I realize it is hardly fair to fault Code Hero for not meeting my very specific and very high expectations, but I thought a huge opportunity was missed when the challenge of learning new code was not "rewarded" by the ability to blaze unexpected paths through game levels. Even more disappointing was the fact that Code Hero utterly failed to convince me that I was actually playing any kind of game at all.
Despite being marketed as a beta release, the Code Hero I played was more like a buggy prototype of a game still in the earliest stages of development. Only the introductory levels were available, there was no save or continue feature, many of the JavaScript tutorials seemed broken, and the final battle was mostly unplayable due to glitches in the instructions. All of these flaws combined gave me the strong impression that the "game" I was playing was not really a game at all, but merely a proof-of-concept. It makes sense to make a proof-of-concept demo available while they are in the middle of a fundraising campaign, but why they would tout this as being anywhere near a beta release is beyond me. In my opinion, doing so only hurts their credibility. Do developers really think their product is near complete? If so, I would say that this doesn't bode well for the final quality of the game. Or have the developers instead put too much priority on marketing while the game itself is still woefully underdeveloped? Should they really have a shiny mock-up of the game packaging already worked out, when the game itself is tragically flawed? In today's crowd-source funded indie gaming world, I understand that marketing is more important than ever, but alas, promises and a slickly-designed website do not a good game make. Too much marketing hype and promising more than they can really deliver can easily come back to burn the unwary developer.
![]() |
I'll create GUI interface using Visual Basic. See if I can track an IP address... or maybe I'll create Code Hero instead. |
![]() |
The cyberpunk style and themes would probably make William Gibson and the
Wachowski brothers very happy, but the frustrating play will be a turn off for novice programmers.
|
I have been exploring 'beta' .192 myself. The game is still extremely rough, however there is a unity script area on transformations which was clean and fun. Although not very difficult - it did however do a good job at combining game and code elements, changing position of in game objects and traversing the 3d space with them.
ReplyDeleteI think there is a lot of potential in this game, but it feels like it still has a long way to go.
Thanks for your thoughts, GameCarpenter. I agree with you completely. Lots of potential, but currently unrealized. Hopefully with the success of their Kickstarter campaign, we'll see much more out of Code Hero. I'll definitely be keeping an eye on this one and updating here.
DeleteI read with much interest this review of Code Hero. I am a newbie and experienced all of the frustrations you stated in your review. You mentioned that there are free online tutorials for Javascript and UnityScript. Would you be kind enough to recommend which ones would be the easiest for me to get started. Thanking you in advance.
ReplyDeleteGlad you asked! I hesitated on posting any links in the actual review because I wasn't trying to deliberately steer people away from giving Code Hero a try. And, for the record, I should say that the game's developer Alex Peake is aware of a lot of the frustrations people have experienced with the early version of his game, so hopefully, Code Hero may still develop into a great learning tool!
DeleteAs for your question, Code Academy is a pretty great interactive tool for getting your feet wet with JavaScript. However, if you are unfamiliar with programming in general, you may want to look at this open-license e-book, Eloquent Javascript. A lot of tutorials about programming languages tend to assume that you are comfortable with programming in general, and so they teach the language, but not really the principles behind computer programming. That can be a real hurdle for beginners, and I think CodeHero inadvertently suffers from this problem a bit, too. Eloquent Javascript is, from what I hear, a bit better at getting around this problem, although I think you'll obviously learn quite a bit from doing the exercises at CodeAcademy as well. I also recently came across Code Avengers, which you might find helpful. Personally, I found the first 10 lessons to be incredibly tedious and couldn't force myself to step through the remaining 30 or so units. But I'm also quite familiar with JavaScript. So it is entirely possible that my unhappiness with it means that it's actually well-designed for a beginner audience.
As for tutorials on Unity, there are a few of good sites that have a number of video tutorials available. Most of these sites cover the basics of getting started with Unity, but they really shine with the abundance of more specialized tutorials:
Walker Boys Studio
Unity Cookie
Unity3DStudent
If anyone has other suggestions, please mention them in the comments! I'll pull together a more official list of programming resources if there's enough interest.
Hey, yup! CodeAvengers is designed for beginners, people who have never done any programming (although as you can probably imagine it is quite challenging for the total noob). We have received lots of feedback from beginners saying that our course is the best they have tried for beginners as far as level of difficulty is concerned, as well as actually feeling as though they learnt something.
DeleteThe course does allow you to skip lessons. If you already know JavaScript, the 1st 40 CodeAvengers lessons are probably not much use for you.
I have put up a few more challenging lessons that will be part of the level 2 course. Maybe you could check those out.
If I ever manage to get caught up on the million other things on my plate right now, I will definitely give Code Avengers another look. I can always use more JavaScript practice.
DeleteAnd just to be clear, I hope it didn't sound like I discounting CodeAvengers' usefulness, rather I'm just somewhat wary of my own inability to judge how useful these things are to complete beginners. But I do think the site is a great resource!