I remember when we got our first computer, my dad won't let me play any games for more than a few minutes a day, but I could play the games I wrote myself as much as I wanted. That was a brilliant idea - it gave me the taste of the good games, which was a huge motivation. It did take a while to create an actual playable game (back then we didn't have easy to use graphics libraries like Processing), but then it all became easier after.
Most of my friends with computers at that time spent 5-6 hours a day playing games instead of learning.
This seems like an excellent technique. Although I think it'd be much harder today.
In my childhood I'd be easily entertained by a text adventure or a pretty simple sprite based game. Now a days your kid would have to create the next Call of Duty.
Perhaps a strategy that would make more sense in today's world is to get them the Valve Hammer Editor (or equivalent SDK) and instead have them make levels for their favorite game engine.
Last summer I taught introductory programming courses for middle-schoolers, and one of the first things we did was play Zork for about half an hour, as a class. Then I started showing them how to make their own text-based adventure game with rooms, a basic inventory and simple puzzles. All of my students were having a blast with Zork, and they seemed to find making text adventure games highly rewarding. I think you underestimate the imagination of today's kids.
One of the first games I wrote as a teen was a (as simple as it gets) text based simulation/adventure dealing with horse races (I read The Difference Engine at that time). Even though it wasn't sophisticated at all, it felt interesting (and good) to play one's own game (and to think about the story and how to develop it further).
Massively popular games like Angry Birds are much simpler than Call of Duty. The basic mechanics of such a game are easier to create with today's hardware and tools than a sprite based game was a long time ago. Sure, you won't be able to get anywhere near the professional game quality, but you can still have a lot of fun. I remember buying a C++ game development book that spent a couple of chapters before getting the first shape on the screen with the Windows API. With tools like processing.org the same takes 2 minutes. You can probably get a simple game up and running in the time I spent getting the C++ compiler to install.
Developing angry birds whilst considerably simpler than Call of Duty is not that simple.
At a minimum you have to implement smoothly scrolling graphics and quite a lot of physics. Of course there are libraries available which help with these things but then you have a lot of documentation to read (if it even exists).
I believe angry birds cost in the region of $100,000 to develop. Not really a learning exercise for a child.
Sure, but I'd imagine the bulk of that is spent on things that don't really matter in the context of kids making a game for themselves.
How much of that cost comes from sound, fairly slick graphics and animation, and the iterative polish needed to make a good game into a great one. I suspect that those things account for the bulk of the development cost.
The standards of polish for a hit game are far removed from what matters for getting kids into programming. The past generations making their text adventures didn't, for the most part, need to match the quality of Zork, and the current generation doesn't need to match Angry Birds. The point is to get them far enough that they could make something kinda sorta like it.
I'd be hard for a kid to make "Angry Birds" because of the block tumbling/collision physics. From experience, though, simple platformers, tank games and tron clones are within the reach of children with minimal instruction. A language/environment designed for that sort of thing helps a lot, though. We used QBasic, I'm not sure what you'd use these days.
My first serious programming was Povray scene desciption language on a 486dx2. (yes, it was turing complete)
The joy of programming was not in ipressing anyone with the fancy graphics, but tweaking and trying new things to see what would happen - being creative.
My older brother and I, actually messed around with a hybrid Autodesk Animator / text based adventure, earlier. I think it was batch file based, but nothing came of it. Still, it was great fun to mix together sprites from my favorite dos games.
This made me laugh as I remembered my initial hourly quota for dial-up internet access :) But yes, similar story for me - programming my ZX spectrum to make my own games was where I started out.
My dad did the same thing. Thinking back, the first thing I remember doing on a computer is writing a calculator in BASIC. Before games or anything. To this day I still choose coding over games (ok, most of the time).
Most of my friends with computers at that time spent 5-6 hours a day playing games instead of learning.