it happened again, I reworked the kick system. People expressed their general displeasure about the kick system on several occasions, so now I came up with something new. Before I explain how the new system works, I want to talk about the current one and describe what it did and why it did it the way it did.
The current kick system
The idea of the last overhaul of the kick system was, to punish players that die in a rapid succession. So it wanted to detect people that fed on purpose. It was designed with the idea, that even players with a good score could be kicked, once they started feeding. What happened in the end, was that people couldn’t really tell, why someone was kickable or why he wasn’t. (skip the next passage if you are not interested in how the system worked exactly)
At one point we took a look at the general statistics of the players in our BT league to see how often players usually die. As it turned out, players die once every 3 minutes, on average. The kick system was based on that value. So if a player dies once every 3 minutes, he shouldn’t be kickable, but if he dies more often, he should become kickable at some point, depending how fast he was dieing. So after some tinkering with some numbers, this is what I ended up with:
To kick a player, a certain score had to be reached, which was made up from player votes (each worth 10 points) and a penalty value. The score that had to be reached was set to 50. So a player needed at least a penalty value of 10, to be kicked, if every other player in his team voted yes. If that player got 20 penalty points, only 3 votes were needed and so on. Each time a player died, he received a penalty of 2.5 points. After that, the value increased by 1 for each death. This is the mechanic that wants to punish deaths in fast succesion. Both the death penalty and the total penalty value decrease over time.
So, because of the inner workings it is pretty hard to tell, when someone actually becomes kickable, even for me. Also, one criticism was, that kills and support / assists of that player are not considered. Those two things were the main points I tried to improve.
The new kick system
Although I said that I wanted to make the new system simpler, to make it more intuitive, I have to admit that the inner working are somewhat complex and not easy to compute or predict in the game itself. But now players get more feedback on when they are actually kickable and why it happened. Players now receive penalties. When the system determined that your recent stats are too bad (explained later), you receive a penalty point. Your first point acts as a warning. You get a notification, that you just received a penalty (only you can see it) and why you received it. Right now there are only two reasons on how you can get a penalty: being afk for 3 minutes or having bad stats. Afk penalties are permanent, penalties for bad stats get removed after 5 minutes. The next passage describes the in-depth workings of the new system, feel to skip it when you are not interested.
Each death, kill and support point a player gets is recorded, along with the time, when he got it. They are saved / considered for 25 minutes, after that they get dropped. Each death, kill and support point is associated with a certain value (those values are also used in the league, for your game performance rating, and also on the new endgame screen for the game performance). Those values are as follows:
- Kill: 20
- Death: -35
- Support: 10
Your respective stats are multiplied with those values. It is important to note that, the longer a certain kill or death is in the past, the less influence it does have on the final value. When the final value drops below -100, you receive a penalty point. As long as this stays under -100, each additional death, will give you another penalty point.
When you have 2 penalty points, you are kickable (in a 5 player team), each additional penalty point reduces the number of needed votes to kick you, by one. If you want to know, how much penalties you have, just type ‘-penalty’.
The values are not final and might still change. But all in all I hope, that the new system is more intutive, while also providing better results. I’m aware, that it is virtually impossible to design a kick system, that detects any feeder in a reliable fashion (that is, someone that is actively trying to sabotage the game, not just some new player, that tries to get to know the game). It is kind of sad, that such a system is needed in the first place, but since some people seem to enjoy destroying games of other players, we have to invest time and thoughts into things like that. The system might even be expanded later, like giving penalties for team kills, economy sabotage or such things. But right now I only want to know, it this system is working like I intended it to.
So, any feedback for this is appreciated!