On removing bots worse than SittingDuck
There are a few bots doing worse than sample.SittingDuck, but imo we should keep them, at least not removing them in one step.
1. Removing a lot of bots in roborumble in a short period of time disables the comparation between different versions of every bot in APS, survival, PWIN, etc. As they all depends highly on the distribution of the participants. Doing so makes the recorded APS, Survival and PWIN in version history completely useless, and you can't even reload the scores as the score against those removed bots are always counted in inactive versions.
2. They are a great indicator of whether your bot has some serious bug that happens rarely. And we DO need enough weak bots to have the chance to trigger it.
3. They don't waste time in roborumble as they die too fast, making a battle almost done immediately.
OK, reduce load is good.
Anyway, I think we should not remove any bot except your own without discussion, unless those bots are violating rules or completely broken (e.g. invalid package).
Now, maybe we may add another rule: If your bot is worse than sample.SittingDuck, it may have some serious errors, therefore may be removed to reduce load for everyone who runs roborumble.
There are also some bots that try to do as badly as possible, so do worse than SittingDuck by not getting survival bonus etc.
WoW that's amazing
Now I'm considering a new bot that ranks the last in the rumble. aaa.WorstBot. I think I can use ReversedWaveSurfing to make sure the enemy hit me 100%, and when he is not firing or ramming, go hit the wall and hit and hit and hit the wall, while avoiding ramming into the opponent accidentally.
The reversed rumble is as interesting as the normal one, I think we should permit this.
Well, may be I removed them somewhat hasty. But I get tired fixing broken download links, and was looking for excuse to trim the list. If authors do not care about their bots why should I? Though, among the removed ones, I think only Galaxy was with a broken link.
We do need a procedure to remove dangling links bots. Without it the rating will be in "unstable" state forever. Look at the rumble [1] quite a lot of bots missing about 10 pairings rigth now (2017/09/07). Why? Because opponents are not downloadable.
There are bots which comunity would always take care: former champions, open source bots, and bots which have wikipage describing their logic. I.e. the ones from wich we can learn. But if it has no wiki page, closed source, and its link is expired so it blocks ratings stabilization, then I tempted to come with a big eraser.
1. I would still encourage the removal of the "worst" bot from the main rumble. Everybody get 100% against them, so they do not change resulting APS too much, since there are only handful of them. If we want to compete in being the "worst", we can start a separate rumble.
2. We might worry about APS change which is used for comparison. But it will be different anyway because there are always (well often) a new bot or new version of bot entering the competition, so old APS is slowly loosing its value anyway.
1. not downloadable opponents are not a problem, as we have rather archive or no one could publish a score about it. Therefore I think we should keep every bot as much as possible, unless we can't find any valid link for it.
2. A separate rumble for worst bots is completely different from competing together, unless we copy all the normal rumble bots to the worst bots rumble as well, which is a even more waste.
3. Even if the history APS is losing its value anyway, it does so slowly, therefore it's not a big problem. But removing a lot bot all at once is a BIG PROBLEM.
Let me argue that missing jars is the problem. Suppose you enter a new bot in the rumble and suppose that 10 weakest bots are inaccessible. Then this new bot, will have overall smaller APS than some old bot who already had a chance to pair up with weak ones.
So your APS would be smaller, not because your bot is weaker but because bots are missing. Literumble will show this as "Rankings Not Stable" but its probably not what you want.
Opposite will happen if 10 strong bots are missing.
Thus I am pushing for removal of missing bots so the rankings is done on the same set.
This only happens when no one that runs roborumble has access to those bots. And the real problem is our priority battle algorithm — it takes more than 3000 battles to be guaranteed to have a full pairings, but the default battles threshold is 2000, which leaves new bots typically with missing pairings.
Unstable rankings has nothing to do with those inaccessable bots.
I suggest we tweak the priority battle algorithm a little — when there's no one that has battles below threshold, prioritizing on pairings. Only when everyone has full pairings, run random battles.
However, the first problem to solve is that we make sure every bot is accessible to everyone.
The literumnle already does this. However the delay between generating the priority battles and the client running them and uploading them means that many are run twice.
And NOT everybody is getting 100% against worst bots. e.g. ags.RougeDC is getting around 50% against aaa.WorstBot, which must indicate a bug.
And, removing ten 100% APS bots will decrease everyone by 1.0 APS, which is considerable. Although the rank is not affected by much, doing so destroys the existing meaning of ranges of APS. e.g. 90 used to be a barrier of the extremely strong bots, but if we remove 10 100% APS bots, the barrier will be 89. A big shift in everything is very inconvenience.
A lot of bots is missing 10 pairings simply because there are 10 bots removed temporary, and it takes a lot of time to add the pairings back.
Therefore we should really take caution when removing bots — It takes less than one second to remove, but it takes almost a day to add it back.
> Well, may be I removed them somewhat hasty.
I didn't think it was hasty at all. On the other hand, I was glad that finally someone was taking the initiative.
I personally agree with Beaming's argument. However, it doesn't matter that much to me, so I won't waste breath arguing about it.
My thoughts on removing are that we should only remove if:
- We don't have a .jar in the robocode-archive
or
- It is broken in new JVM / Robocode versions, and closed source so we can't try to fix, or open source but the fix would be really complicated, or the bot has no historical significance and nobody cares.
Ok. I sign under it. Bad score is not a reason to be out of rumble.
My apologies to everyone for acting without discussing it first.
Shall, we instruct liteclient to look at the robocode-archive automaticly, if primary link is down?
I can probably cook up a patch for it rather quickly.
Maybe better would be a script which transforms the Participants page? This way we aren't hardcoding new URLs in the client that will need more maintenance, and we can easily run the script again to see which bots need fixing, and we know from the changelog of the participants page which ones don't have hosting anymore. This script could be made available on the wiki page. And it is 100% compatible with current rumble client.