User talk:Beaming

From Robowiki
Jump to navigation Jump to search

Contents

Thread titleRepliesLast modified
Smart bots competition614:20, 16 January 2023
Robocode on HiDPI displays213:32, 16 January 2023
Bots starting position randomizing is not working1015:50, 31 July 2018
First page
First page
Previous page
Previous page
Last page
Last page

Smart bots competition

As we know, there is hard (bad badly controlled) maximum processing time per turn allowed per bot imposed by the robocode engine. This pushes all of us to do the best in the allocated time limit. But as result some of potentially better but slower strategies do not show up at the top of the rating.

I am looking for a way to set/control allowed calculation time per in the rumble clients, in a hope to find the best among slow and wise bots. So we can start new rumble codenamed "wise slopokes". Additionally, it may spark new wave of interest among the kings of the rating authors.

What do you all think about this idea?

Beaming (talk)18:13, 11 October 2014

I like the idea of more processing time in order to attempt more complex stats, but to be honest I've tried some pretty complex stuff (including Spectral Clustering) for KNN on recorded data and nothing has beat simple KNN with a square kernel and weighted on sample distance. Not to mention that a lot of these algorithms aren't just a constant 50x slower or whatever, they essentially become unsolvable at sizes above ~500 data points, scaling quadratically or worse.

A problem with unlimited processing time is that it becomes possible to simply keep a copy of other bots and simulate them to determine where they will shoot/move.

Does anybody have any specific techniques that they would use if there was more processing time available?

Skilgannon (talk)19:03, 13 October 2014

I personally was aiming to a better movement algorithm. I.e. one can do better than 1 or 2 wave surfing. That would be super critical in melee, where you can track/react/predict more than just the closest bot.

Idea of enemy simulator is also attractive. I personally do not like clustering algorithms, I would rather prefer emulate and distill a subset of physically possible and optimal tracks for a current situation.

A clustering algorithm probably would seize to work once you apply it in melee, since you have to account for a neighboring bot subset as an input.I would think this would drastically increase the problem dimensions.

Displacement vectors of Voidious would be the closest to real emulation but it is still just an approximation.

Beaming (talk)19:23, 13 October 2014

I also have a crazy idea of a fine control of the motion, i.e. something more complicated than a simple go to a point which does not change for a several ticks. I want to have a path with smaller/different rotation angles and potentially speed which does not accelerate to max or min state. This produces a lot of possibilities for the paths and takes a lot of time to properly evaluate the danger. Of course it is overkill since such paths are often only 1 pixel apart.

I think DrussGT has a trick where at every several ticks the bot rotates to left and right, so the bot moves in wave like path. This confuses a linear targeting quite a lot.

Though, my goal would be to fit in between coming bullets with a fine control of a motion and also meet a wave with bot moving.

Beaming (talk)01:23, 14 October 2014
 

I had some movement algorithm things in the works, and they would have been more straightforward to implement with more processing time sure, but half the fun so to speak was coming up with the right optimization strategies to make it very fast.

Honestly, overall I don't feel like higher per-tick processing time would be too helpful at this point. My reasoning is, high level Robocode tends to require a very large amount of automated testing to know if some tuning was was actually an improvement or not. If the processing time limit was increased, it would also increase how long that testing takes.

Basically, I think the potential gains from slower algorithms are outweighed by the gains of faster iterations during tuning/development.

If anything I'd be more interested in a "FastBots" league, except I think the engine's control over the processing limit is too unreliable/unstable for that to be reasonable.

Rednaxela (talk)19:36, 13 October 2014
 

Well I wouldn't mind implementing full and proper n-wave surfing, right now Nene just does 2 wave surfing in simple way. Full n-wave would be very time consuming to calculate. But I am unsure of any major improvement it would bring to movement.

Chase19:58, 13 October 2014
 

Slow but functional class of algorithms would be Monte Carlo methods. The more time you give them, the stronger they become.

MN (talk)16:24, 18 October 2014
 

Robocode on HiDPI displays

Hi I am trying to use my HiDPI laptop for robocode. But everything is super small. Is there a trick to scale everything up within Java? I am running it all on Linux.

I tried '-Dsun.java2d.uiScale=2' trick but it seems to have no effect on openjdk.

Beaming (talk)16:01, 22 March 2019

You are not the first to experience this problem.

Robocode 1.9.3.0 and its predecessors produced visual glitches with DPI scaling enabled (Bug-394). Fnl's workaround for this in 1.9.3.1 was to have Robocode disable DPI scaling entirely. Unfortunately, this causes the UI to appear very small.

The ideal solution, of course, would be to have Robocode support HiDPI properly. But that would mean changing a significant amount of UI code to take DPI into account, as well as modifying the graphics system so that the battle view can be scaled up arbitrarily high without losing quality. That would take a lot of work.

MultiplyByZer0 (talk)22:19, 22 March 2019

Only a few lines of code need to be changed. The glitch is caused by a bug, otherwise Java has already had perfect HiDPI support. See PR #62.

Xor (talk)13:32, 16 January 2023
 
 

Bots starting position randomizing is not working

Guys,

Can you double check it for me. I just notice that 1on1 rounds seem to have the same bot starting location. I.e. in 35 rounds battle, every round start (at least bot positions) are identical.

I see it in robocode-1.9.2.5

Beaming (talk)22:33, 17 October 2017

I don't know about RoboRumble but in RoboCode I see the randomizing works.

Cb (talk)23:01, 17 October 2017
 

Random here.

Rsalesc (talk)23:12, 17 October 2017
 

I see randomized start positions working in Robocode. Watch some rounds between Tracker and SittingDuck; you will see it.

MultiplyByZer0 (talk)23:14, 17 October 2017

I defenetly have one instance of GUI, where every round start seems to be the same. The other seems to be fine.

Looks like robocode's random number generator get stuck.

Beaming (talk)00:59, 18 October 2017
 

All random here also. Stupid question (but just to be safe): No fixed position set in the properties ?

GrubbmGait (talk)01:16, 18 October 2017

Bingo! It apparently was set somehow for one of the bots.

But I cannot even find how to setup it in the GUI. I spotted it in the config after your hint.

Looks like I was right, robocode opens some secret to people with more than 10 years of experience :)

Beaming (talk)01:27, 18 October 2017

I've looked into the newest robocode source code, but couldn't find where the robot start position settings are — except for the tests used by robocode itself. Could you still remember what config it was to fix start positions?


Edit: got it, it just hides behind some direct access instead of accessors.

the config is "robocode.battle.initialPositions".

Thanks for mentioning that feature anyway!

Xor (talk)15:35, 27 July 2018

It is good that you find it. I already forgot what it was. Strange thing I did not remember to set it up, so some bug triggered it back then.

Beaming (talk)16:51, 28 July 2018

However, it doesn't work when set in robocode.properties.

And from source code I know that this config is valid only in battle files.

And with a bug of robocode, once you open intro.battle, then the first bot's initial position will be fixed as long as another battle file is not opened. Neither "New Battle" nor "Restart" works.

So did yours appear in robocode.properties?

Xor (talk)15:29, 31 July 2018
 
 
 
 
 
First page
First page
Previous page
Previous page
Last page
Last page