Plugin Inquiry: Rank Balancer

SariselSarisel .::' ( O ) ';:-. .-.:;' ( O ) '::. Join Date: 2003-07-30 Member: 18557Members, Constellation
<div class="IPBDescription">prevent stacking</div>This comes from my idea for a ranking system for NS2.
<a href="http://www.unknownworlds.com/forums/index.php?s=8968266149059279872&showtopic=99836" target="_blank">http://www.unknownworlds.com/forums/index....showtopic=99836</a>

For NS1, something more practical:

I know that there are plugins to collect stats about players. This causes a lot of stat "whoring". Instead of getting rid of stats, make them invisible and make a plugin that balances teams by ranks.

The general idea is as follows:

1. The average rank of the two teams should not differ beyond a critical value.
2. Each team should have approximately the same number of highest ranked players (i.e. higher ranked players must distribute themselves amongst each team so that there isn't a significant difference between their numbers on each team.)

This would also factor in when autoassigning, so instead of randomly placing players on either team, there would be an algorithm that will separate players into groups - higher ranked and lower ranked - and then randomly assign them separately.

Without autoassigning, the server checks the team rank averages as players join up. As soon as there is a significant difference, higher ranked players are no longer allowed to join the team with the higher rank average and can only join the other team in order to balance the averages.

Comments? I think this is possible to make, I just don't have the coding knowledge.

Comments

  • GreyFlcnGreyFlcn Join Date: 2006-12-19 Member: 59134Members, Constellation
    Sounds like something you might find in Counter Strike,
    And then maybe adapt it to NS.
  • puzlpuzl The Old Firm Join Date: 2003-02-26 Member: 14029Retired Developer, NS1 Playtester, Forum Moderators, Constellation
    I know of two communities that already implement such a system. I'd love to see a community developed solution free for all server ops to use.
  • UnderwhelmedUnderwhelmed DemoDetective #?&#33; Join Date: 2006-09-19 Member: 58026Members, Constellation
    I think there already is a free plugin available that does this. I've seen it on Jigglypuff(?), it can be activated automatically or by server ops. If it helps to find this plugin, the players can type /stv in-game to see the rankings of players on each of the teams. The plugin does have flaws though, since it is limited to capturing stats on that server only. Everytime a new player joins, it is assumed that player has a rating of 0, even if they might be pro.
  • DepotDepot The ModFather Join Date: 2002-11-09 Member: 7956Members
    <!--quoteo(post=1596727:date=Jan 9 2007, 02:58 PM:name=Underwhelmed)--><div class='quotetop'>QUOTE(Underwhelmed @ Jan 9 2007, 02:58 PM) [snapback]1596727[/snapback]</div><div class='quotemain'><!--quotec-->
    I think there already is a free plugin available that does this. I've seen it on Jigglypuff(?), it can be activated automatically or by server ops. If it helps to find this plugin, the players can type /stv in-game to see the rankings of players on each of the teams. The plugin does have flaws though, since it is limited to capturing stats on that server only. Everytime a new player joins, it is assumed that player has a rating of 0, even if they might be pro.
    <!--QuoteEnd--></div><!--QuoteEEnd-->
    You're referring to the Metamod plugin <a href="http://www.nsmod.org/forums/index.php?showtopic=207" target="_blank">Balance on Death</a>. It could easily be modified to meet the criteria Sarisel wants.

    Sarisel, why not post in our <a href="http://www.nsmod.org/forums/index.php?showforum=2" target="_blank">Plugin Requests / Suggestions Forum</a> and reference to this B.O.D. plugin. We have some brilliant coders who could crank this out for you, particularly if I nudge them... <img src="style_emoticons/<#EMO_DIR#>/wink-fix.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink-fix.gif" />
  • mrcoffeemrcoffee Join Date: 2004-09-13 Member: 31666Members
    My experience with creating this for the YO server and it being operational since the beginning of Decemeber is that randoming people in groups of similar stats to split them evenly doesn't work as well as it sounds. We've just swapped from randoming by groups to an algorithm that puts players and their stats into a table, sorts the table by stats descending and then executes autoassign on them from the highest ranked player to the lowest. That way any noise you incorporate into the algorithm (cheers Wyzcrack! <img src="style_emoticons/<#EMO_DIR#>/smile-fix.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile-fix.gif" /> ) will produce more variation in the teams while still keeping them relatively balanced statistically.

    Balance by stats will never be perfect and player acceptance is tough to overcome as they won't like their team selection being taken away from them, but implementing it on YO has solved many of our stacking issues.
  • sawcesawce Join Date: 2002-12-14 Member: 10787Members
    edited January 2007
    <!--quoteo(post=1596727:date=Jan 9 2007, 02:58 PM:name=Underwhelmed)--><div class='quotetop'>QUOTE(Underwhelmed @ Jan 9 2007, 02:58 PM) [snapback]1596727[/snapback]</div><div class='quotemain'><!--quotec-->
    The plugin does have flaws though, since it is limited to capturing stats on that server only. Everytime a new player joins, it is assumed that player has a rating of 0, even if they might be pro.
    <!--QuoteEnd--></div><!--QuoteEEnd-->

    While I definitely understand what you're getting at here, the problem with having a centralized location for player stats (other than obviously finding someone to donate a SQL server) would be that plugins are required to be open source because of Metamod's license. This means that any server operator who installs the plugin would be able to fully see the source code, and could modify it (and innocently throw off stats) or even worse, he could intentionally report rubbish to the centralized server.

    With the per-server skill level, I couldn't imagine it would take terribly long for a newly recognized user's skill level to be placed in the ball park of where he belongs.


    I'm curious how these plugins that already exist calculate skill level. I've tried a couple ways and I never came up with anything that I was satisfied with. I assume they just go off of K:D ratio, but what about commanders? Or gorges?
  • DepotDepot The ModFather Join Date: 2002-11-09 Member: 7956Members
    B.O.D. parsed a Psychostats database to achieve balance, so it was a glorified "tweaked" k/d ratio that was used. The latest version of P-Stats is actually relatively accurate in determining skill levels.
  • puzlpuzl The Old Firm Join Date: 2003-02-26 Member: 14029Retired Developer, NS1 Playtester, Forum Moderators, Constellation
    edited January 2007
    I think it is a terrible idea to look at psychostats or hlstats for balancing teams, unless of course, you are balancing teams in combat. For classic, it's much more important to look at the more general personal win/loss ratio. Over large numbers of games, the win/loss ratio will be a composite of the appropriate factors that determine a players influence on a team's ability to win a round. The teams should be selected such that the average win ratio of both teams are equal.

    I don't think a centralised system is a good idea. There are too many factors that change as a specific player switches server. Someone who is effective on his local low-ping server might be a complete waste of space on the 180 ping server he likes to visit late at night. I think that if the right people with the right experience collaborate to produce a solid algorithm, amx plugin, sql schema and simple web interface for administration then serverops can build their own local database of steam ids.
  • DepotDepot The ModFather Join Date: 2002-11-09 Member: 7956Members
    Psychostats has the ability to "weigh" all weapons, including the buildings done by commanders and gorges. In effect it can be customized for CO, NS, or both, and would be an excellent source for parsing stats to balance teams.
  • puzlpuzl The Old Firm Join Date: 2003-02-26 Member: 14029Retired Developer, NS1 Playtester, Forum Moderators, Constellation
    psychostats can't measure a players contribution to the unpointed aspects of winning an NS game. E.g. building rts, defending critical locations, sneaking phasegates, reporting enemy behaviour, the choice of structure location ( e.g someone dropping 3scs in the hive gets the same points as someone putting them in more strategic locations ).
  • Pitman360Pitman360 Join Date: 2006-10-22 Member: 58086Members, Constellation
    yes thats very true, when comming i usualy find that there are those extreamly dependable people that make comming alot easyer, yet they dont always get the scores they deserve.
Sign In or Register to comment.