Lets brainstorm ideas on how to balance servers
Nordic
Long term camping in Kodiak Join Date: 2012-05-13 Member: 151995Members, NS2 Playtester, NS2 Map Tester, Reinforced - Supporter, Reinforced - Silver, Reinforced - Shadow
I see a thread on balancing servers at least once a week and even more often lately. Every one of them wants UWE to put in a system to balance the servers. What if we the players and server operators did it. Lets brainstorm.
What if server operators made it common practice to put the desired skill level in the server name. I have been seeing a lot of kkg servers lately and will only use them as an example. What if they did a kkg hive 1 (low skill), a kkg hive 2 (mid skill), and a kkg hive 3 (high skill). Doesn't have to be like that. It would just need a common format between servers. There are not that many server operators right now; I believe they have a steam group even. This will only work so well of course... I do think if it became common practice at the server level, and by word of mouth with the player base being so small, it could work reasonable well.
It doesn't even have to be that. The general idea remains the same. It would be a social experiment. If it did not work nothing would change. If it did work it would be great.
What if server operators made it common practice to put the desired skill level in the server name. I have been seeing a lot of kkg servers lately and will only use them as an example. What if they did a kkg hive 1 (low skill), a kkg hive 2 (mid skill), and a kkg hive 3 (high skill). Doesn't have to be like that. It would just need a common format between servers. There are not that many server operators right now; I believe they have a steam group even. This will only work so well of course... I do think if it became common practice at the server level, and by word of mouth with the player base being so small, it could work reasonable well.
It doesn't even have to be that. The general idea remains the same. It would be a social experiment. If it did not work nothing would change. If it did work it would be great.
Comments
it's a very good metric to start with
Everyone would have to have the mod. Might as well have UWE do it then so that everyone has it.
I am thinking something like a non modding non UWE that can just be done as common practice.
You see many KKG server cause they are filling them by redirects. So your example would not work there
A rookie join a "full" rookie server an gets redirected to the UBER-pro only server.
DISCLAIMER (for the always-ney-sayers): There is no optimal way to do it. It is simply not possible to create a system that will give you 100% balanced games. But there is a system that will give you a higher %age of good games than we have now. And we should try to achieve this. (Don't let "perfect" be the enemy of "good"!)
1.) I like this system the most, because it is easy to implement. Distributing players by a skill index into teams is mathematically trivial. Finding some good skill indicators is also not to difficult.
For example, average K/D, average Score/Minute, Wins and Losses would be enough to calculate a "Skill-Index". This could look like this: Index = 10 * KD + 10 * SM + Wins - Losses
ExamplePlayer1 ->
K/D = 1.2
S/M = 4.7
Wins = 311
Losses = 268
===
Index = 102
ExamplePlayer2 ->
K/D = 0.8
S/M = 3.7
Wins = 11
Losses = 35
===
Index = 21
A completely new player has a skill index of zero. Negative values are possible.
If someone votes to "balance teams", you take all skill-indexes from the players on the server and distribute them to the teams so the sum of the indexes of both teams are as equal as possible. (It's a simple sort algorithm to implement.)
The only expensive part of this solution would be a persistent global stat-tracker per player to determine the average K/D, S/M and Win/Loss over all the games a player has played. The devs would need to implement a way to get this values via lua so the players can create a mod that does this. Also, the stats-mod does that already and it would be very easy to implement the balance-feature into this mod.
There are already mods out there, that distribute players into teams looking at their scores in the last round. The problem is, that this doesn't work after a map change and that it can't use average values that are a better indicator than the single last game.
2.) This system would be huge lot more work. (And it was already tried during beta if I remember right.) Not only do you need persistent stats of every player for this too. You also need to make sure, that you find a server with a good ping. Also what are you doing after the round has finished? Even when you are on a server with the majority of people of your skill level, there are enough differences to create unbalanced teams in the next round. All in all, I can't really see this work.
3.) This system is used by RTS games. You join a lobby and you are pre-placed on a team (similar to a gather). The people are placed on the teams by the same balance formula like above to create an equal skill-index-sum. When both teams are full of players, all are automatically connected to an empty server (with good ping) and pre-placed on the teams and the game starts.
The function that choses a lobby of players for you should also make sure, that all people in the lobby have a good ping to each other. So you don't pair people from around the globe that would have a bad ping on the server that is than chosen.
The lobby should also have a chat window, so you can determine a commander before the game starts and so it is less boring to wait until enough players are there. All in all you can describe this system as a gather-lobby with balance function. But it is also more expensive to develop than 1.) or 2.)
Also, it needs enough players (that play the game and) use this function, so the waiting time in the lobbies don't get to long.
There are simply too many aspects of this game that aren't obvious to new/newer players. I've got over 300hrs and I still don't know htf to echo something. And, NO, scouring the forums for answers is not a viable solution to this problem. Even the wiki is barely acceptable and it's constantly outdated.
If you want people to know what they're doing and expect them to do it the "right" way, then you need a quick, thorough, and easily approachable trainer.
Not trying to dismiss your argument, but have you tried maybe clicking on the shift?
There is no obvious cue that says "now click here".
EDIT: also, I just took another look at the wiki and I see that Biomass has been added so it's moderately up to date. It is, however, clearly written by a programmer and comprised, almost completely, of block text. Virtually unreadable to someone who just spent money and wants to play.
I just used kkg. It could easily be 156 (low skill) also. My general idea would be a fourth possible approach. It is a social experiment. It would require a lot of community involvement. You said the name could be "Rookies get slaughtered here" and rookies would still join. I know they do currently as their are a few servers that say non rookie friend. I think my idea would mostly work givin enough time because the amount of players is small and the amount of server operators is far less. Greater than 50% of servers would have to have an indicated desire of skill level and all had it in the same format. Then the word of mouth begins with people talking about the new common format in the servers. Over time I think most players would gauge their own skill and join servers of appropriate skill level if the server is populated.
Its the only way it would be simple enough to be implemented that wouldn't be a useless "per server KD tracking" (using one of those ELO algorithms that was mentioned)
Whatever way server balancing is done, it needs to be simple and easy to implement or it probably wont happen.
Solves 90% of all balance problems. Should be done automatically by the server. Certainly "simple and easy to implement".
You know it's true. %-(
Or give them a 50% damage & armor nerf. They are looking for a challenge. %-(
And if you also kicked all the players that went 2/10. You will have effectively eliminated the upper and the lower class, achieving a communistic Natural Selection 2.
This is the opposite of the government style currently being implemented, which is the Facist, Evolutionary, Natural Selection ideology.
?????????????
Also, they can do other things (like harass RTs) where their KDR matters less*, so it's less of a problem for themselves too.
Finally, there are legitimate 2/10s, e.g. suicide harass and other suicide playstyles.
Technically, you could kick any class of players, e.g. everyone BUT the 25/2 people, or the 25/2 AND the 2/10 people. The only point is to have narrow skill distribution with as few game influencing outliers as possible.
But the majority has problems with the 25/2s and little problems with the 2/10s. So, in my opinion, it makes sense to only kick the 25/2s.
Also, I'm a bit offended that you judge my proposal as the opposite of facist. I'd like to think it is pretty fascist - blaming a small "elite" and then removing those.
I'm calling it the "Balance Endlösung"
The really interesting question is: would it work?
--
*Incidentally, the 25/2 players could also restrict themselves to non combat roles. But they don't do that because they don't have too. The good players (= potential 25/2s) who are nice and restrict themselves (and hence don't get to 25/2) aren't the problem.
God forbid that you kick the 2/10 players! Who else will the mediocre masses be able to farm, then? Yes, I can see why the 2/10 players are not a problem for you
You're just jealous that the 25/2 player is 'stealing all your n00b kills.' Get rid of the 25/2 currently, and you'll end up with two 10/2 players in their place. Then you'll have to kick those, and so on, until all you have left is 2/10 players who get the majority of their deaths by falling into voids or lava.
What an awesome game that would be.
The server browser already queries the server to know what players are on every server. If there was a way for the serverbrowser to know how many hours those players played ns2, a quick estimation of the server skill level could be made. This could the be compared to the hours played by the player and every server would the be marked as beeing the same, above or under the player skill level. Should be pretty easy to do and would solve many problems. Quake Live does something similar and it seems to work well there.
The problem is lack of players.
Used to play with some guys who would actually do this. Lead to some of the damn best NS2 games I've had.
No it's really, REALLY not.
Yes it is. Specially considering that its the easiest metric to get. You people with a similar amount of hours played will have a similar knowledge of the game. There will be skill differences, but at least the understanding of the game mechanics will be similar.
I would like to repeat my proposal from before more in detail.
Having a central infrastructure for skill ranking seems too complicated to do right now. So the best way to get some kind of indication of the skill level would be hours played.
What i propose is a system similar to quake live. Where you can see for every server if the server is populated by people with your level, above or under. This can be done all client side, all that is needed is to add the information of how many hours every player connected to a server played. Taking the average, median or something more complicated and comparing this value to the player browsing the servers could give the player an indication on which servers will be closest to his level. People in general will tend to pick server at their levels. Its reasonably simple to implement with a minimal amount of work needed by UWE. No central server is needed.
Now of course, its not a perfect system. If its sucessful and people like it, it could be expanded to be more precise, perhaps using the amount of points the player has on average during a game, amounts of games won etc. What exactly the metric would be is not important, what is important is that the way towards such a system is gradual and even the first step, while not perfect, would greatly improve the current situation.
The levels could be for example:
0-12 hours = rookie
12-50 hours = level 1
50-300 = level 2
300+ = level 3
The servers with players from the same level as the local player would be marked with a special symbol indicating him to join those if possible. The others would have a + or - sign to indicate that they are lower or higher.
As i said. Its pretty easy to implement. Add rookie only servers to the mix (servers where only people with rookie status can join, but rookies could join every server at any time if they want to) and you have a pretty nice system.
Give the green rookies a place where they can play around a bit in there 4 hrs time to learn some basics. (The maps, movement, Techtrees).
Also:
- Rookies cant join non rookie servers
- Remove the rookie entry in the options menu
- All the topplayers from ns2stats cant join these rookie servers
- Lets have servers tagged as :
rookie (only for rookies)
evolved (normal pubs where everyone can play but mastered players get an damage/hp nerf there)
mastered (a combination of playtime, ns2stats ranking and earned score) rookies cant join these servers
The first impression counts.
And if you get slaugtered in every game you played within the 1st 4hrs, you stop playing.
Another thing is:
The performance entry in the serverbrowser should show the average performance.
This is part of the 1st impression also.
If rookies join horrible rubberbanding servers, they stop playing too.