Advertisement

Programming Edutainment

Started by September 25, 2008 05:16 PM
21 comments, last by Ezbez 16 years, 4 months ago
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):
  1. How do you incorporate programming concepts in a fun game?
  2. How do you encourage non-programmers to play?
  3. 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?
  4. 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...
I don't think many people would have interest in a game like this. Programming is not really boring, it's just something that takes concentration and dedication to learn.

The level of patience the game would require is also not something that people have. It would take much longer then just learning normally, and be a lot less effective.
Advertisement
If I were to create a programming education game, I think I would base it around puzzles that you create programs to solve. For example a puzzle could include a robot that you write code to make it open a door. Another puzzle has the robot press buttons in a room in a certain order. This could be done without a language using a framework like Scratch or GameMaker's actions. You could also have a language backing it up; a subset of Logo or Basic would probably work. I think it would be best if every problem could be solved either way.
For what it's worth, my first experience with programming was with the Playstation game, Carnage Heart. The player programs the AI of mechs with function and condition chips. It wasn't extremely popular, but I became addicted to programming with it.

I think AI is the best programming task to use. It's relatively quick to see the results of small modifications. You could even allow making AI adjustments as the character is in action, to see the results on the spot.
If you look at this game ( http://www.addictinggames.com/lightbot.html ) on AddictingGames.com you will see that it is pretty much what you are describing. I think that it could be improved upon but a game along these lines would be really great for teaching new programmers the basics of control flow.
------------George Gough
Yeah, some sort of "get robot from A to B" could work, having traps, locked doors and stuff like that. I would probably use LUA and present the player with preset functions like "OnLockedDoor" that they have to fill in the code in order to advance, getting the robot in front of a locked door would trigger the function.

Of course, after implementing your 3rd or 4th A* it will probably get boring [smile].

You could have instructions like "forward","turn right", etc represented as blocks you stack and then execute to get the robot where you want it, but I don't know if that qualifies as programming any more than the pipes mini game on BioShock.
Advertisement
Of course it would not be the end-all solution but I think it is better then just dropping students into a course.
------------George Gough
Quote:
Original post by Kwizatz
Of course, after implementing your 3rd or 4th A* it will probably get boring [smile].

You wouldn't need to restrict the player to the type of AI programming that's actually useful to games. You could simulate real world restrictions that would be applied to writing AI for a corporeal robot. You wouldn't have access to the entire terrain, so you'd have to react to immediate surroundings. You could also implement simple memory gadgets, like a breadcrumb system to find your way back.

I can imagine a lot of fun puzzles being built around this kind of system. The player could be charged to accomplish something is a room of objects and gadgets, and needs to write simple AI instructions to navigate and perform them. The areas could easily get more complicated, with very little design imagination. Something like robot lemmings.
My first experience with programming was a 'game' called Learn to Program BASIC. It was just tutorials really that taught all the basic functions, introducing concepts one by one. What made it enjoyable was the corny humor and cartoon clips between parts. This was when I was 13 or 14 then, I found it easy to learn and the humor kept my eyes from glazing over the way serious tutorials do for me now. Of course at the end, when all the lessons were done it also served as a compiler and run time app in one so I could start the game up, hack out a program or work on a project and run it through the game. Might have kept it longer for that alone if it didn't start developing bugs on newer operating systems. I remember trying to make a mortal combat style fighting game on it, got characters moving around but lacked the math to get proper physics for jumping working so it looked pretty bad there. Also but together a tiling engine for multi-screen games and made an app to create sprites from folders of pics.

I think you are underestimating a kids willingness to learn if you just give them something mildly entertaining. A voice to listen to instead of pages of text to read goes a long way to making a tutorial fun. Corny humor and cartoons to do the talking help too. After all, if some one gets a game to make AI robots fight, he doesn't want to get bombarded with an edutainment programing game, if he wants to learn to program though, then be up front about it and concentrate on ways to make that experience enjoyable.
Quote:
Original post by Kest
*snip*
I can imagine a lot of fun puzzles being built around this kind of system. The player could be charged to accomplish something is a room of objects and gadgets, and needs to write simple AI instructions to navigate and perform them. The areas could easily get more complicated, with very little design imagination. Something like robot lemmings.


I can see this being very fun. It would be a great way to present the various challenges in a coherent way. In the game I just mentioned, each lesson was completely different and there was little flow from one lesson to the next beyond using previous knowledge. I think a cohesive environment and long and short term goals to work toward would be a great idea. Implementing the experience as a robot in a room (or building with many rooms) makes for a more physical and easier to understand presentation.

This topic is closed to new replies.

Advertisement