I'm still not entirely sure I'm comfortable with the potential outcomes. Stacking is simply a human phenomenon and given that there are still few active (played, as well as administrated) servers... I'd say that the Empires player community is somewhat delicate at the moment. What I despise more than griefers are the people who sit in spectator, whining, complaining, or waiting to get on a team they like. Not all stacking is with malicious intent, either. Winning isn't always the ulterior motive. I have a friend or two whom I enjoy playing with - I literally enjoy running around with them in my squad and accomplishing things for the commander. That's really a hard thing to keep up with if balancing systems are in place. I do like the buddy feature but... are we limited to only one? If that's the case, I'd call it next-to-useless, but it is nice to have nonetheless. It's a double-edged sword as far as I'm concerned. I don't like when people stack, but it happens in almost any online game available, even where there are auto-balancing systems in place. When people -aren't- stacking is when it hurts. I've also seen some cases where non-stacked teams wipe the floor clean with stacked teams, so a stacked team certainly isn't symbolic of an automatic win. Thanks for the plugin, Reef. I suppose only time will tell as to how players will react, and whether or not they'll stay in the servers or flee to other servers. Keep up the good work and improvements so that perhaps more people will not let this system hinder server population.
Yeah I got to try it out today and I think it works great. Compared to the older one I had a bad experience with on the training server a few months ago it's near flawless.. Good job reef.. Now we just need to get it on the american servers. :D
Like what? Please tell so I can improove it. Yes, I think so too. Could You please express Yourself more about the tweaking? What's the problem You have spotted? John Shandy: thanks for the comment. Before the plugin, KM was randomly assigning to a team unless playercount of one of the teams is larger than the other one. You were always forced to a team. The other thing was it didn't prevent skillstack... Notice that the diffrence between that and the new plugin is that the new plugin does the same job more accurately and with more logic. If teams are empty, You can choose a team. If both teams have equal skill (or near-to-equal), You can choose a team. You can be automaticly handled with Your buddy. Those are all improovments. How bad can it be? In the worst case we will get back to the old solution. I wonder if people will start moaning if We would do that. With the plugin there is less stack, more playing with friends and more choice of the team. I played few maps on a server with a plugin and I asked some players that play there. Everyone agrees that every (not-griefed) game on it is challanging and not instant. I only fear that maby the algorythm fails when it gathers much data. We'll see.
How is the current "Score" calculated? Lets start there. I will be honest, I didn't keep track of this thread because originaly I was against the idea of an autobalancer along the lines of what your suggested, but now that I tried it, I am alot more optimistic.
You just said that there was some "quirky behaviour" from the plugin and that it can be tweaked. Please tell me what's wrong with it then. The plugin gathers data about skills, kills, deaths, commanding time and playing time. It stores them per map per team, so we can implement a mechanizm that will will vary per map per team. For now it sums the data from all maps and teams (but it's effective enough, as we can see).
I think there should be a limit for kill-points you get from kills at the same time... A player is not more skilled because he minefarms 4 guys at once or luckly kills a full apc...
I agree but still think it takes more skill to get lucky kills... let's use my buddy Tyberian as an example.. Lets say he gets 50 points for repairing tanks/healing people/building stuff.. And I get 20 points for killing 10 tanks.. I'm the player that should be on the weaker team next round.. Some people can build all day but can't shoot a broad side of a barn when they need too.. And the people who can get a lot of kills can obviously build when it's needed.. I would say 1 point for regular points and 2 for kills.. Maybe it already does that cause there is a score and kills section..
I think the Plugin at one point kicked simon over to the stronger team; I don't know wether he did it himslef; but the points should not have allowed him to switch at all (That was during the Streets Of Fire Round)
Ok somethings wrong - i observed today players able to stack the teams, possibly due to one player having high points, but that person had been on server on his own for over an hour building a base and had accumulated a high points tally???? I think the points given for building or being commander should be less than Hit/kill points........... dunno if this helps
Shinzon: plugin can not swap players. It doesn't have that functionality implemented. Simon must have switched by himself. Plugin allows players to switch to rebalance. If You are in BE and skill(BE)*K > skill(NF), You will be allowed to switch. K is a tolerance modifier, I have set it to (afair) 1.15 or 1.10. It's not a bug, it's a feature! Melee: OneManArmy's skill is bugged indeed. I will investigate it. You guys shouldn't think about the plugin being unfair or fair. It has to keep the teams balanced. I have an algorythm in my head that will count weights of certain actions, f.e. commanding is rare so it would get high value and repairing is very common so it would get less value. The modifier would be from 0.66 (repairing) to 2.0 (defusing, commanding or something like that). It can float in other ranges too, but as I analyzed it, the above values shouldn't be bad. Repairing will still count and commanding will not give super-score. The problem is that implementing it will change all values. Hopefully we have some data collected on BDS server. The more we got the better it is. I can use BDS data to analyze algorythms and then I will implement the best one and we will test again. Thanks for feedback.
something yu mite wanna think bout is , can the commander get docked points for game lost, and extra poits for game won, good comm ?
Plugin's task is not rating commanders. I ignore many things I could gather about commanders because it's useless when balancing teams.
Unit tests ftw. End to end tests ftw. Testing by releasing ftl. If you want to truly improve Empires' code quality, start up with unit tests and end to end tests. A test shouldn't be building the system and runnnig it to see if it works...that leads to massive bugs getting into a release. The optimal balance plugin would make use of global stats to assess one's "skill" taking into account time played, and balance by that. Furthermore, the best balance plugin would also not force clan mates to go on opposite teams, as every now and then clan mates enjoy playing together...clans are kind of based on that idea.
Feel free to suggest an effective skill rating algorythm without testing it on any real data. Good luck. Ofcourse. Currently We do not have any global skill databases, so I implemented per-server skill database, so on a first few maps new player plays on a given server, his skill will be not exact. The longer he will play, the better will his skill be estimated. If someone has a free, reliable, global database system with a sourcemod api, please say so. Until then, We will use what We have. Plugin can already handle players in pairs. You don't have to be in the same clan, You tell a plugin who is Your buddy, he sets You as his buddy and then plugin handles You together. Handling larger groups would be pain in implementation, because players join in diffrent times. When some players already joined and some did not, We must assign them somehow, let's say split them 50/50. Then a 10-player CW crew comes ingame. How are we going to put them together? We must switch some players already assigned to a team (possibly voted commander). Then Ghosts come. What should the plugin do? Switch again? It's all very hard to determine, however if someone explains good solutions to all kinds of these situations to me, I might try implementing it.
Unit tests have nothing to do with a skill algorithm. They have to do with verifying your code functions, and finding bugs before you make your code live. Empires has never had anything of the nature afaik, and its testing is simply "does it build? If so, throw it at the players", which is a waste of both the player's time, and the dev's time. Take what clan mates all have in common: a tag. Register known tags ("=[BSID]=", ": ][ CW ][ :" and so on) and search for those in a person's in game name. If multiple people have those tags on, you can assume they are in the same clan. Or just give the player the option to type in a command that you would handle that states who that player wants to stick with, parse the input string into an array of names.
Afaik SourcePawn doesn't support unit tests. Even if it did, my plugin would pass all the tests I would make and it would still do wrong things (like give too many points for repairing comparing to other actions). You totally did not understand what I said. I'll put it that way: I will release the plugin source soon, so You will be able to see it and modify it if You want to and then maby You will be able to convince admins to apply Your patch, however as I said, implementing clan-grouping will be a big pain. But if You want to do it - I can't stop You! Detecting tags is not hard. The problem is what are You going to do with this data. Let's say We have three clans, 6 players each and they join a server in random order. What should the plugin do? When? How? ^_^ I really want to finish this plugin and move to coding Empires, but I need to finish it first. Two things will be added: - auto-weight of skills - core algorythm fix so it doesn't very slowly (but constantly) lower/raise skill the longer the player plays No estimates for now.
I'd say that as they join in the wrong order, it can do nothing - that's just the problem. However, you can bank on the fact that they will stick together for a long period of time - and the next round try to group them together.
The point of this is not to allow clans mates to play on the same team; the point is to balance the player skill so one cannot just APC rush and overwhelm the other team; there is already a buddy system in place, so you can already choose with whom you want to play with to an extent...