Release Robocode - a programming tank combat game

Would you participate in robocode competition?


  • Total voters
    15

dimag0g

Very Active Member
Joined
Jan 12, 2011
Messages
608
Location
Strasbourg, France
Hi there,

I have packaged robocode game this weekend. The idea is to program a battle tank in Java using this API, and make it fight against other robots. There is a limited amount of time and power your robot can spend on actions like moving, firing or scanning the battlefield with the radar, and the challenge is to find the right balance.

There are several sample robots included in the game, which you can use as a base for your own robots, and as adversaries. At first, you would place a couple of targets of class SittingDuck on the battlefield to check that your robot is able to find targets and shoot at them. Then, you'd make your bot fight against some simple robots from the sample package. Plenty of advanced robocode resources are available at robocode home page.

I really wish we could hold an OpenPandora robocode competition sometime this year, if enough people are interested. For now, feel free to play with the game and vote. In a few weeks, if there are enough votes in favor of the competition, we will discuss the rules and define the timeline.
 
Last edited by a moderator:
how would a comptetion work? we just send source code and someone runs all the tank together in a twitch like server for all to see?
 
Yeah, this is a remake of the old Omega games from the late 80s, but they used a really nice custom (BASIC-like) language instead of this... Java crap. Using that's just a cop-out because you can't be bothered to write your own interpreter.

D.
 
how would a comptetion work? we just send source code and someone runs all the tank together in a twitch like server for all to see?
Technically, a .class file should be sufficient, which kind of keeps your source secret. Depending on the number of tanks, we could organize some sort of tournament, with a duel between the two strongest tanks fighting for the first place. If we get bored with plain old tournament, we might decide that some of the rules are fixed randomly after all submissions are made, to see which bot adapts the best.

The description says c# works too is this correct?
I doubt it. I'd expect an effort from my side to be required for C# to work, and I didn't make any.

Yeah, this is a remake of the old Omega games from the late 80s, but they used a really nice custom (BASIC-like) language instead of this... Java crap. Using that's just a cop-out because you can't be bothered to write your own interpreter.
I believe even less people would be interested in this if they had to learn a custom language.
 
You can try with the MonoRT pnd, it's not much more complicated than with Java (ok, a little bit more, but nothing to heavy, just automount monort and launch it's runscript to setup path and ld_library_path).
 
Yeah, this is a remake of the old Omega games from the late 80s, but they used a really nice custom (BASIC-like) language instead of this... Java crap. Using that's just a cop-out because you can't be bothered to write your own interpreter.
I believe even less people would be interested in this if they had to learn a custom language.
...Or even a custom API...

D.
 
We had a competition at work once with this. Tempted to try and boot it back up, but means putting Java somewhere, and I'm really against that. I created a VM for my Android development so it didn't have to be on my PC
 
We had a competition at work once with this. Tempted to try and boot it back up, but means putting Java somewhere, and I'm really against that. I created a VM for my Android development so it didn't have to be on my PC
Why, is it the size? AFAIK, java doesn't require a complicated setup process, JRE and JDK can be installed anywhere, and all you have to do is to set JAVA_HOME and add JAVA_HOME/bin to your path.
 
C# is even worse than Java...

Imho java is a good choice for such a toy project. :)
 
Why, is it the size?
Nope, it's the fact of having Java installed. Java is a horrid piece of kit, and it used to be exploited vastly on the internet, not sure if this is still the case, but I have no great desire to find out.
It's a shame in some ways, I used to use a TV guide system (can't remember it's name anymore though) that was Java, TuxGuitar is Java, but it was compiled as a native application for the desktop, and the only other Java thing I would like to run is Supercars 3. The price to pay I guess...
 
Java is a horrid piece of kit, and it used to be exploited vastly on the internet, not sure if this is still the case, but I have no great desire to find out.
It's not java which is exploited, but rather browsers with java plugins. If there was an option to install a browser plugin which executes bash statements on click (rm -fr / and the like), would that make bash unsafe?

So, if you put java in a corner of your hard disk and only set JAVA_HOME and PATH in a shell you use to run java games, I see no way such installation could be exploited.
 
I don't get the problem... You should trust every application you run at your Desktop. If you don't, put it in a sandbox. If you don't trust the sandbox, put the sandbox in another sandbox.

I don't care, whether a C/C++ written program, a C# program, a Java app or a Bash script draws penise of all my family pictures in my home folder...

Disclaimer: I don't count Javascript scripts as desktop application. I am very afraid of unsafe js implementation, because I can't trust every website I visit.
 
You can try with the MonoRT pnd, it's not much more complicated than with Java (ok, a little bit more, but nothing to heavy, just automount monort and launch it's runscript to setup path and ld_library_path).
I've tried this approach, but without much success. The .NET plugin complains it cannot load a library (jni4net.n.132.m26-0.8.7.0.dll) which doesn't even exist. Symlinking similarly named dlls (like jni4net.n.w32.v20-0.8.7.0.dll) to that name didn't help. Is there a reason why .NET libraries have such wierd names? maybe the OS type is encoded in there somehow, and I have to rename them all to something OS-dependent?

EDIT:

Ok, so it was l32, not 132 in that name (but it still feels wierd to have to remane files in a released software). Now the error is: "ELF file version does not match the current one (Possible cause: endiannes mismatch)".

Do you have any idea  what the root cause might be? The dll file seems to be PE, not ELF.
 
Last edited by a moderator:
with strange names like that, isn't that dll something that should be loaded into the GAC and simply refered to as jni4net?
 
with strange names like that, isn't that dll something that should be loaded into the GAC and simply refered to as jni4net?
When I try "gacutil /i libs/jni4net.n.l32.m26-0.8.7.0.dll" I get an error:

Failure adding assembly to the cache: gac directories could not be created, possibly permission issues.

Am I trying the wrong command?
 
never toyed with C# on the console, but I guess it lack permission to add new assembly to the GAC... is that supported by our c# pnd?
 
I haven't setup anything about the GAC, so probably some permission issues here.

But for this case, a MONO_PATH environnement variable should be enough?
 
I'm past permission issues now (they might have been related to the fact that I ran the PND on a remote X server via SSH), but the main issue is still there:

"ELF file version does not match the current one (Possible cause: endiannes mismatch)"
 
Back
Top