Advertisement

Programming Edutainment

Started by September 25, 2008 05:16 PM
21 comments, last by Ezbez 16 years, 4 months ago
Well, there was a game about this before, sorta.
Activision's Hacker game. 1985. A game about programming, by a game programmer.
Check out http://en.wikipedia.org/wiki/Hacker_(computer_game)

-- Tom Sloper -- sloperama.com

Quote:
Original post by JasRonq
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.

There could be several secondary measuring goals. More than most puzzles have:

- How much time it took the robot to complete the task.
- How much energy the robot spent doing everything.
- How much programming code was used (less is better).
- How many foul ups (dropping things, bumping into things) there were.
Advertisement
not "coding" but it has some programing ideas: light-bot.
You can always have a look at Colobot [ceebot.com] for some ideas. It's about programming robots to do tasks you get for each mission.
Okay, so here's the idea I've been thinking up. I've been playing with this a bit, and think it could be made into a good hardcore game. Too bad that's probably not what you're looking for since educational games really shouldn't be hard core, even if they're teaching programming. But here it goes anyways...

Each player gets a "mad scientist" (think steampunk-style universe), it's like the king in chess; you only got one and if it dies, you're gone. Then, each player can outfit a number of robots/mechs/clanks/whateveryouwanttocallthem. Each robot (which is what I shall call them) has these features:
-Chasis (eg: tripod, zeppelin, tank)
-Weapons
-Sensors (eg: radar)
-Control devices (eg: radio, telepathic link, satellite dish)
-A circuit board.

The circuit board is the interesting part (programming-wise). It consists of a number of "chips" which the player wires together. Each weapon, sensor, control device, anything else that needs to be controlled, gets a chip. Other chips can be purchased. For example, a default robot might have simply it's radar's chip (which detects nearby robots, and sends them out in the "target" output) wired from the "target" output to the "target" input on it's weapon's chip (which shoots at whatever it's "target" input says). Chips that do logic are also available (aka; and gates, or gates, etc.).

The control devices add an interesting twist; the player can only directly control the mad scientist. To control robots, the player must use the control devices. For example, the radio control could work well over short-medium distances, and allow the player to send, say, four different signals to all robots nearby with radio receivers. The satellite dish would allow the player to control robots from any distance, but also provide a limited number of signals. The telepathic link works only over short distances, but allows direct control over the robot.

Robots can also send out radio signals of their own. This allows nearby robots to communicate with each other. This allows players to, say, make a pack of small, cheap robots which work as a swarm. Or to create a scout bot which sends back targets to a mortar bot. Or simply make robots that stay put and blast anything that comes close.

The goal is to kill the other mad scientist. Throw in limited money supplies with which to build your army, and I think this would make a pretty intense game that also gets people thinking in terms of programming.

Hopefully that got some ideas going. :)
Quote:
Original post by Kest
Awesome, thanks for all the feedback.

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.

That games sounds pretty awesome. I would have really enjoyed it if I would have known about it when it was released.

Quote:
Original post by KodeNerd
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.

That game is pretty cool. That's a great example of getting people to learn about programming without getting into the nitty-gritty stuff like actual programming languages. I like how they introduced the concept of functions as a matter of convenience (saving space in your 'program').

Quote:
Original post by JasRonq
My first experience with programming was a 'game' called Learn to Program BASIC...

I think you're right in that interactive tutorials (I guess that's what you'd call them) can, at the very least, make learning easier, especially for kids. They're also probably much easier and much cheaper to make than games. Definitely worth considering.

Quote:
Original post by Pzc
You can always have a look at Colobot [ceebot.com] for some ideas. It's about programming robots to do tasks you get for each mission.

The idea behind the game sounds cool, and the game itself looks pretty neat (it definitely would have been attractive to me as a child), but I really think they failed with their programming language.

Object item;item = radar(Titanium);//...extern void Object::take(){    //...}

Having to declare your objects before you use them? Semicolons? Extern?. Maybe it's just me, but that seems way too involved, especially if you want young people involved. Cool looking game otherwise.


What I find the most interesting, is that the idea of a programmable robot seems to be the first, most natural idea for people to come up with. Maybe it's because people can relate to a human-like robot. Maybe it's because robots are awesome. I don't know.

Thanks for all the great ideas, feedback, and examples. I think I'll start pondering the robot ideas you guys have expressed, and see how workable that is. I'd really like to complete a successful product of this nature.

Thanks again, I really appreciate it! [smile] And, as always, more feedback and ideas are welcome.
Advertisement
Quote:
Original post by Ezbez
Okay, so here's the idea I've been thinking up...

That actually sounds really cool. Just the idea of two (maybe more?) mad scientists battling each other with armies of robots sounds inherently fun. Being able to program soldiers, where one set of AI algorithms powers dozens of robots, would make for some interesting, possibly hilarious battles.

It also got me thinking about how cool it would be if you could make a robot battling game popular enough to have MMO-like trading/buying systems. You could have players 'crafting' behavioral chips, where the crafting was actually real programming. Man. That would be awesome.

I'm surprised the EVE Online guys haven't put that in yet [lol].
Here is a suggestion I have:

Why not make it like a game where the player has a mythical beast and you must go through the levels attacking enemies by inputing programming code to do attacks and other kinds of techniques. For example, basic code would make basic attacks, and advanced code would do flashier, more powerful attacks.

Like if you type 6*(5+x)/3 you make a fireball attack with 50 attack power. You have maybe 5 seconds to input the command and if you you only manage to type some of it, like say 6*( the attacks power would only be proportional to how much of the code you type or how much you got right. Since the code is 9 symbols then it was only at about 30% of its power. The timer is to make things more exciting and the action is the reward of typing a line of code correctly. The more advanced the line of code is, the more powerful the attack to better be able to handle stronger enemies. Plus, each line of code is a different kind of attack. So memorizing 6*(5+x)/3 is a basic fireball attack while something like 89+x*50/256 would be a lightning attack with different attack properties than a fireball. So the more code that is memorized, the more attacks a player is able to do. Then before you know it, you would have memorized a ton of code to do in battle. The battles should be entertaining visually with good music and sound effects. It wouldn't be fun if its just simple pixels on the screen with no sound. I think this is a good way to make learning more memorable. The game will have been fun to play and you will have learned something. This method could be used to learn other things. I think edutainment games are able to be very entertaining. I would like to work on a game like that among other types of design.
I don't know if this could be considered programming edutainment, but the MMO game Second Life has a whole side thing dealing with scripting in-game objects that you can create from your avatar - while the fun part of it is that you are able to see immediate results that affect your avatar, other avatars, the world, or your/others' objects, probably the downside to that is that you have to go through non-interactive tutorials to understand how to script (especially a bit more difficult if you haven't programmed with a language before).
[url="http://groupgame.50.forumer.com/index.php"][/url]
Quote:
Original post by Fulgent
Here is a suggestion I have...

Thanks for the suggestion. Interactive, real-time battles would be pretty cool. I would probably let the player save special moves as functions, that can be typed or just clicked on. A 'create once, use everywhere' type of thing.

It might be neat if you could do research on enemies, maybe by killing them or taking photos of them (ala Bioshock), that would provide you with interfaces that allow you to query certain characteristics of other enemies of that type, or maybe gather information on what their AI looks like (so that you can program to defeat it).


In fact, I think it would be really cool if, in one of these robot-AI games, the player could be given special espionage/hacking abilities that would allow him to view random snippets of the enemy's AI code. Then the player could actively refactor/redesign his code to exploit his enemy's weaknesses (as his enemy does the same).

This topic is closed to new replies.

Advertisement