Server Browser - Skill Based Filter
male_fatalities
ausns2.org Join Date: 2004-03-06 Member: 27185Members, Constellation
Server Browser – Skill Based Filtering
The aim of this topic is to open discussions about a possible implementation of skill-based server browser filter. It is intended as a ‘quick win’ alternative to match making.
A complete match making solution similar to CSGO / Dota / LoL has a large amount of logistical, technical and administrative overhead that I simply think is unachievable with the September Content update.
What does it look like?
I have designed a very quick ‘paint’ job of the end-solution. Please see screenshot above of 5 servers displaying a possible three ranks. The ranking of the server is dependant on an algorithm that will make a judgement on the average/median skill of players in that server. If 7/10 players in a server are pro, then the server would display a Veteran / 3 Chevron rank. I'm sure you get the idea...
Rookie – Green - 1 Chevron
The accumulated average skill of players in the server are in a number range indicating rookie.
Average – White – 2 Chevron
The accumulated average skill of players in the server are in a number range indicating Average.
Veteran – Red – 3 Chevron
The accumulated average skill of players in the server are in a number range indicating Veteran.
How is skill determined?
I see two possible solutions, I have ordered these based on simplicity.
1. Hidden Kill:Death Ratio / Win:Lose Ratio
2. ELO – Based off Ns2Stats.com
I am very aware that Kill:Death ratio or Win:Lose ratio is not a good metric for judging a players skill. However I am trying to design a system that is VERY EASY to implement and would achieve a quick-win.
How is average skill calculated?
Assuming we use method 1; calculating skill off KD or WL ratio.
KD/WL ratio of Player N + KD/WL Ratio of Player N+1 + …. KD/WL Ratio of Player N+x / Amount of players
Assuming we use method 2; calculating skill off ELO
Elo of Player N +Elo of Player N+1 + …. Elo of Player N+x / Amount of players
Proof of a working system?
I have based my design off the skill-based server browser filter found in Quake Live. It is not a perfect system, but it does give a general indication of rookie, average players and anything above.
The aim of this topic is to open discussions about a possible implementation of skill-based server browser filter. It is intended as a ‘quick win’ alternative to match making.
A complete match making solution similar to CSGO / Dota / LoL has a large amount of logistical, technical and administrative overhead that I simply think is unachievable with the September Content update.
What does it look like?
I have designed a very quick ‘paint’ job of the end-solution. Please see screenshot above of 5 servers displaying a possible three ranks. The ranking of the server is dependant on an algorithm that will make a judgement on the average/median skill of players in that server. If 7/10 players in a server are pro, then the server would display a Veteran / 3 Chevron rank. I'm sure you get the idea...
Rookie – Green - 1 Chevron
The accumulated average skill of players in the server are in a number range indicating rookie.
Average – White – 2 Chevron
The accumulated average skill of players in the server are in a number range indicating Average.
Veteran – Red – 3 Chevron
The accumulated average skill of players in the server are in a number range indicating Veteran.
How is skill determined?
I see two possible solutions, I have ordered these based on simplicity.
1. Hidden Kill:Death Ratio / Win:Lose Ratio
2. ELO – Based off Ns2Stats.com
I am very aware that Kill:Death ratio or Win:Lose ratio is not a good metric for judging a players skill. However I am trying to design a system that is VERY EASY to implement and would achieve a quick-win.
How is average skill calculated?
Assuming we use method 1; calculating skill off KD or WL ratio.
KD/WL ratio of Player N + KD/WL Ratio of Player N+1 + …. KD/WL Ratio of Player N+x / Amount of players
Assuming we use method 2; calculating skill off ELO
Elo of Player N +Elo of Player N+1 + …. Elo of Player N+x / Amount of players
Proof of a working system?
I have based my design off the skill-based server browser filter found in Quake Live. It is not a perfect system, but it does give a general indication of rookie, average players and anything above.
Comments
A skill ranking per player could be some combination of points per minutes, kill death ratio and win loss ratio.
If it is implemented though skill ranking gains need to be gained relative to the skill ranking of the server. Obviously K:D or W/L will go plateau when playing in a higher ranked server (against betters players on avg) and any changes to the players ranking needs to be adjusted with that in mind.
Yes, I thought of this as well but you will never have a situation in pub where 80%+ of the players are in the veteran category. Those vet players will have someone to kill enough to keep their KD high enough.
I believe the ELO system is a better solution, but K:D/WL would be easier to implement.
shuffle by skillrating would be better than segregating by skillrating
what if there are 5 veterans, 5 average, and 5 rookie on a server? like a lot of servers today
nothing is solved....
Points should also be important in determining it, active gorge play will put you at the top of the score board every time and res biting is hugely important.
I would put round W/L at the lowest of contribution factors.
If a skill rating existed, this should happen also.
You could take the same system and apply that to randomisation on teams.
I'm in favour of a simple points per death ratio or something. Or perhaps points per minute. I don't want to go into detail about how we rank individual player skill as this should remain very simple and use existing stuff in vanilla ns2 for now so that it can be implemented quickly. So I think Points : Death ratio or Kill : Death ratio would be best and simplest.
That would make it even easier to implement (then later, if necessary, a skill-determining algorithm could be implemented).
Another simple (albeit a very rough) rating could be playtime.
The vast majority of good players I see are all at least 600+ hours, quite a few over 1000.
It's very rare that I see a good player sub 200 hours.
If players are given a choice, the majority will stack :-) . Nobody needs stupid elaborate E-LO(L) formulas and KDR permutations involving the average weighted lerk play time of your second cousin.
People who have decent eyes, ears, and brain, know who is good and who is not after one or two NS2 rounds. And they can set up balanced games based on that. However, what do the majority choose if given a choice? First round stack, second round worse stack, third round epic stack (game takes 10 minutes to start because the enemy team quits and none of the noobs left wants to command because they don't know how and the few semi-experienced masochist players left don't want to command because they know it's a guaranteed loss and a waste of their time), fourth round server is dead because nobody will play against the stack.
That said, I am against being forced to play on a certain side on a certain team. A forced matchmaking system is a whole new can of worms, and brings twice as many problems as it does benefits. start- or mid- round quitting comes to mind.
P.S. An easy solution to start- mid- round quitting is probably to increase loading time - make shaders compile every time or something? That's probably what keeps me (and I'm guessing others) the most from switching servers as frequently right now... :-D
P.P.S. I just thought of something entertaining though - seeing edak being put with 11 noobs with lower E-LO(L) against 12 decent players :-D ... would be funny to spec.
I dont think it needs to be changed just people need to guesstimate the other teams possibility when starting a match. On aus servers there are alot of regulars where you can workout where the game may be fast or slow
lol...
Yes me too... Having forced random balanced teams as server variable would fix that problem though.
I can see that system being used by 100 of the 1000 people playing for a week. Maybe. And then it'll be a ghost town (case in point: L4D/2 team matchmaking - and L4D has 20 times the regular players of this game) :-) But maybe it's just my skepticism speaking.
If proof of concept works, you can envisage UWE implementing the mod into the client, which will help new players and those who don't follow forums to find servers that aren't way out of their skill range.
I'd try hours played first as a very rough and quick measure. Should be easy to implement, I think...
I like your idea. But I can't see this formula work. Why KD / WL? Example:
A player with a KD of 2 (=2 kills per death) and a WL of 2 (=2 wins per loss) has by your formula a skill of 1.
A player with a KD of 0.5 and a WL of 0.5 has also a skill of 1.
If you meant of only choosing one of the two indicators, than is my question: why? If we get the data anyway, we should use it to make the formula better. A simple mathematical formula isn't creating any overhead or something. It's basic arithmetic operations. Written in a few seconds. And it can avoid a multitude of problems. Like having a wrong indicator for new players, because their KD is wrong by to small samples.
A simple and working formula could be: KD * 10 + WL * 5 + HoursPlayed / 10
(The numbers can be changed to weight the variables.)
I like the idea, but how would you enforce this? What if green players join Veteran servers, do you kick them out? Or vice versa?
The way I have thought about this would be to colour code the servers based on the difference between the client's calculated skill (or hours played, whatever as a first test), and the mean/SD skill for the server. This means 2 different clients may get different colours for their server list. Hopefully, a newbie would see a fair few red servers in the list, and avoid those. Similarly, the experienced player might see lots of green servers, and avoid those, as the mod is telling you that the players currently on that server are less experienced/less skilled (insert metric here) than you. Ie avoid if you want a good game.
If you deal simply with hours played, this would be trivial to calculate.
@_Necro_ yes, the calculations are essentially trivial, but don't forget that the more numbers you need to look up for each player, the slower the whole process will become. Either the load for that lookup is done at the server level, or it's done more globally (requiring a server to track these things). If it's possible to use stats that are available to the steam client, that might be simpler and faster, however.
"Prepare to be amazed at the players you're about to encounter, thems stuffs of legends"
There would be no segregation, the rank of the server is not a pre-entry requirement. The rank of the server is calculated based on the players inside the server.
I am 100% against segregation.
This.
Why? Just to keep things simple and easier to implement. KD is a pretty fair and reasonable estimate of how much 1 player will influence a game.
With points/min you will have the same problem plus the fact that points are an even worse indicator, since killing a power node in an empty room gives the same amount as killing the power in the marine base. Also this would lead to even more points whoring, like killing the power in empty rooms or trying to get the points for building marine buildings (imagine the marines never getting past the first armoury because no one finishes it being to afraid to give away the points...).
Which is totally wrong, I commed games with players going 30:2 and never doing anything useful, never defending or killing a RT, never helping pushing something but whoring kills the whole game (like blinking in the marine base, killing the just spawned marine and blinking out), I rather have someone with 2:30 who killed 10 RTs and 3 phase gates on his own and frequently forces beacons, since he is way more useful then the first player.
So, wouldn't this then cause the server rating to drop as well, leading less experienced players to believe it's "safe" to play there, while it's actually packed with pros?
No idea how anyone can kill RTs and phase gates while not getting any kills. Are you sure it wasn't the first player doing these things? Generally you need to kill defending players to get RTs, and grind phase gates to take them down.
Even if you're right (you're not), the player getting a lot of kills is still carrying by forcing respawns and resetting position.
That's laughable. Top fragging players help stop pressure which gives your other team members the ability to kill RTs and stuff. And of course everyone knows it because everyone tries to join the team with the guy who went 30-2
There is nothing to inforce as players have the option to join whatever server they want. The idea comes from the fact right now experience players regularly pump stomp the living shit out of people with very little hours. This would give the experienced players the choice to avoid the servers with 75% rookies as well as give the rookies a choice to avoid the server that potentially has 3 div1 players playing.