Helicopter? This is the problem with the App store - too many clones of old flash games that have been around for ages. I'm sorry but cloning a game that already exists certainly shows good timing and business sense but is not the same as a call to arms to make things.
Because one game they released was a flash game clone, does not mean the other 40 games their interns release will also be the same. Hell, even if they came out with 40 clones that are non-existent on the iPhone, I would still consider it worthwhile.
I look at it as a call to get started with game/app development than to start producing state-of-the-art games.
1. cloning an existing product is probably a very good way to learn about the platform and learn about game programming, and that learning process seems to be the post's main drive.
2. your subjective response to the game's originality is irrelevant to the "call to arms," all that is required for the call is a set of facts, which may provide inspiration for other young programmers: A young programmer completed a game; Creating the game taught him a set of very valuable skills; The game was deemed publishable by Apple on their store; The game generated social and monetary profit.
He wrote the Helicopter game when he was 16 years old and went through YC when he was 19 and you're criticizing him for making a clone of some other game? That's a hell of an achievement for anyone, let alone a teenager. And let's not forget that the best known game in the App Store, Angry Birds, is just an artillery game, which date back to the 70's. http://en.wikipedia.org/wiki/Artillery_game
Huh... you are deeply wrong about Angry birds. You forget that they included physics in the game and that makes it a lot more elaborate that any of the artillery games or scorched tanks ever made before. It's not just about the angle and power, this time.
The physics, while not dating back as far, were also present in flash games pre-Angry Birds, the most popular being Crush the Castle. Angry birds brought a slightly simpler aiming mechanism and (probably most importantly) a much more polished feel to the genre.
I hate that hn encourages this type of obnoxious headline. Just tragic. I feel this sort of pitiful neglect is what republicans think when they say "let the market find a solution".
You know what would be awesome? Someone who gives a f about the quality of this website. I'm looking at you, PG.
Great article! I too wrote an iPhone game[1] while in high school (2 years ago during sophomore year) and while I didn't make $35k, the game did get downloaded close to 600,000 times while it was free. It was an extremely valuable experience that I learned a lot from.
It always amazed me how easy the App Store made it to access such a vast market and that a game I built in my free time was being downloaded by people in countries as far away as Kazakhstan.
You mean a website recommended by someone who suggests that every kid should buy $1000s worth of Apple-equipment, then pay Apple $100 for the right to program that equipment and have it entered into Apple's locked ecosystem, isn't fully free and open?
I'm hardly surprised. People these days really don't see to value freedom and openness the way they used to. It's especially disappointing to see the same trend in hacker-circles.
Love the idea. I'm not a game designer and I would only put myself in the hobbyist-gamer category, but I'm always so impressed by well-designed games.
I've played a ton of different games (board games, Magic, card games, RPGs, shooters, city-building, etc) and have even tried to create simple games in the past. What I found the most challenging and exciting was how to get all the different aspects of a game to come together. Top games today are probably made by specialists (I'm guessing) with someone who focuses on story or design or power balance or gameplay, etc. When I was a kid trying to put together all these things myself, I found it to be a really exciting and fun way to use my brain.
I guess I disagree that the reason kids (and kids at heart) should try building a game is to "build a product, make money and make people all around the world just a little bit happier." I think the reason they should build a game is to practice doing different types of critical thinking. But maybe it's hard to convince a kid to build a game with that kind of reason. :)
It's so awesome that this is viable again. I started out by writing video games when I was 16, too. Back then I used BASIC & assembly language.
I didn't get $35K or groupies, though. I got about $200 a game from a disk-of-the-month club service for them, which was "real money" to a 16 year old farm boy in the 80s...
I have to disagree here. If Obj-C was my introduction to CS/coding as a teenager, I'd turn around, and run away as far as possible (like I did when I was introduced to C as a teenager). Now, Ruby (or Python, JS, etc.)...that's another story altogether...
The tutorials do assume you know basic coding already, and the tutorials do quite a bit of hand holding to ratchet up the exposure to Objective-C, so it really shouldn't be scary.
As someone who thought Objective-C was a terrible language with weird syntax at first, I'd have to say that 1) Verbosity shouldn't be mixed up with complexity, 2) You get used to the different syntax in a couple of days, and 3) Objective-C code is really readable once you get used to the syntax, in the sense that you never have to guess at a method's parameters.
It's not required, per se, but it is idiomatic. You will never see an unnamed parameter in the standard library, or in most other people's code. In a sense, the parameter name is actually part of the method name
Wikipedia has this example of Objective-C, which illustrates what it looks like:
[window addNewControlWithTitle:@"Title"
xPosition:20
yPosition:50
width:100
height:50
drawingNow:YES];
This is essentially calling the addNewControlWithTitle:xPosition:yPosition:width:height:drawingNow: method on the window object.
Why make more iPhone games ? Honestly restricting yourself to using touch screen controls and making games for under-powered hardware is hardly gratifying - Make games for desktop, rather. There's so much more you can do visually and artistically speaking on a big screen with real controls. Plus, the iPhone market being flooded with games is hardly a good place to make your app shine. You will more likely be lost in the ever-growing ocean of crap.
I think controls which hide a significant part of your screen when you are using them is enough to qualify them as "worse". On some rare occasions if makes sense to have them but most of the time they just get in the way of the visible area of the game and seriously restrict what you can do. And let's not forget there is simply no feedback when you press on a touchscreen vs regular buttons, which is another factor that makes it really bad in terms of usability.
That's also why you see so many initiatives (like Ouya, Icontrolpad 1 & 2) aiming at bringing physical controls to tablets and phones.
Underpowered is a big deal. Before game makers were always pushing to do better looking, better working games and so on, and since we fall in the casual games bubble it has just become an endless flow of "meh" games not very enjoyable nor technically impressive. It is similar to what happened to the car businesses: it used to be a passion where most cars were built to reach top speeds and look cool and slowly became mass-market, fridge and washing machine like business with slow cars designed like shoe-boxes. It's just lame.
Getting traction is not the only thing that matters in life. Making a difference in an existing market is. You are more likely to make a difference on a desktop market with a great game than the same on the phone, just because it is so easy for everyone to publish crap on it. That's what the Introversion guys are doing and while they are on very limited resources they just strive to make better and better games for the desktop. They deserve more credit than they get.
I'm actually happy that a lot of games are moving to 'under powered' devices. Most of my favorite games come from when limitations in the platform forced simple, well designed gameplay. With new (or even old at this point), computers, you can hide these elements behind fancy graphics,and it is much harder to pick out the good games.
Also, my 'under powered' phone has a faster CPU, and more ram than by x-box.
About your last point: your underpowered Phone is incapable of displaying the same level of game details as your xbox. Stop trying to compare a empty box with fans running at hundreds of watts with a phone trying to save power every seconds it runs not to overheat and burn in flames - this is a lost battle and there's no way a mobile device will be at the same level as 2006 home gaming hardware anytime soon.
Wrong. The iPhone has tremendous graphical power, especially the iPhone 5. It will eclipse the XBOX 360 in performance very soon, if it hasn't already.
"Twice as powerful" does not mean much - performance in game is a combination of several factors and a matter of consistency of the architecture, OS, libraries and so on. I have yet to see anything on iPhone close to what the Xbox 360 is capable of. And I am laughing at the claim just like I am laughing at the claims that the PS Vita is just as powerful as the PS3, for example: it's fairly obvious that a game like Uncharted, available on both machines, is way less detailed and less fluid and less post-processed than the PS3 version. You can give the illusion it's "almost just as good" but once you factor all the elements mobile games are just relying on small screens to hide a number of visual imperfections that would be obvious and dirty on larger ones.
To develop an iPhone game you need a relatively modern Apple desktop/laptop (at most 2 year old if you plan to run xcode 4.5, thus fairly expensive) and an iOS device (the cheapest you could go would likely be a 4th gen used iPod, still somewhat expensive) + a yearly $100 license (not sure if this is waived for students?). You also end up learning a somewhat insular language with a ton of idiosyncrasies (Smalltalk on top of C with a somewhat uncommon take on memory management).
I feel like you get a lot more bang for your buck with Java and the ability to develop from any platform out there. An old Ubuntu box will do just fine, or Windows for that matter.
Of course. The Community Edition (free and open source, no field of use restrictions) of IntelliJ IDEA is just fine for Android Application development. You can develop for Android without an IDE at all.
Nothing wrong with Android - lots of good reasons to build Android apps.
But...I'm running Xcode 4.5 on a 4 year old MBP (late '08) that still performs like a rockstar. And if you are going to build for Android (and take it seriously) you'd need to invest more than the cost of an iPod Touch to have enough devices to cover fragmentation across screen sizes and manufacturers. And I guess (?) you could call Obj-C insular - but learning it opens the door to deliver experiences to a huge chunk of mobile users. Long way of saying, I'm struggling with your "bang for your buck" argument. Especially if you're hoping to monetize your app. Because the primary ecosystem for that still seems to be iOS.
MakeGamesWithUs developer here. Your point about the required computer is fairly valid, but you could get away with having a early-2009-generation computer, or with the cheapest Mac mini ($600).
If you were truly strapped for cash, an iPhone/iTouch device is not actually necessary given the iOS simulator. And we'd totally be willing to test games on our in-house test devices if a developer doesn't have an actual device. Ashu, the guy who wrote the blog post, actually developed his game before he got his first iPhone.
Developers also don't need to worry about the license, as the game is published through us.
I'd disagree with your point about Objective-C. Firstly, automatic reference counting (ARC) mostly eliminates the burden of memory management. Also, learning the language is a requirement if you're at all serious about getting into mobile game development or mobile development in general. Any serious mobile app/game on the market HAS to have an iOS version.
While Android certainly has greater market share than the iOS, the fact is that Android has lots of device/OS version fragmentation. Greater proportions of iOS users, on the other hand, tend to upgrade their devices. This makes us comfortable enough to drop support for devices older than the iPhone 3GS and not have our developers worry about backwards compatibility (the new iPhone 5 screen is a non-issue).
People have also found that despite lower market share, iOS versions of the same game offered on Android usually gross more revenue.
That being said, we are definitely moving towards publishing on Android soon.
To clarify, my comment was only related to the didactic aspect of the program with respect to software development.
Regarding everything else, the business side in particular, I completely agree that you cannot do much better in mobile than with iOS today. Perhaps there are some esoteric options with 3rd world cell-phones and selling services through SMS, but let's overlook those for now. That of iOS is a demographic of people who are willing to spend money, and thus it's a good match for your need. As you mentioned, assuming iPhone games, only having to support 1 OS version and 1 resolution with 2 easily bridgeable screen sizes is a big boon.
On a sidenote, I still don't agree that iOS memory management is at all a good entry level paradigm. Reference counting, choosing between strong, weak, copy, assign, unsafe_unretained etc., retain cycles, transferring memory ownership from CoreFoundation libraries are all not trivial concepts for the average 16 year old. I'd be curious to read a blog post from you guys to see what your experience with this will have been.
Using industry-standard game libraries (cocos2d/kobold2d) with ARC, a 16 year old would never need to touch reference counting or the CoreFoundation (the exception is using Box2D physics). It is also not necessary to understand copy, assign, and unsafe_unretained, though it certainly might help in some edge-case situations, with which we would be glad to assist any student developers.
And while it is more helpful to know the difference between strong and weak references, that is IMO a very accessible concept.
With respect to device fragmentation on Android: why do you even have to support all the devices with your first game? Thinking of it another way: by developing for iOS, you "dropped" support for even more Android devices (all of them). So why not just develop for the latest Android version, and expand if your game becomes successful.
Is the "iOS grosses more than Android" thing still valid? Have any of your interns made good money with their games?
so you are advocating that kids should drop +600$ to make games.
While they could code game in Lua, python, any other language/script that would be more platform agnostic and probably more rewarding for learning. I would even put that coding in javascript for a game seems cheaper more cross plaform and more rewarding, and allow them to expand if they want to learn more.
Take this with a grain of salt because I am surely biased; Objective-C is a great language. I really like the Smalltalk method calling style they've used, and you can still use C to mess with pointers if you know what you are doing. If one learned Objective-C first it shouldn't be that difficult to switch to any other object-oriented language, other than memorizing the order of variables in every method. (Also, retain/release is hardly uncommon and with ARC the programmer can basically act like everything is garbage collected anyway.)
That aside, the price of entry to run on iOS is an excellent objection, as is (to some degree) the lack of code portability. I don't know how simple GNUStep is to get running, but it's certainly not as ubiquitous as all the JVMs.
Not only that but you can't share the game with your friends (or can you?) Is there a way for them to install the game without also getting a $100 license?
As for Java though, I think kids would do a lot better with JavaScript ;-)
At a young age, if you create something and get really positive feedback from someone you don't know (even if there is negative feedback as well), like he did, it has a huge effect on how you spend your time. Video games seem boring compared to making people happy through creating.
I agree that it's a great practice to make games, but there's definitely no reason to specifically state iPhone games, or even mobile games. There are tons of great libraries for building desktop games that are extremely accessible for newcomers, like Love2D and GameMaker.
The goal for building a game should be learning design, time management, and discipline. I think the technical aspect is very overstated. I mean, knowing the basics is important, but anything after that is something people should be able to figure out on their own. The technical skill required for creating a simple game is very basic - the most difficult part is learning how to finish a project in time, how to stay motivated, and how to design a fun product.
No, not iPhone games. We should be encouraging kids to program for ecosystems that are free to enter, and that don't censor apps for disagreeing with their delicate sensibilities.
That's completely missing the point: Kids should be introduced to open systems and learn the values it provides me, you and everyone.
Kids should be on platforms where tinkering is allowed and encouraged. This is the way they learn. They should be on platforms where they cannot be "banned" for having fun.
They definitly should not piped directly into a megacorp's cash-pipe from birth only to learn its one platform, its one language used only there and learn skills which only has value inside that megacorp's locked eco-system.
That would be a very stupid and very bad thing to do to a kid.
Kids should be introduced to a variety of systems and platforms and given enough information to make up their own minds. I love the open source ideology and the tools which have grown out of it, but I can also appreciate that closed systems also have their own set of benefits (and drawbacks).
Yeah, like the Raspeberry Pi. You can program with what you want and play it on a big screen in 1080p. And it's cheap, small and hackable. Way better than tinkering with an iPhone.
This is much better, but since I am going full-on free software advocate at the moment I am obliged to complain that the wi-fi chip drivers are not open source :)
And all this money... To program on the minority platform with a dropping market-share, which you can be banned from if you and Apple happen to disagree about what is good fun and not.
That's a pretty shit deal.
Compare it to the Android deal: It now has over 75% of the smart-phone market. Developing on it can be done for free, using free tools, on any PC or Mac, basically any platform with a JVM. Chances are you can do it on a machine you are already own. Applications can be distributed freely, directly to your friends, without the need for any store approval.
Android in short: Zero cost. Ready to go on things you already own. Full freedom.
Whoever wrote this and decided that iPhone games was the thing kids needs to learn must be smoking some pretty heavy weed.
If you're a kid and you want to develop a game use what you've already got: JavaScript and your browser.
Much as I dislike the language it will run anywhere and you won't have to fork over $ for gear and silly licenses to deploy. Anybody in the whole world can instantly play your game if they have web access if you upload it to some public page.
Let's not push kids to closed off, for-pay eco-systems.
One doesn't have to spend minimum ~$700 to play the game. Tools and API are freely and easily available. Language, Java, is sth that students usually learn in initial years (No, I am not saying it's the best/worst language).
But I still believe the grand parent commenter's suggestion of JS is more practical and will benefit the kid in long run even though it shall, most probably, not earn him $35K immediately or win him cute groupies. JS gives you the power to make things anywhere quick and see the changes instantly. Anywhere!
Even though its now dying tech(I think?), Flash/actionscript would be my recomendation. It's the only platform where you can make real games and easily share them online. The built-in tools for working with animations are great. Though perhaps kids would benefit from a more hand-holding game-maker type of setup.
Blurb: Build New Games teaches you game development for the Open Web. The techniques we teach are cutting edge, cross-browser, and cross-device.
We’re edited and operated by Bocoup and brought to you with support from Microsoft.
P.S: You can see why Gabe/Valve is frothing in the mouth at the mention of MSFT :-P
72 comments
[ 2.6 ms ] story [ 105 ms ] threadI look at it as a call to get started with game/app development than to start producing state-of-the-art games.
1. cloning an existing product is probably a very good way to learn about the platform and learn about game programming, and that learning process seems to be the post's main drive.
2. your subjective response to the game's originality is irrelevant to the "call to arms," all that is required for the call is a set of facts, which may provide inspiration for other young programmers: A young programmer completed a game; Creating the game taught him a set of very valuable skills; The game was deemed publishable by Apple on their store; The game generated social and monetary profit.
You know what would be awesome? Someone who gives a f about the quality of this website. I'm looking at you, PG.
It always amazed me how easy the App Store made it to access such a vast market and that a game I built in my free time was being downloaded by people in countries as far away as Kazakhstan.
1. http://itunes.apple.com/us/app/drop!/id415884044?mt=8
I'm hardly surprised. People these days really don't see to value freedom and openness the way they used to. It's especially disappointing to see the same trend in hacker-circles.
I've played a ton of different games (board games, Magic, card games, RPGs, shooters, city-building, etc) and have even tried to create simple games in the past. What I found the most challenging and exciting was how to get all the different aspects of a game to come together. Top games today are probably made by specialists (I'm guessing) with someone who focuses on story or design or power balance or gameplay, etc. When I was a kid trying to put together all these things myself, I found it to be a really exciting and fun way to use my brain.
I guess I disagree that the reason kids (and kids at heart) should try building a game is to "build a product, make money and make people all around the world just a little bit happier." I think the reason they should build a game is to practice doing different types of critical thinking. But maybe it's hard to convince a kid to build a game with that kind of reason. :)
I didn't get $35K or groupies, though. I got about $200 a game from a disk-of-the-month club service for them, which was "real money" to a 16 year old farm boy in the 80s...
As someone who thought Objective-C was a terrible language with weird syntax at first, I'd have to say that 1) Verbosity shouldn't be mixed up with complexity, 2) You get used to the different syntax in a couple of days, and 3) Objective-C code is really readable once you get used to the syntax, in the sense that you never have to guess at a method's parameters.
Wikipedia has this example of Objective-C, which illustrates what it looks like: [window addNewControlWithTitle:@"Title" xPosition:20 yPosition:50 width:100 height:50 drawingNow:YES];
This is essentially calling the addNewControlWithTitle:xPosition:yPosition:width:height:drawingNow: method on the window object.
I don't know how big a deal the underpowered hardware actually is; my suspicion is that you're overstating it.
I agree that an app is unlikely to get any traction, but it's not obvious that a desktop game is any more likely to.
That's also why you see so many initiatives (like Ouya, Icontrolpad 1 & 2) aiming at bringing physical controls to tablets and phones.
Underpowered is a big deal. Before game makers were always pushing to do better looking, better working games and so on, and since we fall in the casual games bubble it has just become an endless flow of "meh" games not very enjoyable nor technically impressive. It is similar to what happened to the car businesses: it used to be a passion where most cars were built to reach top speeds and look cool and slowly became mass-market, fridge and washing machine like business with slow cars designed like shoe-boxes. It's just lame.
Getting traction is not the only thing that matters in life. Making a difference in an existing market is. You are more likely to make a difference on a desktop market with a great game than the same on the phone, just because it is so easy for everyone to publish crap on it. That's what the Introversion guys are doing and while they are on very limited resources they just strive to make better and better games for the desktop. They deserve more credit than they get.
Also, my 'under powered' phone has a faster CPU, and more ram than by x-box.
http://www.anandtech.com/show/6324/the-iphone-5-performance-...
Also note the distinction between the Xbox and the Xbox 360, because the iPhone 5 is undoubtedly more powerful than the Xbox.
To develop an iPhone game you need a relatively modern Apple desktop/laptop (at most 2 year old if you plan to run xcode 4.5, thus fairly expensive) and an iOS device (the cheapest you could go would likely be a 4th gen used iPod, still somewhat expensive) + a yearly $100 license (not sure if this is waived for students?). You also end up learning a somewhat insular language with a ton of idiosyncrasies (Smalltalk on top of C with a somewhat uncommon take on memory management).
I feel like you get a lot more bang for your buck with Java and the ability to develop from any platform out there. An old Ubuntu box will do just fine, or Windows for that matter.
But...I'm running Xcode 4.5 on a 4 year old MBP (late '08) that still performs like a rockstar. And if you are going to build for Android (and take it seriously) you'd need to invest more than the cost of an iPod Touch to have enough devices to cover fragmentation across screen sizes and manufacturers. And I guess (?) you could call Obj-C insular - but learning it opens the door to deliver experiences to a huge chunk of mobile users. Long way of saying, I'm struggling with your "bang for your buck" argument. Especially if you're hoping to monetize your app. Because the primary ecosystem for that still seems to be iOS.
Others seem to agree: http://techcrunch.com/2012/09/25/ios-android-appcelerato/
If you were truly strapped for cash, an iPhone/iTouch device is not actually necessary given the iOS simulator. And we'd totally be willing to test games on our in-house test devices if a developer doesn't have an actual device. Ashu, the guy who wrote the blog post, actually developed his game before he got his first iPhone.
Developers also don't need to worry about the license, as the game is published through us.
I'd disagree with your point about Objective-C. Firstly, automatic reference counting (ARC) mostly eliminates the burden of memory management. Also, learning the language is a requirement if you're at all serious about getting into mobile game development or mobile development in general. Any serious mobile app/game on the market HAS to have an iOS version.
While Android certainly has greater market share than the iOS, the fact is that Android has lots of device/OS version fragmentation. Greater proportions of iOS users, on the other hand, tend to upgrade their devices. This makes us comfortable enough to drop support for devices older than the iPhone 3GS and not have our developers worry about backwards compatibility (the new iPhone 5 screen is a non-issue). People have also found that despite lower market share, iOS versions of the same game offered on Android usually gross more revenue.
That being said, we are definitely moving towards publishing on Android soon.
What happend if somebody (me) is already familiar with xcode/obj-c and have created apps but never games?
Regarding everything else, the business side in particular, I completely agree that you cannot do much better in mobile than with iOS today. Perhaps there are some esoteric options with 3rd world cell-phones and selling services through SMS, but let's overlook those for now. That of iOS is a demographic of people who are willing to spend money, and thus it's a good match for your need. As you mentioned, assuming iPhone games, only having to support 1 OS version and 1 resolution with 2 easily bridgeable screen sizes is a big boon.
On a sidenote, I still don't agree that iOS memory management is at all a good entry level paradigm. Reference counting, choosing between strong, weak, copy, assign, unsafe_unretained etc., retain cycles, transferring memory ownership from CoreFoundation libraries are all not trivial concepts for the average 16 year old. I'd be curious to read a blog post from you guys to see what your experience with this will have been.
And while it is more helpful to know the difference between strong and weak references, that is IMO a very accessible concept.
Is the "iOS grosses more than Android" thing still valid? Have any of your interns made good money with their games?
That aside, the price of entry to run on iOS is an excellent objection, as is (to some degree) the lack of code portability. I don't know how simple GNUStep is to get running, but it's certainly not as ubiquitous as all the JVMs.
As for Java though, I think kids would do a lot better with JavaScript ;-)
Of course that still means a MacBook is needed, just not a recent one.
The goal for building a game should be learning design, time management, and discipline. I think the technical aspect is very overstated. I mean, knowing the basics is important, but anything after that is something people should be able to figure out on their own. The technical skill required for creating a simple game is very basic - the most difficult part is learning how to finish a project in time, how to stay motivated, and how to design a fun product.
Kids should be on platforms where tinkering is allowed and encouraged. This is the way they learn. They should be on platforms where they cannot be "banned" for having fun.
They definitly should not piped directly into a megacorp's cash-pipe from birth only to learn its one platform, its one language used only there and learn skills which only has value inside that megacorp's locked eco-system.
That would be a very stupid and very bad thing to do to a kid.
TLDR: iPhones considered harmful.
TL;DR: Indoctrination considered harmful.
But getting their parents to spend €1000 in the Mac, €100 in an Apple Developer and €389 (+ 2 year contract) for the iPhone is just too much.
Specially when many countries have an average income of around €500 euros.
Kids should learn using open systems that don't cost their parents an arm and a leg to pay for them.
That's a pretty shit deal.
Compare it to the Android deal: It now has over 75% of the smart-phone market. Developing on it can be done for free, using free tools, on any PC or Mac, basically any platform with a JVM. Chances are you can do it on a machine you are already own. Applications can be distributed freely, directly to your friends, without the need for any store approval.
Android in short: Zero cost. Ready to go on things you already own. Full freedom.
Whoever wrote this and decided that iPhone games was the thing kids needs to learn must be smoking some pretty heavy weed.
Much as I dislike the language it will run anywhere and you won't have to fork over $ for gear and silly licenses to deploy. Anybody in the whole world can instantly play your game if they have web access if you upload it to some public page.
Let's not push kids to closed off, for-pay eco-systems.
One doesn't have to spend minimum ~$700 to play the game. Tools and API are freely and easily available. Language, Java, is sth that students usually learn in initial years (No, I am not saying it's the best/worst language).
But I still believe the grand parent commenter's suggestion of JS is more practical and will benefit the kid in long run even though it shall, most probably, not earn him $35K immediately or win him cute groupies. JS gives you the power to make things anywhere quick and see the changes instantly. Anywhere!
http://buildnewgames.com/
Blurb: Build New Games teaches you game development for the Open Web. The techniques we teach are cutting edge, cross-browser, and cross-device. We’re edited and operated by Bocoup and brought to you with support from Microsoft.
P.S: You can see why Gabe/Valve is frothing in the mouth at the mention of MSFT :-P
"Why every kid should buy an iPhone and iMac, because that's the only way you can develop iPhone games"
No thank you, Apple.