[There is a nice discussion of this post going on over here. Some flattery also.]
So I was rereading _why‘s uncharacteristically low-style essay on how the replacement of PCs with video-gaming consoles in the present generation’s childhoods doesn’t bode well for the future of computing. (It’s eminently readable by non-techies and will especially delight those who remember dorking around with C64s.) I’d just been doing some OgreCave stuff and idly wondering where all the kids who played Pokemon and Yu-Gi-Oh! are going to go now that those are over – likely to conventional video games, or out of gaming entirely. A huge missed opportunity for the unplugged-games “industry.”
And I thought, with regard to the first question, what are the reasons nobody’s made a simple programming game for consoles? It’s apparently hard to sell (or else someone would be doing so). So, what are the possible approaches to selling programming to console players? A Game Construction Set of some kind is a possibility – Allan and I owned one back in the C64 days (it was an EA product, in fact). Why does nothing of the sort exist today?
Two main reasons: 1) a whole programming environment with which anyone could make games might threaten the console makers’ business models, which hinge on making game production difficult. (The perception is that the Atari 2600 died due to crappy games flooding the market.) 2) The nature of games and gameplay today is such that most kids would likely want to use existing game archetypes and merely fill them with new art anyway. That would make a Game Construction Set analogue both difficult to design (constructing 3D characters is difficult enough with a hi-res monitor, mouse and keyboard – you want to make people do it with a game pad and TV set?), and counter to the mission.
So, I’m thinking, the best approach is to make a game that contains programming as a means of gameplay. I’ll skip all the usual caveats about “educational” games and their failure to avoid the eat-your-vegetables syndrome – that’s really just a failure of pedagogical vision, solved long ago when Mathematica torpedoed the likes of Reader Rabbit Teaches Algebra by simulating a “world” and letting kids loose, rather than running them through rote drills. Educators’ mindsets just need to catch up. What I’m concerned about right now is the nuts and bolts.
The only even-marginally-popular game I can think of off the top of my head that does this is the old programmable-tank-arena model. It’s possible that this is currently in print as whatever that BattleBots license thing for the GBA is, but I cannot even be bothered to check. In any case I think it’s mostly a played-out concept, but it can’t be too difficult to come up with another kind of playing field for a programming-as-gameplay approach. Probably a very simple board game, wherein you have some kind of agent(s) that you can anthropomorphize a little. The important thing is to not put too much of the game anywhere but the programming, because then you don’t have a game that is programming, you just have a game where the way to win is so complicated that you have to write a program. Then, not only will no one bother to program, but no one will bother to play.
The concepts of programming have to be presented in a way that’s gradual, engaging, and above all, visual. Look at LEGO Mindstorms: its default programming environment consists of a GUI in which the user – surprise, surprise! – connects colored blocks to one another. Each color/shape combination of block represents a command, or a control structure such as IF/THEN or a loop of some kind, and all the commands are then executed in the order you connected them.
Are you thinking what I’m thinking, Pinky? Instead of blocks, cards. Instead of Pokemon or collectible monsters and magic items on the cards, commands. Or types of loops, or even objects with multiple slots for properties and other commands. That’s right, I said collectible programming commands. Make the powerful, difficult-to-grasp ones rare, have some server-mediated market for getting them, and provide an anime-like story shell about being the greatest hacker. Then just let the kids loose and let ‘em fight each other with code.
If this all happened, the impact on the culture could be so large and unpredictable as to truly frighten its own implementors. I like that kind of idea, but haven’t got the scratch to implement, so instead, it’s yours. Enjoy. Or, if you prefer: go.