Raised This Month: $7 Target: $400
 1% 

[ND] Team Balancer


Post New Thread Reply   
 
Thread Tools Display Modes
Author
databomb
Veteran Member
Join Date: Jun 2009
Location: california
Plugin ID:
2832
Plugin Version:
1.0.3
Plugin Category:
General Purpose
Plugin Game:
Nuclear Dawn
Plugin Dependencies:
    Servers with this Plugin:
     
    Plugin Description:
    Old 03-10-2012 , 17:26   [ND] Team Balancer
    Reply With Quote #1

    [NuclearDawn] Team Balancer
    by databomb

    This plugin overrides the in-game team balancer and provides a new balancer which looks at the rank of each player and makes sure the teams are even in skill.

    How does it work?

    Every 30 seconds a check is performed to see if the total skill level on each team is within an acceptable margin. If it's not then the least skilled and most skilled players are swapped.

    Skill? How is that determined?

    Skill is determined by an exponential algorithm based on rank. This system is designed so a team of rank 59 and 1 would not be considered the same as a team of two rank 30s. (The default settings make it so a rank 59 and 1 would be equivalent to two rank 15s.) There's also a general bonus provided for each player so that a team who is down 2 players will have less skill. Bots are accounted for in skill calculations and are assigned a negative value (all humans will have positive values).

    I keep getting swapped! HELP!!

    There are a few things you can do to prevent yourself from being swapped:
    • Play on the map longer than the other players
    • Be active with your team and the strategy
    • Getting swapped (yes! if you were already swapped then it's very unlikely you'll get picked again)
    Special Thanks:
    Snivilous for explaining some initial pitfalls with compnerds's team balancer.
    Kateana for testing and help.

    Features:
    Admin command (sm_stacked | !stacked) to check team skill levels.
    Admin command (sm_swap | !swap) to manually swap players.
    Admin command (sm_spec | !spec) to manually move idle players to spectator team.
    Admin command (sm_unstack | !unstack) to immediately force a team balance.

    Light-weight algorithms quickly determine the relative skill of all players.
    Warns a player they're about to be swapped in 30 seconds.
    Provides visual feedback to the players who are swapped.
    Prevents players who are swapped from joining their previous team.

    Future Plans:
    Add cvars to fine-tune the balancing algorithms.
    Add admin immunity.

    Change History:
    v 1.0.0 Initial Release
    v 1.0.1 Added admin commands to check skill and manually swap
    v 1.0.2 Prevents stats hit from swapping, Displays spawn menu after swap, and Makes swapped players less likely to get swapped in the future
    v 1.0.3 Added new check for unbalanced but unstacked condition and changed the least skilled algorithm
    v 1.0.7 Updated to 80 Max Rank, Added anti-stack blocking, Improved algorithm, !spec command
    Attached Files
    File Type: sp Get Plugin or Get Source (unstacker.sp - 854 views - 19.3 KB)
    __________________

    Last edited by databomb; 06-20-2012 at 22:40. Reason: v1.0.7
    databomb is offline
    databomb
    Veteran Member
    Join Date: Jun 2009
    Location: california
    Old 06-17-2012 , 21:30   Re: [ND] Team Balancer
    Reply With Quote #2

    Version 1.0.7 Posted!

    Changes include:

    Aggressively swaps for first 5 minutes
    Provides 5 minute delays for all other swaps (prevents swaps at the end due to rage quits)
    General algorithm improvements
    Added !spec command
    Added !unstack command
    Updated to 80 Max Rank
    Prevents swapped players from moving back
    __________________
    databomb is offline
    Calystos
    Member
    Join Date: Jan 2011
    Location: Terra
    Old 06-17-2012 , 22:06   Re: [ND] Team Balancer
    Reply With Quote #3

    A few ideas for future additions:

    Possibly add a log to keep track of whom got swapped, etc? As it might be handy to make sure the same person doesn't get swapped to one team, then back again, as have had players complain about that issue. (EG griefing)

    Due to bugs with bots might want to make sure to either not swap bots, or to kill then swap bots?

    Add options to either swap on death, swap immediately, etc?

    Also perhaps add some options such as those in the gscramble plugin for TF2 where you can select a partner, preferred team, etc?
    Calystos is offline
    Send a message via ICQ to Calystos Send a message via AIM to Calystos Send a message via MSN to Calystos Send a message via Yahoo to Calystos Send a message via Skype™ to Calystos
    databomb
    Veteran Member
    Join Date: Jun 2009
    Location: california
    Old 06-28-2012 , 07:43   Re: [ND] Team Balancer
    Reply With Quote #4

    Quote:
    Originally Posted by Calystos View Post
    A few ideas for future additions:

    Possibly add a log to keep track of whom got swapped, etc? As it might be handy to make sure the same person doesn't get swapped to one team, then back again, as have had players complain about that issue. (EG griefing)
    It already tracks this. Any player may type !stacked and detailed information will be printed to their console.

    Quote:
    Due to bugs with bots might want to make sure to either not swap bots, or to kill then swap bots?
    It already does this for both bots and humans.

    Quote:
    Add options to either swap on death, swap immediately, etc?
    It's a nice idea but people will do anything to avoid a swap. Putting swap on death will just make people hide out in a far corner of the map and the teams will continue to be stacked.

    Quote:
    Also perhaps add some options such as those in the gscramble plugin for TF2 where you can select a partner, preferred team, etc?
    Perhaps, but this level of sophistication for 50 servers is a bit much. If ND grows significantly then the partner system would be a good idea to add.
    __________________
    databomb is offline
    Reply


    Thread Tools
    Display Modes

    Posting Rules
    You may not post new threads
    You may not post replies
    You may not post attachments
    You may not edit your posts

    BB code is On
    Smilies are On
    [IMG] code is On
    HTML code is Off

    Forum Jump


    All times are GMT -4. The time now is 07:34.


    Powered by vBulletin®
    Copyright ©2000 - 2024, vBulletin Solutions, Inc.
    Theme made by Freecode