Discussion:
Robocode competition at work
tobbelundberg
2012-03-31 13:09:23 UTC
Permalink
Hi

I'm planning a robocode competition at work. The idea is to give everyone 3-4h to code a robot from scratch, and then run 1v1 battles until there is a single winner. I don't think any of us have tried Robocode before, so it should be pretty fair for all of us.

One of my biggest concerns is how to stop everyone from just downloading the best robot there is off of the internet and use that in the competition.

I also don't want anyone to copy/paste the wave surfing code on the wiki.

Any ideas how to handle this? Am I even on the right track?

Thanks in advance
//Tobbe



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/Robocode/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/Robocode/join
(Yahoo! ID required)

<*> To change settings via email:
Robocode-***@yahoogroups.com
Robocode-***@yahoogroups.com

<*> To unsubscribe from this group, send an email to:
Robocode-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
flemmingnlarsen
2012-03-31 22:06:23 UTC
Permalink
Well, you could put up a requirement that each hour, each person would need to safe his/her source file(s) as prove that he/she did the code, like it is done with some drawing/artist competitions, where the artist must provide the sketches and picture showing the progress of the painting/drawing. He/she should also be able to explain the code, when the competition is over. However, I don't think that you'll be able to easily check if the code was stolen. But you might require that the computer is not on the Internet, as all the API (Javadoc), editor etc. is already provided in the distribution file for Robocode - even a compiler. But the computer must have the JDK preinstalled.

Regards,
- Flemming
Post by tobbelundberg
Hi
I'm planning a robocode competition at work. The idea is to give everyone 3-4h to code a robot from scratch, and then run 1v1 battles until there is a single winner. I don't think any of us have tried Robocode before, so it should be pretty fair for all of us.
One of my biggest concerns is how to stop everyone from just downloading the best robot there is off of the internet and use that in the competition.
I also don't want anyone to copy/paste the wave surfing code on the wiki.
Any ideas how to handle this? Am I even on the right track?
Thanks in advance
//Tobbe
------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/Robocode/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/Robocode/join
(Yahoo! ID required)

<*> To change settings via email:
Robocode-***@yahoogroups.com
Robocode-***@yahoogroups.com

<*> To unsubscribe from this group, send an email to:
Robocode-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
tobbelundberg
2012-04-01 20:27:15 UTC
Permalink
Hi
Post by flemmingnlarsen
Well, you could put up a requirement that each hour,
each person would need to safe his/her source
file(s) as prove that he/she did the code
Thanks! This is a great idea that I didn't think of myself :)
Post by flemmingnlarsen
But you might require that the computer is not on the Internet
I've thought of this. I'm not sure what the best way of enforcing this is though. There will be wireless internet in the room we'll be in. And everyone has smartphones they can teather to wirelessly... Any ideas here?

Any other ideas anyone?

//Tobbe




------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/Robocode/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/Robocode/join
(Yahoo! ID required)

<*> To change settings via email:
Robocode-***@yahoogroups.com
Robocode-***@yahoogroups.com

<*> To unsubscribe from this group, send an email to:
Robocode-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Mauricio Noda
2012-04-02 00:52:17 UTC
Permalink
Changing the settings of the battles make it a bit harder to simply copy-and-paste code from other robots. Since many bots have constants like battlefield size and number of opponents hardcoded. But not all of them, and it is still possible to adapt the code inside the 4hs.

Maybe enforce a codesize limit? 4hrs is not much time to write a decent MegaBot anyway. The amount of bots to copy-and-paste code from drastically diminishes with a limited codesize. Wave Surfing doesn't fit in the smaller codesize categories. And if any bot becomes too similar with LittleBlackBook or Caligula, well...


To: ***@yahoogroups.com
From: ***@tlundberg.com
Date: Sun, 1 Apr 2012 20:27:15 +0000
Subject: [Robocode] Re: Robocode competition at work




























Hi
Post by flemmingnlarsen
Well, you could put up a requirement that each hour,
each person would need to safe his/her source
file(s) as prove that he/she did the code
Thanks! This is a great idea that I didn't think of myself :)
Post by flemmingnlarsen
But you might require that the computer is not on the Internet
I've thought of this. I'm not sure what the best way of enforcing this is though. There will be wireless internet in the room we'll be in. And everyone has smartphones they can teather to wirelessly... Any ideas here?



Any other ideas anyone?



//Tobbe
Jean Felipe Felsky
2012-04-02 15:24:40 UTC
Permalink
Hello,

I did this to my students and they had some weeks to develop, so my problem
was even bigger! What I did was to not do a robocode competition, but a
virtual combat competition. I think there is a link in the robocode page
somewhere to that... It is the robocode with some changes. They have
included obstacles and flags and use a team of robots (although, this
already exists in robocode, right?). In virtual combat you can win by
either killing all enemy robots or by capturing the flag. You can disregard
the capture the flag part and then you have robocode with obstacles... and
the obstacles alone are a big problem to every algorithms out there...
There was a single competition of virtual combat so far (as I know of) and
there is none (or just a few) code available... well, everything that
exists for robocode can be used in virtual combat, but not directly. I
spent days trying to adapt wave surfing to consider the obstacles and they
are not working fine yet.
The experience worked fine for me, no one used a robot that already
existed, everyone learned a lot and it was a fun experience...

But, anyway in 4 hours I don't think they can learn exactly what a robot
does.. so, you can also ask questions to find out who really created the
robot or just copied the code... or you can also just limit known methods,
like anti gravity or wave surfing... I don't think anyone would come up
with the idea of such algorithms in just 4 hours...

In any case, let us know how it goes!

Regards,

Jean
Post by Mauricio Noda
**
Changing the settings of the battles make it a bit harder to simply
copy-and-paste code from other robots. Since many bots have constants like
battlefield size and number of opponents hardcoded. But not all of them,
and it is still possible to adapt the code inside the 4hs.
Maybe enforce a codesize limit? 4hrs is not much time to write a decent
MegaBot anyway. The amount of bots to copy-and-paste code from drastically
diminishes with a limited codesize. Wave Surfing doesn't fit in the smaller
codesize categories. And if any bot becomes too similar with
LittleBlackBook or Caligula, well...
------------------------------
Date: Sun, 1 Apr 2012 20:27:15 +0000
Subject: [Robocode] Re: Robocode competition at work
Hi
Post by flemmingnlarsen
Well, you could put up a requirement that each hour,
each person would need to safe his/her source
file(s) as prove that he/she did the code
Thanks! This is a great idea that I didn't think of myself :)
Post by flemmingnlarsen
But you might require that the computer is not on the Internet
I've thought of this. I'm not sure what the best way of enforcing this is
though. There will be wireless internet in the room we'll be in. And
everyone has smartphones they can teather to wirelessly... Any ideas here?
Any other ideas anyone?
//Tobbe
--
------------------------------------------

*** Por favor, evite mandar-me anexos em formato Microsoft Word ou Power
Point. (Please, avoid sending me attachments in Microsoft Word or Power
Point Format)
*** Veja por que em (See why in)
http://www.gnu.org/philosophy/no-word-attachments.html

------------------------------------------
Peter Stromberg
2012-04-02 19:01:24 UTC
Permalink
It's work colleagues, right? I would just state the rules and then apply trust.

/PEZ
Post by Jean Felipe Felsky
Hello,
I did this to my students and they had some weeks to develop, so my problem was even bigger! What I did was to not do a robocode competition, but a virtual combat competition. I think there is a link in the robocode page somewhere to that... It is the robocode with some changes. They have included obstacles and flags and use a team of robots (although, this already exists in robocode, right?). In virtual combat you can win by either killing all enemy robots or by capturing the flag. You can disregard the capture the flag part and then you have robocode with obstacles... and the obstacles alone are a big problem to every algorithms out there...
There was a single competition of virtual combat so far (as I know of) and there is none (or just a few) code available... well, everything that exists for robocode can be used in virtual combat, but not directly. I spent days trying to adapt wave surfing to consider the obstacles and they are not working fine yet.
The experience worked fine for me, no one used a robot that already existed, everyone learned a lot and it was a fun experience...
But, anyway in 4 hours I don't think they can learn exactly what a robot does.. so, you can also ask questions to find out who really created the robot or just copied the code... or you can also just limit known methods, like anti gravity or wave surfing... I don't think anyone would come up with the idea of such algorithms in just 4 hours...
In any case, let us know how it goes!
Regards,
Jean
Changing the settings of the battles make it a bit harder to simply copy-and-paste code from other robots. Since many bots have constants like battlefield size and number of opponents hardcoded. But not all of them, and it is still possible to adapt the code inside the 4hs.
Maybe enforce a codesize limit? 4hrs is not much time to write a decent MegaBot anyway. The amount of bots to copy-and-paste code from drastically diminishes with a limited codesize. Wave Surfing doesn't fit in the smaller codesize categories. And if any bot becomes too similar with LittleBlackBook or Caligula, well...
Date: Sun, 1 Apr 2012 20:27:15 +0000
Subject: [Robocode] Re: Robocode competition at work
Hi
Post by flemmingnlarsen
Well, you could put up a requirement that each hour,
each person would need to safe his/her source
file(s) as prove that he/she did the code
Thanks! This is a great idea that I didn't think of myself :)
Post by flemmingnlarsen
But you might require that the computer is not on the Internet
I've thought of this. I'm not sure what the best way of enforcing this is though. There will be wireless internet in the room we'll be in. And everyone has smartphones they can teather to wirelessly... Any ideas here?
Any other ideas anyone?
//Tobbe
--
------------------------------------------
*** Por favor, evite mandar-me anexos em formato Microsoft Word ou Power Point. (Please, avoid sending me attachments in Microsoft Word or Power Point Format)
*** Veja por que em (See why in) http://www.gnu.org/philosophy/no-word-attachments.html
------------------------------------------
Tobbe Lundberg
2012-04-02 19:16:26 UTC
Permalink
Thanks for the ideas everyone! I will probably be mixing and matching a
little bit from everyone! Especially Pez' idea :)
We'll have a short meeting about the competition (we = the organizers) on
wednesday. The actual competition is on the 20th of April.

I will get back to you all on how I/we ended up doing it after the 20th :)

If I have any further questions before the competition I'll email again.

//Tobbe
Post by Peter Stromberg
**
It's work colleagues, right? I would just state the rules and then apply trust.
/PEZ
Hello,
I did this to my students and they had some weeks to develop, so my
problem was even bigger! What I did was to not do a robocode competition,
but a virtual combat competition. I think there is a link in the robocode
page somewhere to that... It is the robocode with some changes. They have
included obstacles and flags and use a team of robots (although, this
already exists in robocode, right?). In virtual combat you can win by
either killing all enemy robots or by capturing the flag. You can disregard
the capture the flag part and then you have robocode with obstacles... and
the obstacles alone are a big problem to every algorithms out there...
There was a single competition of virtual combat so far (as I know of) and
there is none (or just a few) code available... well, everything that
exists for robocode can be used in virtual combat, but not directly. I
spent days trying to adapt wave surfing to consider the obstacles and they
are not working fine yet.
The experience worked fine for me, no one used a robot that already
existed, everyone learned a lot and it was a fun experience...
But, anyway in 4 hours I don't think they can learn exactly what a robot
does.. so, you can also ask questions to find out who really created the
robot or just copied the code... or you can also just limit known methods,
like anti gravity or wave surfing... I don't think anyone would come up
with the idea of such algorithms in just 4 hours...
In any case, let us know how it goes!
Regards,
Jean
Post by Mauricio Noda
**
Changing the settings of the battles make it a bit harder to simply
copy-and-paste code from other robots. Since many bots have constants like
battlefield size and number of opponents hardcoded. But not all of them,
and it is still possible to adapt the code inside the 4hs.
Maybe enforce a codesize limit? 4hrs is not much time to write a decent
MegaBot anyway. The amount of bots to copy-and-paste code from drastically
diminishes with a limited codesize. Wave Surfing doesn't fit in the smaller
codesize categories. And if any bot becomes too similar with
LittleBlackBook or Caligula, well...
------------------------------
Date: Sun, 1 Apr 2012 20:27:15 +0000
Subject: [Robocode] Re: Robocode competition at work
Hi
Post by flemmingnlarsen
Well, you could put up a requirement that each hour,
each person would need to safe his/her source
file(s) as prove that he/she did the code
Thanks! This is a great idea that I didn't think of myself :)
Post by flemmingnlarsen
But you might require that the computer is not on the Internet
I've thought of this. I'm not sure what the best way of enforcing this is
though. There will be wireless internet in the room we'll be in. And
everyone has smartphones they can teather to wirelessly... Any ideas here?
Any other ideas anyone?
//Tobbe
--
------------------------------------------
*** Por favor, evite mandar-me anexos em formato Microsoft Word ou Power
Point. (Please, avoid sending me attachments in Microsoft Word or Power
Point Format)
*** Veja por que em (See why in)
http://www.gnu.org/philosophy/no-word-attachments.html
------------------------------------------
Mauricio Noda
2012-04-02 20:46:34 UTC
Permalink
A few more ideas:

1 - Veteran robocoders staying out of the competition and only helping organize it. Makes the competition more balanced and more people will want to participate this way.

2 - Veteran robocoders NOT showing their competitive RoboRumble bots to beginners prior to the competition, even if someone asks. GuessFactor/Wave Surfing demonstrations can ruin the mood of the event, seriously. When introducing Robocode to someone, stay with the sample bots.


To: ***@yahoogroups.com
From: ***@tlundberg.com
Date: Mon, 2 Apr 2012 21:16:26 +0200
Subject: Re: [Robocode] Robocode competition at work




























Thanks for the ideas everyone! I will probably be mixing and matching a little bit from everyone! Especially Pez' idea :)
We'll have a short meeting about the competition (we = the organizers) on wednesday. The actual competition is on the 20th of April.


I will get back to you all on how I/we ended up doing it after the 20th :)

If I have any further questions before the competition I'll email again.

//Tobbe

On Mon, Apr 2, 2012 at 9:01 PM, Peter Stromberg <***@pezius.com> wrote:


























It's work colleagues, right? I would just state the rules and then apply trust.
/PEZ
On 2 apr 2012, at 17:24, Jean Felipe Felsky wrote:




Hello,

I did this to my students and they had some weeks to develop, so my problem was even bigger! What I did was to not do a robocode competition, but a virtual combat competition. I think there is a link in the robocode page somewhere to that... It is the robocode with some changes. They have included obstacles and flags and use a team of robots (although, this already exists in robocode, right?). In virtual combat you can win by either killing all enemy robots or by capturing the flag. You can disregard the capture the flag part and then you have robocode with obstacles... and the obstacles alone are a big problem to every algorithms out there...

There was a single competition of virtual combat so far (as I know of) and there is none (or just a few) code available... well, everything that exists for robocode can be used in virtual combat, but not directly. I spent days trying to adapt wave surfing to consider the obstacles and they are not working fine yet.

The experience worked fine for me, no one used a robot that already existed, everyone learned a lot and it was a fun experience...

But, anyway in 4 hours I don't think they can learn exactly what a robot does.. so, you can also ask questions to find out who really created the robot or just copied the code... or you can also just limit known methods, like anti gravity or wave surfing... I don't think anyone would come up with the idea of such algorithms in just 4 hours...


In any case, let us know how it goes!

Regards,

Jean

On Sun, Apr 1, 2012 at 9:52 PM, Mauricio Noda <***@hotmail.com> wrote:


Changing the settings of the battles make it a bit harder to simply copy-and-paste code from other robots. Since many bots have constants like battlefield size and number of opponents hardcoded. But not all of them, and it is still possible to adapt the code inside the 4hs.


Maybe enforce a codesize limit? 4hrs is not much time to write a decent MegaBot anyway. The amount of bots to copy-and-paste code from drastically diminishes with a limited codesize. Wave Surfing doesn't fit in the smaller codesize categories. And if any bot becomes too similar with LittleBlackBook or Caligula, well...



To: ***@yahoogroups.com
From: ***@tlundberg.com

Date: Sun, 1 Apr 2012 20:27:15 +0000
Subject: [Robocode] Re: Robocode competition at work

Hi
Post by flemmingnlarsen
Well, you could put up a requirement that each hour,
each person would need to safe his/her source
file(s) as prove that he/she did the code
Thanks! This is a great idea that I didn't think of myself :)
Post by flemmingnlarsen
But you might require that the computer is not on the Internet
I've thought of this. I'm not sure what the best way of enforcing this is though. There will be wireless internet in the room we'll be in. And everyone has smartphones they can teather to wirelessly... Any ideas here?


Any other ideas anyone?

//Tobbe
--
------------------------------------------

*** Por favor, evite mandar-me anexos em formato Microsoft Word ou Power Point. (Please, avoid sending me attachments in Microsoft Word or Power Point Format)

*** Veja por que em (See why in) http://www.gnu.org/philosophy/no-word-attachments.html

------------------------------------------
t***@tlundberg.com
2012-04-30 10:53:43 UTC
Permalink
Hi

About time I get back to you guys about the competition that was held on
the 20th of April.

Eight of my coworkers decided to take part in the competition. None of them
had any prior knowledge of Robocode. So I randomly paired them to form four
two-player teams.
The rules I stated was that the battle would take place on a 700x700 field
and that the robots had to be nanobots or microbots. Both ideas I've gotten
from this mail thread - thank you guys!

We had about three effective hours of coding. (We were told we would have
four, but a little time was lost in the beginning and the end...)

A little more than an hour in to the competition I asked for everyones
robots, with sources. This served two purposes. First: All teams got to
practice delivering a robot while still relatively calm. I knew it would be
hectic at the end of the competition as everyone wants to get that last
feature in! And Second: I got a chance to look at all the source code to
see that they were all making realistic progress ( = not too much
copy/pasting from internet).

In the end three of the teams ended up copy/pasting bits and pieces of the
sample robots that comes with robocode and one team wrote everything from
scratch. The "everything from scratch"-team came second in the overall
tournament. I think they did a great job! We all had a great time and
everyone thought three hours was not enough time. They thought about eight
hours would have been good.

I decided to run the final battle in front of all my coworkers with the two
finalist teams up on the stage. Everyone was cheering and clapping hands.
And laughing when one of the bots did something stupid! It was a real crowd
pleaser!

Thanks for your help and inspiration!

//Tobbe
flemmingnlarsen
2012-04-30 21:43:17 UTC
Permalink
Thank you for sharing the information about your event, and I am happy to learn that you all enjoyed yourselves. :-)

Once in a while, 3-4 friends of mine and I have similar competition, except that we "play" for typically a day or two in a row.
Each second we deliver the robots as a robot package (.jar + source) on a shared DropBox folder, and have a competition. Typically, 1-by-1 competition or melee (all participant robots) in the battlefield, but using a 1200 x 1200 arena. We don't start from scratch anymore, but build on top of our existing robots, as most of us have made our own "basic framework" with various methods and strategies. Each of us have a preferred way that the/our framework should work, so taking stuff from the net is not always good for us as it does not fit into our structure.

For example, I have several classes for handling these parts almost individually: MovementStrategy (with anti-movement as well for bullet dodging etc.), RadarStrategy, GunStrategy, and various of virtual guns that scores points for each "virtual hit" on a robot. The gun with biggest score is the one that is used for real on the individual robot. A friend of mine mix all parts together and move based on "gravity fields" using polar coordinates for avoiding danger like, robots, walls, fired bullets etc., and then uses a neural net for training his gun.

Lately, we have not had time for coding robots, which is a shame.

Cheers,
- Flemming
Post by t***@tlundberg.com
Hi
About time I get back to you guys about the competition that was held on
the 20th of April.
Eight of my coworkers decided to take part in the competition. None of them
had any prior knowledge of Robocode. So I randomly paired them to form four
two-player teams.
The rules I stated was that the battle would take place on a 700x700 field
and that the robots had to be nanobots or microbots. Both ideas I've gotten
from this mail thread - thank you guys!
We had about three effective hours of coding. (We were told we would have
four, but a little time was lost in the beginning and the end...)
A little more than an hour in to the competition I asked for everyones
robots, with sources. This served two purposes. First: All teams got to
practice delivering a robot while still relatively calm. I knew it would be
hectic at the end of the competition as everyone wants to get that last
feature in! And Second: I got a chance to look at all the source code to
see that they were all making realistic progress ( = not too much
copy/pasting from internet).
In the end three of the teams ended up copy/pasting bits and pieces of the
sample robots that comes with robocode and one team wrote everything from
scratch. The "everything from scratch"-team came second in the overall
tournament. I think they did a great job! We all had a great time and
everyone thought three hours was not enough time. They thought about eight
hours would have been good.
I decided to run the final battle in front of all my coworkers with the two
finalist teams up on the stage. Everyone was cheering and clapping hands.
And laughing when one of the bots did something stupid! It was a real crowd
pleaser!
Thanks for your help and inspiration!
//Tobbe
------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/Robocode/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/Robocode/join
(Yahoo! ID required)

<*> To change settings via email:
Robocode-***@yahoogroups.com
Robocode-***@yahoogroups.com

<*> To unsubscribe from this group, send an email to:
Robocode-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/

Loading...