Server Browser - Skill Based Filter

male_fatalitiesmale_fatalities ausns2.org Join Date: 2004-03-06 Member: 27185Members, Constellation
edited July 2013 in NS2 General Discussion
Server Browser – Skill Based Filtering

yih0.png

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?

m2u6.jpg

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.

«1

Comments

  • JektJekt Join Date: 2012-02-05 Member: 143714Members, Squad Five Blue, Reinforced - Shadow
    Pretty awesome. Am for this.

    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.
  • male_fatalitiesmale_fatalities ausns2.org Join Date: 2004-03-06 Member: 27185Members, Constellation
    Jekt wrote: »
    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.

  • GhoulofGSG9GhoulofGSG9 Join Date: 2013-03-31 Member: 184566Members, Super Administrators, Forum Admins, Forum Moderators, NS2 Developer, NS2 Playtester, Squad Five Blue, Squad Five Silver, Reinforced - Supporter, WC 2013 - Supporter, Pistachionauts
    This would be a great first step towards a matchmaking system
  • RadmanRadman Join Date: 2013-04-05 Member: 184656Members
    I think win:lose should be the only metric taken into account in finding the "skill level" of players, since the only reliable factor in find a good player is how much they contribute to a win.
  • bizbiz Join Date: 2012-11-05 Member: 167386Members
    edited July 2013
    you still need to make fair teams

    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....
  • JektJekt Join Date: 2012-02-05 Member: 143714Members, Squad Five Blue, Reinforced - Shadow
    edited July 2013
    Realistically, K:D is the most prevalent factor an individual can have in determining the win of a team and should be largest factor in determining a skill reference. Or tied with points per minute. If they're dying a lot - they're not helping. While a good player can rack up a nice K:D and still lose the game due to the rest of the team being useless. The skill value of the player in this case should still go up.

    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.
    biz wrote: »
    you still need to make fair teams

    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....

    If a skill rating existed, this should happen also.
  • The_Flying_FishThe_Flying_Fish Join Date: 2003-11-30 Member: 23757Members
  • male_fatalitiesmale_fatalities ausns2.org Join Date: 2004-03-06 Member: 27185Members, Constellation
    biz wrote: »
    you still need to make fair teams

    You could take the same system and apply that to randomisation on teams.
  • IronsoulIronsoul Join Date: 2011-03-12 Member: 86048Members
    I agree that this should be implemented as is to see what would happen and if it would help.

    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.
  • NordicNordic Long term camping in Kodiak Join Date: 2012-05-13 Member: 151995Members, NS2 Playtester, NS2 Map Tester, Reinforced - Supporter, Reinforced - Silver, Reinforced - Shadow
    A first step is better than no step
  • sinkingmistsinkingmist Join Date: 2012-11-22 Member: 172905Members
    edited July 2013
    Would this work if the rating was self-determined (i.e. it's not assigned by some algorithm, but you select your own category), or am I overly optimistic about humanity?
    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.
  • HeatSurgeHeatSurge Some Guy Join Date: 2012-09-15 Member: 159438Members, Reinforced - Supporter
    edited July 2013
    This entire discussion is moot if whatever "system" is not forced on players, which I am personally against :-) .

    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.
  • inflictinflict Join Date: 2013-02-20 Member: 183218Members
    Who are going to teach all the rookies plus their arent enough to constantly fill a green server. I play on aus servers and most players will f1 randomize teams at the start of the server and 3/5 rounds are 30mins +

    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
  • male_fatalitiesmale_fatalities ausns2.org Join Date: 2004-03-06 Member: 27185Members, Constellation
    P.S. An easy solution to start- mid- round quitting is probably to increase loading time
    If players are given a choice, the majority will stack

    lol...
    I am against being forced to play on a certain side on a certain team
    Yes me too... Having forced random balanced teams as server variable would fix that problem though.

  • HeatSurgeHeatSurge Some Guy Join Date: 2012-09-15 Member: 159438Members, Reinforced - Supporter
    Servers dedicated to hosting "forced based on rank" games? And a choice to join them or "regular" servers?

    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.
  • RoobubbaRoobubba Who you gonna call? Join Date: 2003-01-06 Member: 11930Members, Reinforced - Shadow, WC 2013 - Shadow
    I've been thinking of such as system for a while. at the very least it would help us more experienced players to avoid servers that currently have 10 greens on. Would it be a perfect solution to all our matchmaking woes? Of course not. But it would be a damned good start!
    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...
  • JektJekt Join Date: 2012-02-05 Member: 143714Members, Squad Five Blue, Reinforced - Shadow
    edited July 2013
    L4D2 match making was a lobby system where a group of 4 people had to wait to be matched up against another group of players. What does that have to do with this exactly?
  • _Necro__Necro_ Join Date: 2011-02-15 Member: 81895Members, Reinforced - Shadow
    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

    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.)
  • ZaggyZaggy NullPointerException The Netherlands Join Date: 2003-12-10 Member: 24214Forum Moderators, NS2 Playtester, Reinforced - Onos, Subnautica Playtester
    So, like adding Difficulty: Beginner, Difficulty: Average, Difficulty: Veteran in front of server names?
    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?
  • RoobubbaRoobubba Who you gonna call? Join Date: 2003-01-06 Member: 11930Members, Reinforced - Shadow, WC 2013 - Shadow
    Zaggy wrote: »
    So, like adding Difficulty: Beginner, Difficulty: Average, Difficulty: Veteran in front of server names?
    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.

  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    edited July 2013
    Should show a message then if a rookie joins said server...

    "Prepare to be amazed at the players you're about to encounter, thems stuffs of legends"
  • male_fatalitiesmale_fatalities ausns2.org Join Date: 2004-03-06 Member: 27185Members, Constellation
    edited July 2013
    Zaggy wrote: »
    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?

    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.
    _Necro_ wrote: »
    If you meant of only choosing one of the two indicators, than is my question: why?

    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.

  • SarummaySarummay Join Date: 2013-04-02 Member: 184610Members
    The main problem I see is in how to measure skill, since kd is highly dependant on the server population, a medicore player can go with a kd of 5+ with no problem against a rookie team, but will probably end up having 0,2 or less against a pro team, so when two players with equal skill join two different servers, one with way worse players and the other with way better players, the first one would be ranked as very good, while the other one would be ranked as very bad, even so both have equal skill.
    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...).

    Jekt wrote: »
    Realistically, K:D is the most prevalent factor an individual can have in determining the win of a team and should be largest factor in determining a skill reference. [...]

    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.
  • NeokenNeoken Bruges, Belgium Join Date: 2004-03-20 Member: 27447Members, NS2 Playtester, Reinforced - Shadow, WC 2013 - Silver, Subnautica Playtester
    Say, if veterans start playing on thesame few servers all the time, while rookies start avoiding those servers, then realistically the K/D ratios of those veterans would start dropping over time, right? Seeing as how the level of opposition will be tougher compared to the average pub server.

    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? :)

  • Ghosthree3Ghosthree3 Join Date: 2010-02-13 Member: 70557Members, Reinforced - Supporter
    Not if it's elo based it won't.
  • JektJekt Join Date: 2012-02-05 Member: 143714Members, Squad Five Blue, Reinforced - Shadow
    edited July 2013
    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.

    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.
  • WobWob Join Date: 2005-04-08 Member: 47814Members, NS2 Map Tester, Reinforced - Shadow, WC 2013 - Shadow
    Sarummay wrote: »
    Jekt wrote: »
    Realistically, K:D is the most prevalent factor an individual can have in determining the win of a team and should be largest factor in determining a skill reference. [...]

    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.

    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
  • NeokenNeoken Bruges, Belgium Join Date: 2004-03-20 Member: 27447Members, NS2 Playtester, Reinforced - Shadow, WC 2013 - Silver, Subnautica Playtester
    Just out of curiosity, does anyone know how the rating and ranking values on NS2stats are calculated?
  • current1ycurrent1y Join Date: 2003-12-08 Member: 24150Members, NS2 Playtester, NS2 Map Tester, Reinforced - Shadow, Subnautica Playtester
    Zaggy wrote: »
    So, like adding Difficulty: Beginner, Difficulty: Average, Difficulty: Veteran in front of server names?
    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?

    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.
Sign In or Register to comment.