Bullet Shielding
The highlighted comment was created in this revision.
- Basilisk gets bullet shielded to death by Cold Breath, uCatcher and BulletCatcher in the micro rumble. You might want to add a really little amount of random factor so bullet shielders won't hit you consistently.
- You will gain free APS and I'll lose some =(
I never ever put anti-shielding code into any of my bot. I just do everything “correctly” and shielders simply don’t work anymore.
- Aren't Bullet Shielders supposed to be working against any deterministic strategy? IIRC what I do is to fire with some kind of random deviation when WhiteFang gets shielded more than 50% of the time.
- Does doing correctly include not firing angles that do not hit? =)
“correct” means shooting at the angle with statistically maximum hit rate, instead of the intuitive center.
Since it’s statistical, it suffers from rounding errors and is chaos so shielding is impossible.
- Does this mean you are including enemy bullets in your firing algorithm to eliminate angles?
- Removing the shielded bullets might actually be a smart idea in AS Targeting.
Done! I added a random factor onto the gun if the bullet hit bullet event happens too often! Thanks for the idea, Basilisk 2.5 is now in #22 :)
- For a second I thought it was roborumble =)
- Congrats on 22th place, maybe I'll do a mini bot just for competition.
- Oh and BTW if you have code size issues have that random factor on all the time. You should statistically have the same hit rate and you will have more place for future plans.
Hi, semi-random question. I saw David Alves' video on the evolution of robocode strategy and I watched the part about the bullet shadowing. While bullet shielding can be beaten with a random factor or precise intersection, do bullet shadows create a safe zone that cannot be hit by any bullets, even with a random factor, provided the shadow is large enough?
Short answer: yes, but you'd have to do it on purpose to make a bot-sized shadow. Bullets are just a short line segment, so you can optimize for maximum shadow size with that in mind. If the bullet is very close to an opponent when they fire, the shadow that is will cast will generally be larger. The more distance between the bullet's intersection with the enemy's wave and you, the larger the shadow grows. Also, if the bullet is perpendicular (not pointing directly at them) the shadow will be larger because it has more surface area relative to the wave. If you watch a bot that tracks bullet shadows long enough with debug graphics turned on, you'll start to notice all that.
- When you are bullet shielding, you cannot cover the whole bot width. You don't have enough time to move to get the perfect angle so your actual goal is to predict(no learning is used generally) where the enemy fires. :When using bullet shadows what you do is: "My bullet was here, if there were any other bullets in this zone they would have collided. Therefore, the opponent didn't fire here.
- In conclusion, bullet shadows guarantee that you won't be hit in that area while bullet shielders aim to predict where the opponent fires at.