CodeCombat is a free game put together by a three-person team to teach web development, specifically JavaScript, skills. They were inspired to do this by the problems in web development they faced when embarking on their previous endeavor, an application for learning Japanese and Chinese characters called Skritter. I'll understand if you don't see much of a connection between a kanji-learning application and a game for learning programming, but my past experiences with Skritter have me rather excited for CodeCombat's prospects.
As you can see above, the game is fantasy themed. It looks a lot like Kingdom Rush, with fun cartoony graphics and a sense of humor that people of all ages can be attracted to. Thematically, it has nothing to do with computers or hacking or anything like that. CodeCombat does exactly what an educational game should do, which is make the material to be learned a skill to be mastered so that the game can continue, rather than pounding the material into every sense it can appeal to. That's how you learn to control jumps in games, isn't it? You don't just drill your jumping skills. The game gives you a place to go, and if you want to get there you have to learn to jump.
Each stage in CodeCombat is a puzzle to be solved. You have a starting setup, with a map shown on the left and code on the right. By hitting play, you can run the code and clearly see what each unit is doing marked with animated lines and check points. You can see where the puzzle is hanging up and it's easy to compare the map to the code and see exactly which line is doing what. Hints and instructions are displayed in code comments, and at the bottom of the code box is your list of "spells" which can be typed into the code to make things happen. Hovering over a "spell" gives you more information on how to use it and each stage adds one new skill to your mental coding toolbox.
The game is currently free and in beta, and is built on a huge foundation of open source libraries and software. The developers have stated that they want the game to stay free, since they want people to learn to code, and that they are considering making the game open source altogether. Their current monetization plan is to eventually branch into recruitment, connecting companies that need web developers with people they've trained up with the game and charging the companies a recruiting fee, though they aren't ruling out charging a subscription in the future. It's built to run in a browser using HTML and JavaScript and is therefore platform agnostic.
I personally have quite a bit of faith in these guys from my own days using Skritter. It may seem like learning to write kanji and learning to write code don't have a lot in common. In a lot of ways they are very different, but they have one thing in common: both require a lot of time spent just doing it over and over again. Most brains get tired of that quickly, and these guys have made it their thing to enable people to practice repetitive tasks in a way that is painless, engaging, and provides useful feedback.
If you're at all interested in learning to code, I really recommend you check out CodeCombat. If you already know how to code, they are looking for people to help create new levels.