Please not another SittingDuck...
Ok i remove all bots that have no 'valid' behavior (like throwing an exception to disable). Not sure about the 'waste energy as fast as possible' - i guess i will let it in for now.
More matter how low the codesize is, ranking lower than SittingDuck requires a bit of insight and should have its merits.
I agree, and if it causes some issue with the MeleeRumble scoring, it's a problem with the scoring system (which definitely has its issues), not the validity of the bots. But I also agree that throwing an exception is an unfair approach to getting a low score and don't mind if we ask folks not to do that.
Well, not sure, but i guess there is no scoring system that can handle an unevenly distributed advantage of fighting against 8 instead of 9 opponents. The more 'ducks' the competition gets the more will the score spread and it will take ages to get a settled score. Its clearly a difference to fight 8 (or even less) instead of 9 opponents. Not to speak about the 'free' energy gain for the lucky bot who starts near the duck.
More ducks will reward prey-on-the-weak strategies more. Although this kind of strategy will always be rewarded to some extent in battles with 3 or more bots, with or without ducks.
As a note, there are intentional biases in robocode's score system that work to reward certain types of behavior anyway. Note the bullet damage and kill bonuses. Any way you do score will have some kind of biases or "value judgements" in it really. Even with the most pure "survivalist" scoring systems, a subjective judgement about what makes a "good bot" is being made.
With the scoring system as it is in melee, the action of adding and removing sitting ducks is a bigger problem than their presence or absence. Due to how melee scores are based on battles with a random sampling of robots in the rumble at the time, a change in the probability of a sitting duck being in the battle affects newer bots more than bots who already have most of their battle count. Adding the ducks gives a bias in favor of newer robots, and removing them gives a bias in the favor of older robots.
Of course... this problem happens in the melee scoring system for addition/removal of any bot. It's just a more blatent with sitting ducks than more "typical" bots...
ELO Rating system suffers less from this addition/removal problem in melee.
Not really. ELO doesn't take into account which other bots were also in the battle for each pairing, which is the problem with our melee ranking system.
ELO has a behaviour similar to Rolling Averages. It gradually forgets the past, so, past battles with retired bots stops affecting the ranking after some more uploads are made.
ELO was designed taking in account a changing environment. i.e. chess players improving their skills over time, new players, retired players...
The changing environment in this case is a bit different from chess though due to how there are many participants in each match, and it's known which participants that may have changed, versus not changed. This extra information could be leveraged.
I haven't looked deeply into it yet, but I imagine that it would be possible to construct a melee scoring system with greater immunity to this type of distortion, by considering the full list of partipants in each battle instead of tossing out information by splitting it into pairings. (Of course, the rumble client doesn't even give the necessary information to explore improved melee scoring systems, because the splitting into pairings is done at the client rather than the rumble server)
The current upload protocol is heavily ELO oriented. Splitting into pairings is how ELO is calculated in games with more than 2 participants.