|Thread title||Replies||Last modified|
|ScalarR not stopping||3||07:30, 1 January 2023|
|Congratulations on first place!||9||19:28, 5 July 2021|
|NoClassDefFoundError||4||17:31, 30 August 2020|
|Climbing . . .||1||07:16, 20 August 2020|
|#1 in melee!||4||17:17, 14 February 2019|
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)
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.
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 net.sf.robocode.host.security.RobotClassLoader @586bc8ed; kotlin.collections.CollectionsKt___CollectionsKt is in unnamed module of loader java.net.URLClassLoader @3d494fbf)
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 `HostingRobotProxy.run`, 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...
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!
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.
I guess there was a bug in your initial bullet shielding, it's now up to 93 APS! Wow, bullet shielding helps a lot.
Amazing work. And with a substantial lead. Extremely impressive, big congrats!
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!
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...
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).
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.
I am using 11.0.5
I'll be removing the robot from the rumble.
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?
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 ??
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 ;)
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!
Thanks! It's also awesome to see every time we thought there are limits, it's pushed further and further...
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!