From Robowiki
Jump to navigation Jump to search


Thread titleRepliesLast modified
ScalarR not stopping308:30, 1 January 2023
Congratulations on first place! 920:28, 5 July 2021
NoClassDefFoundError418:31, 30 August 2020
Climbing . . .108:16, 20 August 2020
#1 in melee!418:17, 14 February 2019

ScalarR not stopping

Hi, I observe the following in the output of the rumble client

Fighting battle 44 ... aaa.r.ScalarR 0.005h.053,jk.mega.DrussGT 3.1.7
Robot aaa.r.ScalarR 0.005h.053 (1) is not stopping.  Forcing a stop.
Robot aaa.r.ScalarR 0.005h.053 (1) is not stopping.  Forcing a stop.
Unable to stop thread: aaa.r.ScalarR 0.005h.053 (1)
Unable to stop thread: aaa.r.ScalarR 0.005h.053 (1)

and the client seems to be running this battle with 100% CPU for at least several minutes (about 5). Then roborumble continued.

I am not sure where to search for the problem but there is something strange going on. I am running everything with

openjdk version "11.0.16" 2022-07-19
OpenJDK Runtime Environment (build 11.0.16+8-post-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Debian-1deb11u1, mixed mode, sharing)
Beaming (talk)08:15, 31 December 2022

Thanks for reporting. I'm not able to reproduce this problem on both Java 11 and Java 17 (both on macOS, HotSpot). Can you try with HotSpot as well? I'll also have a check on the logic.

Xor (talk)13:38, 31 December 2022

What is HotSpot?

Could it be Kotlin related? My roborumble (official one) clients report this error at the startup time

java.lang.IllegalAccessError: class kotlin.collections.CollectionsKt cannot access its superclass kotlin.collections.CollectionsKt___CollectionsKt (kotlin.collections.CollectionsKt is in unnamed module of loader @586bc8ed; kotlin.collections.CollectionsKt___CollectionsKt is in unnamed module of loader @3d494fbf)
Beaming (talk)20:26, 31 December 2022

I don't think it has something to do with Kotlin, but I generally delete Kotlin jars to suppress this error.

I had a check at the round finalization logic of robocode, it seems that after user specified run() exits, control flow will be handled to ``, which calls `BasicRobotProxy.waitForBattleEndImpl`. The logic here had some potential bugs, e.g. when receiving `InterruptedException`, it merely wakes up the thread instead of letting the thread exit gracefully. Not sure what triggered a bug here on some platform though...

Xor (talk)08:30, 1 January 2023

Congratulations on first place!

After more than 10 years DrussGT has been dethroned as the top 1-vs-1 bot! I guess you could have done this any time over the last year by combining ScalarR and ShieldR, but breaking 92 APS is an amazing score and really shows how far bots have come since DrussGT!

--Kev (talk)16:48, 28 June 2021

Thanks for noticing! I think BeepBoop has more potential, since it’s doing better against a lot of tough bots, and losing some APS against some weak bots (some times BeepBoop knows the shot but still get hit, weird).

Anyway I was looking for some real improvements before making the combination, and Bullet Shadow/Correct does work pretty well! I would say without DrussGT/Understanding DrussGT and BeepBoop/Understanding BeepBoop I would never imagined that it’s possible to break 92 APS.

I’m also planning some complete code cleaning & sharing even more details (most have been forgotten given the age). And possibly write some tutorials as well!

Xor (talk)17:01, 28 June 2021

That would be fantastic, I'm looking forward to hearing more about it! I'll have to look into BeepBoop losing some points to weak bots.

--Kev (talk)03:36, 29 June 2021

Congratulations!!! More than 1% of APS above the previos king. This is truly impressive.

Also it is good to see that Robowiki is bubbling (by our standards) with activities.

Beaming (talk)02:40, 2 July 2021

Congrats! Nicely done!

Rednaxela (talk)18:21, 28 June 2021

I guess there was a bug in your initial bullet shielding, it's now up to 93 APS! Wow, bullet shielding helps a lot.

--Kev (talk)18:54, 29 June 2021

Amazing work. And with a substantial lead. Extremely impressive, big congrats!

ABC (talk)22:25, 1 July 2021

Thanks everyone! I'm also surprised how I can do when a shield is combined. Anyway there won't be ScalarR without so many detailed articles on this wiki, and Skilgannon sharing a lot of details. I've already wrote some basics about ScalarR in ScalarR/Some Ideas, and planning more after some full review of the code base!

Xor (talk)04:52, 3 July 2021

Oh wow, huge congratulations!

I guess I kind of deserve this for not really updating DrussGT since 2013, yeah? ;-)

I've been putting all of my open source energy into my opencalibration project, but I'd love to get back to DrussGT again. I have some big ideas, and no time...

Skilgannon (talk)11:26, 3 July 2021

Thanks. Newer updated bots always have some advantages of knowing the newest rumble distribution, and I'm really looking forward to an updated DrussGT, which has always been the bot to beat ;)

Xor (talk)20:28, 5 July 2021



I had left my meleerumble client running and I got this error from ScalarR:

Exception: java.lang.NoClassDefFoundError thrown from the UncaughtExceptionHandler in thread "aaa.r.ScalarR 0.005g.047"

Anyway, after searching through the terminal, I found that Garm also gave the same error.

Please let me know if this is an issue with the robots or my meleerumble client(in which case I will be removing Golem to minimize the damage caused).

Dsekercioglu (talk)12:12, 26 August 2020

Which version of java are you using? (e.g. java -version)

and obviously all robots listed there can run, so it has to be something with your configuration.

Xor (talk)02:52, 27 August 2020

I am using 11.0.5

I'll be removing the robot from the rumble.

Dsekercioglu (talk)08:35, 27 August 2020

Please try with Java 8. Java 9 and successive versions like java 11 has incompatible changes which may be the root cause of ClassNoDefFound error

We recently moved to java 11, but it’s never tested for old robots.

Btw, are you using OpenJDK or orcale jdk?

Xor (talk)11:38, 27 August 2020

I use oracle jdk currently.

Dsekercioglu (talk)18:31, 30 August 2020

Climbing . . .

Congrats on your recent updates, only 1.00 point left to become first in 1-on-1 too ! Just out of curiosity I compared ScalarR with ScalarN, and I noticed one thing: ScalarR is much better against every rammer in the field. Every rammer except one: GrubbmThree . . . Why ??

GrubbmGait (talk)13:23, 19 August 2020

Thanks for noticing ;) Despite the names, ScalarR and ScalarN has nothing in common. And ScalarN is worse against all rammers simply because its flattener threshold is very bad ;)

ScalarR solved this by not using a flattener at all ;)

And... I have to say that GrubbmThree is an excellent rammer, and was one of my favorite bot to try with ;)

Xor (talk)08:16, 20 August 2020

#1 in melee!

ScalarR is now ranked #1 in the MeleeRumble. Congratulations, Xor!

After 1 year, 3 months, and 22 days, we have a new champion.

It's nice to see the standard for melee bots has been pushed to new heights. I hope this will spark renewed interest in Robocode.

Once again, congratulations!

MultiplyByZer0 (talk)23:09, 12 February 2019

Thanks! It's also awesome to see every time we thought there are limits, it's pushed further and further...

Xor (talk)04:49, 13 February 2019

Congratulations!!! That is quite huge to see that the bar is high but yet could be lifted even higher.

Beaming (talk)20:05, 13 February 2019

Congratulations! Maybe this will motivate me to work with Java again and implement the multi-wave surfing for Neuromancer that I've wanted to do for so long. Neuromancer could also improve the strength against strong boys at the end a lot, let's get this competition going!

Skilgannon (talk)17:51, 14 February 2019

Great! It will be fun to see how we can push the limit of melee surfing to.

Xor (talk)18:17, 14 February 2019