Imho, banner balance is fine.
What I would also do is compare KD ratios of each player and then arrange them appropriately. I've seen autobalance put several high KD players on one team and a one metric ass ton of KD of 1 and lower on the other team. Example:
15:0 | | | 3:1 |
12:1 | | | 2:1 |
10:1 | | | 2:1 |
8:3 | | | 1:1 |
0:3 | | | 1:1 |
0:3 | | | 1:1 |
0:4 | | | 0:1 |
| | | 0:2 |
| | | 0:2 |
| | | 0:3 |
| | | 0:5 |
Now the KD comparison should make it more like:
15:0 | | | 12:1 |
10:1 | | | 8:3 |
3:1 | | | 2:1 |
2:1 | | | 1:1 |
2:2 | | | 1:1 |
2:1 | | | 1:1 |
0:2 | | | 0:1 |
Ofcourse we can't divide by zero, so we would need to add +1 to death count for each KD calculation. Making 15:0 score 15:1.
To make this work the system would need to calculate KD ratio for each player, then sort by KD, and then allocate every player to the appropriate team (according to KD ratio sum) - comparing both KD ratio sums at each player allocation to keep them balanced. The system would start at highest KD player and end at lowest. If both KD ratios are "balanced", the system adds players first to team1, second team2, third team1, fourth team2 and so on.
Example KD ratio list:
Player KD ratio - team
15 - allocated to team 1 (team 1 KD ratio sum: 15)
11,4 - allocated to team 2 (team 2 KD ratio sum: 11,4)
9,7 - allocated to team 1 (team 1 KD ratio sum: 24,7)
9,5 - allocated to team 2 (team 2 KD ratio sum: 20,9)
7,1 - allocated to team 1 (team 1 KD ratio sum: 31,8)
5 - allocated to team 2 (team 2 KD ratio sum: 25,9)
3,4 - because (team2_KDratio + 3,4) < team1_KDratio(29,3 < 31,8 in this case) this player is also allocated to team 2 (team 2 KD ratio sum: 29,3)
2,9 - allocated to team 1(team 1 KD ratio sum: 34,7)
2,7 - allocated to team 2(team 2 KD ratio sum: 32)
1,5 - again, (team2:KDratio + 1,5) < team1_KDratio and this player also goes to team 2 (team 2 KD ratio sum: 33,5)
1 - this one goes to team 2 too, because the sum is still lower than team 1 KD ratio (team 2 KD ratio sum: 34,5)
1 - allocated to team 1 (team 1 KD ratio sum: 35,7) .... and so on
0,9
0,5
0,7
The logic would be that at each next player the system checks both KD ratio sums, and if one of the KD ratio sums + this players KD ratio would still be below the other KD ratio sums last value, it would keep adding players to the first KD ratio sum, until the next player KD ratio addition would go over the second KD ratio sum. Even I'm not sure if I wrote that right.
Simple example (this is an extreme case and KDs are usually more balanced in practice):
Player KD ratio - team
10 - goes to team 1, kd ratio sum is 10
6 - goes to team 2, kd ratio sum is 6
2 - should go to team 1, but because team2 kd ratio sum(currently 6) + 2 is not over team1 kd ratio (currently 10), the player goes to team 2, making team2 kd ratio sum 8
1 - goes to team 2, making team2 kd ratio 9
1 - goes to team 2, making team2 kd ratio 10 (thus balancing it)
1 - goes to team 2 (because it was team2's turn), team2 kd ratio 11
0,5 - goes to team 1, team1 kd ratio 10,5
0,3 - goes to team 1, because 10,5+0,3 < 11. team 1 kd ratio 10,8
0,3 - goes to team 2, because 10,8+0,3 > 11. team 2 kd ratio 11,3
Perhaps this wasn't well-thought out because I didn't really spend any time thinking this over and is more shit than I can see atm. Flame away.