I think it would be really cool to develop a game in which a player could learn to program. Unfortunately, I'm having a difficult time coming up with ideas on how to accomplish that - how can you turn programming into a fun game? I thought of creating one of those games where you program the AI for battling robots, but with an integrated community and system for buying different input/output devices with experience points (which would give you different interfaces and methods to fill out). I kind of doubt there is any major player base for a game like this, and, moreover, I don't think it would help people learn to program who were not already learning it before they played the game. Another obvious idea is the 'hacker training program', where the player plays as a hacker, compromising more and more complex systems as they play, foiling the evil plans of an alien robot army (or something silly like that). Again, I don't know how you would get people interested enough not just to try out your game, but to get them interested in programming concepts, and take their skills outside the game. So I thought I would come to you guys, to see if you had any ideas. Here are the major problems I see that need addressing (feel free to add more):
- How do you incorporate programming concepts in a fun game?
- How do you encourage non-programmers to play?
- How do you help players learn the basic fundamental concepts that, in my experience, are kind of tedious and boring to learn, and keep them around long enough to get to the really fun stuff? How do you make the foundation information fun?
- Would you include a programming language? Which one? A custom one? Do you think you could teach the concepts without a language? Could the language be introduced at a more advanced stage in the game?
- I've told you my ideas for #1.
- I thought that making it multiplayer, and getting a community up might help #2, although I know we'd have to do more than that.
- I have no ideas for #3. [sad]
- For #4, I imagine a simple language like Basic would be best, especially given the nature of its conception. I would also like the actual language to somehow be incorporated in only the later stages of the game, so as to avoid any tedium for beginners.
So, do you think it's possible to make a fun learn-to-program game? How would you go about designing such a game?
Hmmm... Maybe a development/design contest with "teach people how to program" as the theme is in order...