Hey, congrats on the great update!
From what I understand from your version history message, what you did in this version is a simpler version of what I have been working on for a while now - the idea of gunheat waves in melee. I'll release tomorrow hopefully, but in the mean time some of the infrastructure I needed in order to get there enabled me to do some other things which are interesting - mostly around bullet power management.
And thanks for the competition, it is difficult to find motivation without strong opponents! In fact, thanks to all the robocoders who have been recently active, I was afraid that the robocode community had died! It is great seeing some new life in the rumble, especially with very strong bots!
Thanks! I haven't looked into the concept of gun heat waves that much yet, but it's interesting, especially in melee where it's a bigger challenge to detect enemy waves.
What I changed in 1.10 is actually concerning the gun. Firestarter fires a virtual bullet wave each tick now. Apparently this speeds up learning and it increased the performance of the guess factor gun, even against surfers.
I am curious about your new version! And I agree, I am happy to see so many people active, and I wonder where this activity suddenly comes from. Maybe AI and Deep Learning becoming popular in the media also sparked new interest in Robocode.
Ah, ok. I thought it would be movement related, and perhps you are doing some kind of shrapnel dodging.
A good way I found to get a balance between the every-tick vs fire-only is to use "time to/from fire" as an attribute, this way you get the fast learning as well as the better targeting of bots that react to enemy fire once you have enough data.
As far as I understood, shrapnel surfing is about simulating virtual bullets and moving away from them by using anti gravity. I tried something like this in earlier versions, but I couldn't make it work that well. Next, I used pure minimum risk movement which worked well. Currently, it is a mix of both positional and wave evaluation.
Thank you, good to know about that time attribute :)
IMO, bots using precise prediction (1v1) can also be called shrapnel surfing ;) e.g. ScalarBot is avoiding some "Virtual Bullets" with equal weights using true surfing, but that works similar to shrapnel surfing with anti-gravity. IMO the real difference between traditional wave surfing and shrapnel surfing is whether you are avoiding some "shrapnel" or just minimizing some probability (mostly from VCS bins or trees).
BTW, are you trying to avoid bullets using minimum risk before recent updates? Or just traditional minimum risk like HOF & Diamond.
There are lots of possible styles of minimum risk movement. I think Diamond detects a new minimum risk point every tick. HOF detects a new point once he reaches the previously detected point. So the frequency of detecting a new destination makes a difference and it can greatly affect your bot's behaviour. What Firestarter did before recent updates was calculating the minimum bullet flight time from enemy guns and updating his destination in that frequency. It is imprecise but it usually tricked all simple targeting systems quite well.
Wow, that's a great idea — I've been thinking about melee wave surfing for awhile, and gun heat waves in melee also once came to my mind. Great to hear that working!
I am working on a melee surfing bot too and I 'm thinking about robot shadow. You can mark a part of the wave that hit a robot as completely safe.
"Bot Shadow" also once came to my mind ;) the real problem is always that you never know the exact things in the battle field. But that should work any way.
Neuromancer has been doing Bot Shadows since 1.1 ;-) It gave a nice score increase too!
I thought that this inaccurate strategy would bring more harm than benefit. Good to hear it works, it seems cool to have this in a bot :)
I guess that, what makes an inaccurate strategy work is that — when the guess works, it's very beneficial, and when it is not working, it is not very harmful. Especially in melee, everything is imprecise, then making another mistake won't make things that bad ;)
I've been long thinking that Bullet Shadow is useless (because mostly only a small part is shadowed, and most bots are reducing danger in a rather inaccurate way), but it turned out very useful ;)