Learning Java Through Violence
Joe writes: "Someone introduced me to a new game called Robocode and now I'm hooked as well as my 17 year old son. We are both learning Java while playing the game or I should say while building our Java robots. The game is setup to teach you how to handle events, how to create inner classes, and other Java techniques to build more sophisticated Java bots. I have a c++ background so I've been helping my son with his bots, but he's catching on very fast. It's turning out to be a cool and easy way to get the kid clued into programming and best of all its free." I'll bet if the little Logo turtles shot at each other, I would have had more fun programming as a kid.
Now if we could only have Quake III teach reading, we'd be good to go.
Where does the school board find them and why do they keep sending them to ME?
There was a thing just like this for Amigas in the late 80's that used a crippled version of C for the bots. You could use "radar", shoot things, move, etc.. a lot of fun - and a good way to learn C.
And, before that, i actually wrote my own version of a programmable bot game for C64, using a homemade 'machine' language. no slick graphics here - you watched the memory space (each bit in the arena's memory space lit up as a single pixel on the 340x280 screen).
All of this based on a Scientific American article about a phenomenon called "Core Wars".
-c
I have discovered a truly remarkable proof which this margin is too small to contain.
There was a game I played as a kid on my macintosh. It had the same general idea, and i've been looking for something to replace it. Theres a new game called RoboForge out, but it costs money, and doesn't look all that interesting. Thank You!
Kill all the other tasks as quickly and accurately as possible before your computer crashes.
Yes, robocode is not the first, see DMOZ's entry. Corewars was perhaps the most famous. Okay, now we can move on to talking about Robocode's merits instead of talking about its family tree.
Lots of kids learned to code this way. Back in the days of Pascal in my high school I found Tom Poindexter's C-Robots and learned C that way (thinking it was pretty much just Pascal with some shortcut characters like braces instead of BEGIN/END). It's a funny coincidence that someone introduced you to the game within a day that somebody interviewed the guy behind the game at kuro5hin, however. :)
www.HearMySoulSpeak.com
How about an updated version of Rocky's Boots? Oh wait, that has a boot that kicks things, that could be violent. How about The Other Side? Oh wait, spies, bombs, environmental exploitation... I guess changing the graphics to throw flowers and compliments at each other to see who makes the other smile most might just be interpreted as a surrogate for missile weapons and damage.
I knew there'd be some self-righteous pollyanna that'd react to the title. Astonishing how everyone already knows how to raise everyone else's kids.
I've finally had it: until slashdot gets article moderation, I am not coming back.
This sounds tons more fun than that lame ass Karel the Robot baloney we had to go through in high school programming class. Forget the steeplechase, code up a deathchase!!!
1) Barney. Or, as I like to call it "unlearning through sensory numbing." Obviously not a good choice for anyone, at all, period.
2)Not learning, although still through violence. Example: most pointless video games. I say most, because I am still a firm believer in the idea that viedo games are great for the imagination, among other things.
This leaves us with the healthy alternative of:
C)Learning through violence! Yes, blowing up giant robots is FUN, and most kids would be thrilled to pull the trigger and show off his or her prowess on the virtual battlefield. I know I would love to destroy a an opposing process or script with the knack of my own creation. What is the big problem, when the kid would more than likely spend his or her time on a (possibly) less productice game? I say that this is a great idea. People learn better when they are having fun with what they are doing.
Finally, it is not "rewarding" the child for following through with a violent act - it is simply a mode by which the student can learn a new skill. Haven't you ever built an erector set? Most of them involved the construction of battlefield tanks or other war machines. It just happens to be one of the best-suited applications for teaching programming.
Man is born free; and everywhere he is in chains.
Just wait until some kid decides to shoot up his school again.
We don't really know what set off this victim of child-abuse and school bullying who just happened to have easy access to firearms. But we think it might be the fact that he was a Java programmer.
And we'll have Oprah and Senator Liebermann calling for a ban on applets for a few months afterword.
When I was in 3rd and 4th grades, way back, we had Apple ][ and IBM PC Machines, and we were taught BASIC, and LOGO, both turtle and mathematic instructions. We had district-wide competitions. Computing was for more than teaching productivity software and reader rabbit-crap.
This is something that has been lost from the curriculum, and should be regained.
Joe's son is 17, and while still developing, I'd venture that any associations he's made with violence and good were made long before he reached this age. Give the kid and parent some credit, the kid is an adolescent and hasn't rejected hanging out with his Dad- they must be doing something right!
There was a whole range of products out there along these lines back in the mid 80s. I recall one from Origin Systems (back when they were independant) that enphesised the game aspects rather than the programming aspects but nonetheless tought basic programming concepts using a BASIC-like language. As a teaching aid it was somewhat lacking but as a game, it rocked. Battles ere fought in a dufimentry 3D universe set around Origin Systems headquarters in Austin Texas. They even offered the ability to upload your robots for competition against other players where the stats were available on a BBS where members could review their rankings. Granted the online competitions weren't realtime and Blizard's battle.net is a far cooler forum for online gaming, but all that proves is that technology marches on and that Origin Systems was way ahead of their time. I think the game was called OMEGA although I'm not sure.
--CTH
--Got Lists? | Top 95 Star Wars Line
Has this been done?
What about a programming puzzle game? You'd get a task and some constraints and have to write a program that meets the requirements.
from "Output the alphabet without using any character literals." to.. something more complicated. permutations of a string?
It'd just have to parse the source file to see if they followed the rules, see if it compiles (warnings not allowed!), and then run the program with whatever input it needs, and parse the output.
wow, weve /.ed IBM.
Bend to our will IBM l0z3rzz.
This kind of game came out 16 years ago as C-Robots.
There are those that will tell you it works exactly opposite this.
You Learn Violence through trying to program in Java!
There is enough sex and violence present in the media already without intermingling it with education.
I disagree on both counts. You say for both sex and violence that there is "enough". How much is enough?
There is too much violence in media.
There is not enough sex in media.
And your idea of intermingling with education is a great concept. Now that you've mentioned it already, is it too late to patent it?
I'll see your senator, and I'll raise you two judges.
kuro5hin has a much more in depth look at robowars .
Java robot-programming systems have been around for a few years. My room mate created one three years ago called
J Robots. His inspiration was the C-Robots which many people have already mentioned in their comments.
There are a few other Java robot systems listed on Dmoz.org.
In 7th grade Comp Sci class (only in San Jose, CA!) we used Robot Wars on Apple ]['s that did similar things. Robots would be in a 2-dimensional plane, had a motor, radar and a cannon. You could control these things with code. Your bots would fight each other on the screen. By the way, I had the best bot in the class! I even beat the bots built by the teacher's sons, who were CS students at San Jose State and he always bragged about them.
Anyways, I've been craving a modern version of this for some time now and haven't been able to find anything. I've thought of building one but I'll have to check this one out.
intergalactics.net also allows users to create Java robots to test and play them on the server.
...which is where I wrote my first (and last) java class. Ech.
I/O Error G-17: Aborting Installation
Real men play Core Wars and learn assembly. This does beat learning Java in Prof. Thronton's ICS 22 class tho. :-)
Posting messages for the betterment of humanity..
But don't you think that there are better ways of teaching programming than encouraging unnecessary violence? There is enough sex and violence present in the media already without intermingling it with education.
It's a game, he either learns to code while killing "non-living" robots, or doesn't learn to code while killing humans playing counter-strike.
And everyone knows that video games *do not* contribute to violent acts. I have been playing violent video games for years, and over those years my violent tendancies have deminished.
-- iCEBaLM
Hmm.. it's a message board, a BBS.. not a air-traffic-control system. I am sure that more time and effort can be put into better text search tool (ie. off the shelf alternatives exist), but who cares?
I just want to see the news, read crap from trolls (such as yourself), and hopefully learn a thing or two.
You put a lot of effort into this post, but you haven't offered a single suggestion on improvments, only shot down the efforts of many. I guess some people are born to build, some are born to tear down.
Good luck on your conquest.
You wouldn't by any chance live under a bridge would you?
There is enough sex and violence present in the media
I think not. Sure there's enough violence, but never enough sex! I'll tell you what there is enough of though, self-righteous pricks who think they should be the thought police, and that they have the magical rules as to how everybody should raise their own children. That and trolls, so you've got to go either way.
Send lawyers, guns, and money!
Well, I'm sure if little boys were interested in programming pink unicorns to run around kissing daisies in meadows, then a wonderful teaching tool could be constructed around that very concept. As it is, though, a "battle" provides a setting that motivates young boys to get into the educational activity enough to make it worthwhile.
Besides, having grown up in a house where my parents didn't really censor my cable access, I find it hard to believe that shielding kids from all possible influences really makes a difference. I never got into fights in highschool or college, despite watching Rocky I - V. I've always felt that an intellectual approach to conflict is far better than a violent one.
How could that be, when I watched The Exorcist and Jaws before I was even a teenager! Why, I even used to watch The Roadrunner back when old Wile E Coyote used to actually hit the ground!
The key to raising your kids to avoid exerting violent behavior isn't to shield them from all possible observations of it. It isn't even that helpful to have them avoid board and video games where violence is a goal.
The key is to teach your kids the difference between fantasy and reality. "Yeah, it's fine to go watch a Jackie Chan movie, but when you leave the theatre, don't kick your friends and pretend that you're in a karate fight." "Play Quake and Duke Nuke'em, but remember that they're just video games."
Additionally, build loving trusting relationships with your children and encourage them to build similar relationships with others. Teach them how to think their ways through problems, rather than giving up and reacting violently.
Why are you letting these clowns ruin our country?
was that supposed to be modded insightful or funny? it's getting hard to tell around here...
although, i'm sure i read that one of the first signs of a serial killer is the torture of small instruction sets.
no, really.
This is the voice of World Control. I bring you Peace.
In middle school, I built robots for a pascal-based fighting environment such as this one.
I notice now that I was merely imitating the coding practices found in the example code and the code that my friends and I shared.
I was learning interfaces and code structure in a very oblique manner.
I wasn't learning program structure or timing.
It was a lot of fun, but I didn't walk away from the experience with anything more than a cursory memory of what code is.
I'll tell you what there is enough of though, self-righteous pricks who think they should be the thought police, and that they have the magical rules as to how everybody should raise their own children.
While I disagree with the poster's hand-wringing about violence, I have to defend his right to judge others. The biggest problem with society today is not sex, violence, the DMCA or any of that: It's the "who am I to judge" crap. It's everyone's responsibility to judge EVERYTHING and EVERYONE in society, but be willing and prepared to be judged by others.
Notice that the poster was not calling for laws to be passed, but it is his absolute right and responsibility to judge on a personal basis what he feels is right and wrong. When enough people feel the same way, society can be transformed.
RM101: Self righteous, and proud of it.
Sometimes it's best to just let stupid people be stupid.
OK, I think this "violence is bad" argument is being taken way beyond a sane or healthy level here. You call this game violent? Did you ever play Tank for Atari as a kid? This is game a remake of that game with modifiable AI and better graphics. You aren't looking at horrific scenes of brutal warfare; you see these small robots shooting little pellets at one another with a decreasing counter above them. Hardly what I would consider violent. Suppose kids were not exposed what you consider violence. How would they deal with the real world? They couldn't, they'd probably go crazy and we'd be worse off than we are now. I don't know about you, but I was technically a kid when I played Wolfenstein 3d, Spear of Destiny, Doom, Doom2, and Quake. You fail to reallise the premise of these games, they clearly state that you have two options: kill, or be killed, they do not present you with the peaceful resolution option because it is assumed to have failed. A situation we would hope never to put into but one we as a species are innately curious about. I also don't feel these games had any negative affect on me whatsoever, in fact, they gave my life direction: they inspired me to study Computer Science, and I'm sure there are millions, if not billions, of kids playing violent games every day. How many are cold-hearted killers? Very few. Due to the fact that Joe appears to be a good parent (helping his son pick up some skills that will be very handy later in life), his son is almost a zero risk for causing another Columbine. This debate against violence has been taken beyond reason. It has become more of a witch-hunt.
But don't you think that there are better ways of teaching programming than encouraging unnecessary violence?
Violence is not intrinsically immoral. For example, using violence to defend my home against a criminal is absolutely morally justified on the small scale, and similiarly defending the country during WW/II on the large scale.
It's how violence is used that determines whether it is appropriate or not, and games can help reinforce these lessons. For example, "Doom" was a positive game because you were defending the world against invading demons. On the other hand, "Postal" was probably a bad game for kids, because it was encouraging running down innocent pedestrians.
Violence is intrinsic to our nature, and just ignoring natural impulses is not the way to teach morality. The morality of when violence is appropriate should be taught.
And yes, I believe Ghandi and similar pacifists are idiots. Just because Ghandi was lucky doesn't mean his philosophy was any good. Passive resistance would have done the jews a lot of good against the Nazis.
Sometimes it's best to just let stupid people be stupid.
Do you seriously believe that the kids will really regard this kind of "violance" as the same kind of violance that you're talking about?
This is not violance against humans. This is violance against virtual robots. And the kids can even take an in-depth view at what is actually going on. If they see that it's just an integer counter being counted down when you're hit (or whatever, I've not looked at the code yet), I don't think they'll see this as violance, no matter what the graphical output looks like.
I don't believe in violance caused by computer games anyway (they might be the trigger, but not the cause), but claiming that encouraging kids to develop a virtual robot is like encouraging them to shoot their classmates is ridiculous.
Sig (appended to the end of comments I post, 54 chars)
Ever since I read about the play-by-email C++Robots I wondered where I could find the original concept. Thanks!
Can be found at: http://www.robocode.net/
I get violent when they make me use Java, too.
--------
Bleah! Heh heh heh... BLEAH BLEAH!!! Ha ha ha ha...
http://www.cognitoy.com
And, of course, Loki ported it to Linux.
It's an incredibly addictive robot battle game. You generally build robots with a GUI interface, but for serious hackers there is an object oriented definition language called Ice that compiles into the same VM code as the GUI builder.
-John
FYI: Robocode doesn't like Sun's JDK 1.4 Beta 2. I'll presume it'll play nice with 1.3.1.
.jar with Netscape 4.77 (Windows) didn't work (mangled file), but wget (from my Linux server) did.
:-).
Also, downloading the
Maybe this will get little brother interested in programming, he likes to destroy stuff...
Damn, Slashdotted IBM. Obviously they need to devote one of those S/390's running Linux to Alphaworks
I say, reward our children for their good deeds with positive reinforcement. The violence is completely unnecessary, and can warp an impressionable young mind.
If this game involved the murder of others than yes it is violent. Unfortunately, its a game with badly rendered tanks. I really think its important to realize the difference between reality and fantasy. The more PC thugs try to blur that line the more confused kids we have.
Children are notoriously suceptible to the power of suggestion,
Ever consider that your assumptions might be doing to the impressionable?
riiiiight, lets completely suffocate kids by placing them in this controlled sterilize environment and manipulate their actions at every step, cover their eyes to whatever you don't want them to see, god forbid we allow young impressionable kids to live in the real world.
What complete bullshit! morality is not something you learn through positive reinforcement, morality is something you develop on your own. if we can just point to the bible and throw the rule book at everyone who behaves from what you perspective immoral then it's not really a problem with personal morality as it is following orders and brainwashing people.
Looks kinda like Omega, by Origin, which I've been thinking of trying to do a modern version of.
Vintage computer games and RPG books available. Email me if you're interested.
I second this! I played Rocky's Boots on my Apple //e when I was in college. Even as an EE major I couldn't finish some of the puzzles. (The fact that propogation delay was modelled poorly didn't help at all...)
Cool, Google found this site which has links to Apple emulators and the Rocky's Boots disk image. Time to go kick some... um, brightly colored shapes.
Chelloveck
I give up on debugging. From now on, SIGSEGV is a feature.
Tim Sweeney's finest, if you ask me, although I'm sure he'd disagree :)
-bugg
I waited years to find a copy of this game. Unfortunately it didn't age well -- the robots are programmed with logic gates and IC's, and they don't shoot each other -- but it's fascinating nonetheless.
Corollary to Moore's Law: The IQ of new computer owners is declining.
I have, in a P2P fashion, where people could host arenas on their PCs and bots get submitted in the network, battle in others areans, and then move to other areans on the network once they are beaten or dethroned. The owner gets incremental reports on how their roaming robot is doing, either getting the crap beat out of it left and right or is king of the arena and unbeatable at 167.89.45.19.
http://www.ubero.com/
I've seen a lot of ones like this, but the one I liked the most was AT-Robots. It was based on Assembler, and it was entertaining enough that even though assembler is hard to learn I actually learned *some* of it by playing this. The address: http://www.necrobones.com/atrobots/
Entertaining stuff.
Does anyone know of games that could teach someone perl or php and stuff? Does anyone have a list of games that teach different programming languages?
The anti-salmon
http://robocode.turbochicken.com - This is a site that me and some of my Java buddies are putting together for fun. We've just started it - but already have most of the back end done. Please stop by and check it out. We're looking for suggestions and ideas before we officially launch it. So, please read the stories on the homepage to see what we have in mind for the site then send feedback to the email address posted on the homepage. Also, I've compiled a list of links to other RoboCode websites, tutorials, and discussion forums. By the way, the upload/download and save features are disabled for a few days. Check back towards the end of the week to start actually exchanging source and class files.
It's called TopCoder, located at www.topcoder.com (use my name khaladan as referrer if you sign up). You can participate in a contest usually once or twice a week with 7 other programmers trying to solve various problems of increasing difficulty.
It's based on time. Whoever submits code the fastest, gets the most points. Of course, then there's a challenge round where you inspect other people's code for bugs, and if you find one, supply input that will produce bad output (or crasht the program).
It's a greate contest. Currently you can choose either Java or C++ to program solutions in.
Plus, if you get 1st, 2nd, or 3rd place in your room (of max 8 people), you get $150, $75, or $25 dollars, respecitively. I myself have not been playing very long but I got 2nd place once, and sure enough, a check came about two weeks later for $75.
So, sign up and try it... use my name, khaladan, as the person who referred you.
Learning throgh RoboWar to produce advanced behaviour out of a slow and limited language was a great help when I later went on to dabble in embedded systems--the skill set required is very similar.
I have a positive modifier on Troll. When I mod someone Troll their karma should go UP!
Have always wanted to see a version of this built inside an RTS game. Its the only reasonable way I see to solve the stupid AI pathing issues that seem to plague the games.
He has every right to his opinions, but when everybody is open to judgement from everybody else, you end up with the worst form of mob rule, where a conservative status quo is achieved, and nobody will do anything that could concievably cause waves, as they don't want to rock the boat and be judged themselves.
Send lawyers, guns, and money!
you end up with the worst form of mob rule, where a conservative status quo is achieved, and nobody will do anything that could concievably cause waves, as they don't want to rock the boat and be judged themselves.
Certainly it is possible for that to happen, but on balance, I think we would have a stronger and better society when everyone is open game.
The prototype example from my life is that I used to have a very good friend who flat-out cheated on his wife. As far as I was concerned, he showed himself to be unworthy of my friendship. What was incredible to me was that all of his other friends rallied around him, and "supported him" through his "trying time". The man was total scum! I pretty much let him know what I thought, and told him that he should clean up his act and beg forgiveness. But he didn't, and destroyed his marriage.
I couldn't believe his so-called "friends" made it so easy for him to be a total asshole. I believe that being a true friend is steering them away from bad decisions, not enabling them. If all his friends and family totally ostracized him until he owned up to his responsibility, he would have been much better off, and learned a valuable lesson.
And yes, it is "his business" if he wants to cheat on his wife. But it is my business how I react to it, and whether I tolerate that behavior around me.
Make no mistake -- most of evil happens because it's tolerated. On a slightly different subject, I detest the word "tolerance" as its used today, as in we need to "tolerate" other minorities. The is the absolute worst word the PC crowd could pick. It should be "coexist with" or something similar. Preaching "tolerance" enforces the notion that I'm supposed "tolerate" bad behavior, because "who am I to judge". Argh!
Sometimes it's best to just let stupid people be stupid.
And I thought I was the only one who had played this! It was called Robot Odyssey, I believe, for teaching logic and the basics of electronic components. I actually called them (The Learning Company) to see if I could get a copy. The people that I talked to hadn't even heard of it, and said that there were "no plans" to re-release a game by that name. Currently, the only way that I have found to play it is via Commodore emulator... If anyone has found a way to get a PC version of this, I would also love to hear about it.
The people who complain about the violence here are the same ones who turn a blind eye or say "what're ya gonna do?" when teens use real violence on real people.
I look forward to teaching my kid programming with competetive elements to add fun. They don't all have to be violent. Imagine a large field with nuggets and seams of gold hidden here and there, a sensory API for "detecting" gold, and robots in competition to gather all they can.
Expanding a vast wasteland since 1996.
Anyone has develop a bot that won the 'Wall' bot? I worked hard on it in vain. Please!