February 23, 2012 7:00 AM | John Polson
A new teaching tool for programming has taken it right down to the wire, fulfilling its Kickstarter pledge total just days before it was set to expire.
The team's Kickstarter total was stuck around the $60,000 mark yesterday -- however, it received a significant boost of $50,000 over the last 24 hours, and has now reached its goal. Gamasutra spoke with Alex Peake, CEO at Primer Labs, about what he hopes to accomplish with the scheme.
You say that Code Hero features a series of different games that encourage players to code. How exactly does it work?
Code Hero is a game that teaches you how to make games from inside the games themselves. It is a first-person shooter that teaches you how to shoot code with a code gun. You point at objects that contain code and copy their code into the gun to load it.
Then you can select between code you've found and fire it at targets to execute the code. For example, "y+=2" will move an object up 2. meters and "player.transform.position = hitObject.transform.position" will teleport you to the target. These are real Unity API calls, not a dumbed down "coding for kids" that you must outgrow to become a pro.
You have to figure out how to combine the for loop modulus algorithm with GameObject finding and manipulation, which tests your understanding of the Unity scene graph itself. Defeating FizzBoss helps you prove to yourself and the world that you have earned the right to call yourself an aspiring code hero, and at that point the rest of the game worlds open up through a place called the Humantheon.
The Humantheon is like a Galactic Senate chamber featuring the world's most innovative code heroes as AI constructs and mentor NPCs. You meet them and learn about their impact on computing and gaming. We have you meet Al Alcorn the founder of the game industry tell you how he didn't code Pong, he wire wrapped it! You learn how to write a pong game and can add crazy mechanics to it and turn it into your own project. When I showed David, Nick and Joachim of Unity the part where you meet Joachim the Uniter to start learning downloading and learning Unity at Unite, I actually made Joachim burst into laughter. It was a big day for our project, and we've spent every waking moment since then producing a beta fit for Kickstarting.
One of the most exciting heroes in the game is a personal inspiration to our team: Jens "Jeb" Bergensten [of Minecraft creator Mojang]. Mojang invited us to exhibit at Minecon in their indie showcase and meeting them was a turning point for us. Markus "Notch" Persson [Original Minecraft creator] and Jeb gave us the courage to just "make available" our game in its roughest earliest form by trusting our fans to support the development. Early sales of those alphas sustained me on Ramen till now to the point where we're Kicksarting to be able to pay our whole development team to take it on full time.
We have an interview with Jeb turned into an interactive Jeb character in which he tells the player about how he became the developer of Minecraft, tips for someone wanting to get into the industry and a dream project he'd like to see the player attempt to create.
Each of the different game worlds in Code Hero have you not just playing by but also learning how to build fundamental game mechanics. For example, we have a world much like Minecraft in which you learn how to build block harvesting and placement, inventory and crafting, all using an open-source Unity package you can download to continue playing with inside Unity3D. You own what you make based on that, so if you have an idea for a Minecraft-like game, this scenario doesn't just show you how you could do it, it gives you a starter kit with an engine that you could publish and sell to all platforms.
The ultimate test of Code Hero is Ship Boss, the captain of the Real Artists Ship who demands that the player literally ship a game to "beat" Code Hero. That will entail gamification of the development process itself, with players participating in an in-game Gamejam-like experience that helps motivate them to keep at it by showing measurable proof of progress like builds and screenshots with friends.
Which programming languages does the game teach?
Then it will get really intense: We've got a prototype that puts Code Hero players into direct control of VMWARE-based Linux operating systems, so we can incorporate complete full-stack operating system coding of all types down to modding and compiling kernals in-game. You can imagine the implications if we were crazy enough to demo something like that at the most recent Chaos Communications Congress with kids running tools like Backtrack and Metasploit... Hacking the full stack in-game will be necessary to produce Real Engineers with the kind of computer science it takes to do more than just get by on a surface knowledge of a single API or language.
Why will Code Hero be successful where other initiatives have failed?
I've never been satisfied by any of the methods of teaching code, games or otherwise. Coding games tended to be "program the robot to do boring things by writing difficult code" or "put some legos together and it is sort of preparing you for actual programming". Tools like Little Big Planet are some of the user-generated content tools that I think at least get the "empower people with powerful game design tools" approach right brilliantly.
Code Hero is very different. We give the player complete access to the very game engine they're in, Unity3D, and turn Unity3D's whole API reference into a series of interactive game levels that function as tutorials filled with challenges that let you have fun even if you suck and prove your mastery if you put in the effort. Every API level starts with copy-pasteable example code that "just works" for some of the challenges and progresses to harder ones where you must understand the code to tweak it.
Levels end with dauntingly difficult unmarked challenges and secrets to be found that require you to totally grok everything the level teaches in order to apply the programming tools you've learned to fully master the level. This is an epic version of the "complete the level with one two or three stars" approach of games like Angry Birds.
[This article originally appeared on Gamasutra, written by Mike Rose.]