----- Original Message -----
From: Phil Tomson <ptkwt / shell1.aracnet.com>
Newsgroups: comp.lang.ruby
To: ruby-talk ML <ruby-talk / ruby-lang.org>; <undisclosed-recipients: ;>
Sent: Tuesday, September 11, 2001 7:34 AM
Subject: [ruby-talk:21131] Robocode (RubyBot - perhaps a way to introduce
people to Ruby?)


> Slashdot has an article about a game called Robocode that teaches Java by
> having users program their own robots.
>
> From the Robocode homepage:
> http://robocode.alphaworks.ibm.com/home/home.html
> "Build the best. Destroy the rest. In Robocode, you'll program a robotic
> battletank in Javatm for a fight to the finish. The game is designed to
> help you learn Java, and have fun doing it... from a simple 10 line robot
> to a very sophisticated, intelligent robot that destroys the competition!"
>
> This seems like a good method for teaching programming in general and for
> teaching the Java programming language specifically.  So I'm thinking...
> what about a version that would teach Ruby programming: RubyBot (or some
> such), or if you didn't want just a simple shoot-em-up game you could make
> something like a simulated ecosystem (RubyBio) where you can create
> different types of creatures and see how they survive.

Very interesting idea. I've seen it done long ago in C and even a
proprietary language for bots.

> Now, it seems to me that since Ruby has more 'dynamicity' (didn't somebody
> create that word on another thread?) than Java that it would allow for
> doing a lot more than is possible in the Java version.

:) Concerning "dynamicity" -- apparently in the sense I use it, it isn't
a "real word." Now, ordinarily I am such an English language purist
I would not use such a fake word... but I like the sound of it by analogy
with "periodicity" (which might also be fake, but I've seen it many times).
And anyhow, a web search revealed 675 hits for the word, nearly all of
which used it in the same sense I use it (not in the chemical sense).
Anyhow, I don't like the best alternative, which is "dynamism."

> Also, you could
> make it a multi-user game where different people can create their own
> Robots or creatures and introduce them into a running game.  It seems like
> it could be a good way to 1) introduce people to Ruby and 2) teach them
> Ruby.

Hmm, wonder if drb would be good? Then clients could register with a
central arbitrator or something, and gameplay could happen over the net.

> Since a GUI is a very important part of getting something like this going,
> I'm wondering which of the supported GUI toolkits would be good for this?
> I have the impression that most of the toolkits are good for creating user
> interfaces with windows, scrollbars, buttons, etc. but I don't think that
> in general they are good for drawing a robot or animal and moving it
> around the screen.  Do any of the supported toolkits allow you to do this
> sort of thing?

Ruby/Tk has  a working canvas object. I've never used it myself. There's a
little
example in the Pickaxe Book.

And I think the GUI can be done even if the players are remote -- i.e.,
every
client gets its own display. Not sure about this idea, though. Maybe you
want
to keep it local for simplicity (simplism??).

Hal