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.