Looking forward to this.
It's less of a 'purity' issue for me than it is a very difficult problem to integrate the two 'correctly' without losing score against anybody. I'm very willing to integrate this into DrussGT, but I feel that this is almost exploiting a bug similar to the x.x5 bullet power issue, as in I don't mind integrating it, as long as it doesn't cause any scores to decrease relative to current DrussGT levels, because it is so easy to work around that a new-gen smarter rumble population would effectively give me a lower relative score if I integrated this and was willing to compromise my score against non-vulnerable bots in the process.
Bullet Shielding is an exploitable strategy, like all other crush-the-weak strategies.
It will probably increase APS score and decrease PL score.
I don't see any way multi-mode Bullet Shielding could ever not decrease your score against bots that aren't susceptible to it. So it's purely a matter of accepting the cost as worth the benefit. The extreme case that might mitigate it for me is if I already beat everyone badly enough to still average > 50 APS even with the feature, but who knows if/when that might change.
Agreed. I don't see it as a bug, but at the same time it just feels naughty to use it, like maybe someone should give me a spanking for adding it to XanderCat. In fact, if active folks wanted to make a play nice agreement to not use it, I would remove it from XanderCat without complaint.
I don't feel the same way about bullet shadows or on-the-move shielding like MoxieBot uses. Both of those techniques I think are quite clever and well within the spirit of the competition. It's just the stand-still shielding that feels dirty.
Btw, I don't think he means a bug in Robocode, but a bug in other bots. Like shooting at bullet powers of the form ((x * 0.1) + 0.05) takes advantage of a bug in the original BasicSurfer that a lot of bots are based on.
I wouldn't mind such an agreement. Since generally it would save me having to implement it in a bot. Even though I just got an implementation working.
I think I would mind it. :-) Though I have no plans to implement it myself yet. It just kind of offends my sense of what techniques are worthy of banning. Pre-loading bot specific data, on the other hand, I feel I could make a legitimate case for (but wouldn't at this point).
What Voidious said. I'm quite happy to implement this, and actually would feel negligent if I didn't, since it would let people get away with sloppy targeting that doesn't attempt to avoid this technique. However, because I expect this to be something which is fixed in most re-releases and new bots joining the rumble, I don't want the integration to be something that in the long run will cost me points.
Alright. My argument was the entirety of my argument. I have no vested or deep reasoning against bullet shielding.
I don´t see anything naughty about Bullet Shielding. It is only exploiting a vulnerability in deterministic targeting strategies.
Any deterministic targeting strategy has a counter dodging strategy which can dodge it almost perfectly. The same is true for counter Bullet Shielding strategies, which can shield predictable guns near perfectly.
But it works both ways. Deterministic dodging or shielding strategies also have counter targeting strategies which can achieve near 100% hitrate against them.
But hard-coding opponent´s names is something I really don´t like and will never put in Combat.
It removes all the challenge in classifying which strategy opponents are using. And breaks when a new competitor enter the rumble, even if it is weak.
Impact can defeat LittleBlackBook simply because it entered the rumble after the last release.
When BulletCatcher came around I thought: "Clever thinking, well executed", took my countermeasures and moved on. With MoxieBot I thought: "I want to be able to do this too". But I like to win, and not to 'not loose', so I won't let my movement dictate where to shoot. Passive bulletshielding, making use of the accidental shadows created by the gun, is the way to go for me. Although my first attempts at even creating the environment to start develop it horribly failed with version 3.3 and some more till 3.10.
I can't and won't dictate others what they should and should not use. I can only decide for myself, and conform myself to the rules of the community. But don't forget that a too strict 'ruleset' could stop innovation, making the rumble a tweak-competition.