As far as I know there is no wiki page about the plugin yet. Type buddy_set in console on any server with the plugin to see the instructions (currently BDS and [mush] servers). Yes, I know there is no menu and You have to rewrite userid from status command to buddy_set. Someone can write a separate plugin that will display a menu and issue the buddy_set command. I hate coding menus in sourcemod, console command is sufficient for me.
I believe what would be the best would be to create a script that would take the Steam ID and for every game that is played they are given a certain number (from now on referred to as stack points) based upon the number of kills and the game score they have. For example, if a player kills 20 people in their first game and has 45 points, they would have a stack point of (20*2+45) 85. Script records that this is their first game and divides their stack points by 1 (because only one game has been played and this will increase by one for every new game that is played). The next game the same player kills 15 people and receives 35 points making (15*2+35) 65 stack points. Now the script adds 85 and 65 together (these were the scores from the only 2 recorded games) and divides it by 2 (as there were 2 games) making his stack score 75. We could do this with every single player and each of the players could be automatically assigned to teams in a way that is most effective for making the stack scores as close as possible for each team. This would be a somewhat simple script to develop and it's a smart idea. It's also very unlikely to fail if wrote correctly. Oh I'm sorry, disregard this, if you guys are already developing a script then don't worry about this suggestion.
What You have suggested is a simplified version of what I implemented. Mine is much more complex. Thanks for feedback, anyway.
New version of the plugin has been installed on the BDS server and has been sent to [mush]Lion. getSkill() has been reworked to fix the bug that caused Your skill to be lower and lower the longer You play on the server. It would be good to know if the plugin does overrate the good players, what I mean is if 3 good players enter NF and some players enter BE, is the plugin estimating the difference of skill well. If it would be too high, one pro player could be faced against 10 noobs. If it would be too low, two pro players would be faced against only 3 emp_recriuts. I have set it to a value that I think can be right but I couldn't reliably test it. Basically it's a "how much the skill values" modifier. If You make a report, please paste the output of the "statsall" console command with a comment, thanks.
I dont think it must be absolutly even, one team needs a bit more skill so its not a stall forever...
I was testing the new plugin today. It's still a bit bugged, but i think the games were better balanced and felt better. I'm really looking forward to see it on KM.
Two bugs were detected and fixed today: statsall command gave improper results sometimes (summary was bugged) default skill value for new players was computed in the old way, which gave improper results (old was near 7 - the new one is near 1.67) One bug was detected but not corrected yet: If You join a team and someone leaves the other one and You want to switch to rebalance, You can be blocked by "You cannot leave Your team yet" We also had a bug that made the statsall command go a bit crazy. I must stop cacheing GetTeam() results in arrays, it doesn't speed anything up and it looks like there is a problem with it, and I must set mp_autoteambalance to 0 on plugin load (it can be an issue). All the games were very hard for both sides. The default-skill problem twisted the first two maps and we must remember that the plugin needs 2-3 maps to learn how the player plays. Someone told me that it could improove the plugin behavior if we would recalculate the skill of a player a few minutes after his first join and I think it's a good idea, so I'll implement it too.
Ok the plugin is up on ghost server for some days... I noticed following things: My score increases every game I play, it never decreases. I think thats a bug because I now have over 4 points and you start with 1,5. I can play as retarded as I want my skill just increases. BUG ?!?!?!?! It should try more to balance to even teams. I fought games with 13 against 17 players but the "teamscore" was even. If you make it to midgame with tanks its not really a problem but at the start with only infantry fight the "noobish mob" overruns even really good players It needs to gather the data of how good a player is faster. Because now the fact that every new player has 1,5 skillscore makes it hard to get even teams because everyone increases skill by just playing more games. I suggest to make the starting score you get if you join the server the first time higher. 3.0 ???? If the player is really bad it will drop to under 1.0 after one match. (Yes the score drops, but only if you are REALlY bad atm) Or if thats do-able make a menu that asks the player how good he is at the first time he enters the server. New to empires / average player / good player, yes thats all about how honestly the players are but I guess most wont set their starting score to a higher skill level as they are. (Hey the lower the skill level is the bigger is the chance to play with really good players) Another thing is that the balancer should try to get a good mix of all scores on the server. Ive seen may teams consisting of very good players and the noobs fail against a team of only average players (both teams had nearly even skillscore) They lost cause noobs are the worst you can get the are like people playing against you on the same team
There is an unknown bug on the ghost server that delays the mysql connection the plugin uses. Plugin says "give me the data about XXXX" and the mysql gives it after 40 or 90 seconds... While on all other servers mysql responded almost instantly (0.05 second, or something like that). We are still investigating it. The "noobs win against pro's" thing Mayama is talking about is trivial to fix. New skill computing algorithm has a value that's basically "how good good players are". We just need to lower this value, and TADAA!! problem solved. If You would set it to 1, all players (noobs and vets) would be worth the same. Now it appears it's just too high, because a team of vets loose against a team of noobs. Thanks for input. The other thing Mayama said, worries me. The skill should not increase constantly. That means a serious bug is there. I will investigate it.
Everyone, I'm all for autobalancing, but in Empires, it just doesn't seem to work all that well... I don't even know of one team balancer that server admins can download for Empires. There are lots of things to take into account. In CS:S, HLStatsX was the best ATB ever (people tried to over ride it by spamming team join, but it still worked pretty well). In Empires, we don't have anything. It falls to the admins to manage the teams 90% of the time. There's got to be some way to do this... In general, I think it's going to be an all or nothing kind of thing. If every server has it, then people will deal with it. If only some do, people will go elsewhere. It's gotta work, and work properly or else it won't do anything but get in people's way. Reef, If you need help with writing the plugin, I've been programming for the past few years, and I've done work in SourcePawn. I don't know if you made the KM server plugin or not, but how did you get it to use valve radio style menus?
recon, try the balancer first before you tell us your opinion. Its a fact that it works. And its a fact that its still a bit bugged
First of all, I'll respond to you Brutos... This balancer is not up for download anywhere, so how can I put on my server? Secondly, if it's bugged, how can you determine that it "works"? What happens if a bug pops up? Are all the teams messed up with no way to correct them without an admin? Based on Reef's post, it looks like he's taking all the important stuff into account. When the bugs are worked out, I'll be happy to use it. As I said before, if you need help Reef, let me know.
Its up on some servers, you can play there and see that the games can be better balanced. And by bugged, i don't mean logical program flaws, i mean that the algorithm produces uneven teams, by over/underrating some players. I mean 20 1.5 guys against 10 3.0 guys can be a valid game for the balancer.
Brutos: the skill value is NOT linear. For example if player one kills 5 times in 10 minutes, and player two kills 10 times in 10 minutes, skill(player one) != 0,5 skill(player two). I think it's possible that I've made a terrible mistake, that results in a heavy bug reported by Mayama. I need access to a live database to do some manual queries to see if that's true. I'm on it. The plugin is not ready for download because it has some heavy bugs like some data not inserting into the database properly (that would be the reason of no map stats for now), no menus, no console variables for admins (they are prepared, but I haven't took the time to actually connect the handles, register convars etc.) - recon could help there. But We will do this after the critical bugs have been eliminated. It's SourceMod's default for Empires. In fact, if You mess a bit with the sourcemod config files You can make it use the new menus, but then only buttons from 1-5 work. So we got back to valve style menus.
I'm talking about the valve radio style menus from CS:S... Is there any way to limit the max number of items so paging works properly?
There is a bug in the 0.6 branch of the plugin. I need someone who can make a select from 3 joined tables in a way that will NOT multiple the results :-/ I don't know mysql very well and this causes the problem.