As many of you know, I have pretty much abandoned developing this plugin recently. I'm going to explain why.
Team balancers suck. You can't really make it right, because there is alway something to it that sucks.
First, I made it check team sizes every round. Problem is, some games (like Empires or CSS: DM) don't really have rounds.
Then, I decided to check on certain events, binding to them according to the game that's currently running. That effectively means that FTB doesn't support all games that don't have events like captured points or something. I'd need a fallback for these, so
then, I built it to check every two minutes, causing people to be swapped in the middle of rounds all the time, annoying them even more when switching them directly before they managed to accomplish a map goal.
So I built the plugin to wait with switching until the players we want to switch have died. Problem is: most of the players we need to switch (the ones with scores like 20:5) hardly ever die, so waiting for that to happen is like waiting for hell to freeze over. It might happen eventually, but it's gonna take some time.
So you see, whatever way the plugin is created, it sucks to some part, and I'm running out of ideas to fix that.
You might suggest that I give up keeping the plugin mod-independent, which might be correct to some degree because mods simply differ from each other (which is a good thing). The only problem I'm having with that is that I don't really want to maintain <insert number of existing HL2 mods here> plugins that basically do the same thing, just at different occasions.
Still, that won't get rid of
all the suckage that a TB brings along with it, because people don't want to be forced into the losing team. No matter how uber-fair it might be, no matter how much they feel the teams to be imbalanced, no matter how much the other team screams for balancing and fairness - "wtf, why do
I have to switch? Choose someone else!" is what everyone is saying, and "because it's fair" is not quite the answer they expect. You can't force people to do something they don't want without annoying them, especially when it causes their characters to die and their scores to get messed up, which is the case in almost every scenario. Still, annoying one player because he is switched might be better than annoying 10 players who don't stand a chance.
I don't know how to make this thing as un-sucking as possible. I've tried, but I'm running out of ideas here.
I've made it so it checks teams in 2 minute intervals now and switches the players it chose whenever they kill someone next time. I don't know if that's gonna work, we will most certainly find something that sucks again.
Maybe we don't need to switch players into the other team, but keep them from being able to damage enemies (or maybe, only weaker enemies) or capture map goals when the teams' scores are imbalanced or something. The problem is that this could be abused easily by making players with low scores next to invincible, which - you get it? - sucks.
Regards
__________________