------------------------------------------------------------------------------ UT2K4 Skill Balancer V1 - Beta 8 - June 23, 2007 By: robster_craws and LukeNukem ------------------------------------------------------------------------------ ============================================================================ Installation ============================================================================ ZIP: Unrar into UT2004/system directory. All files will go in proper directories automatically. ============================================================================ Instant Action ============================================================================ - This mutator is not intended for Instant Action. ============================================================================ Hosting a server ============================================================================ - GUI: Same as starting an instant action. Just make sure to add the Skill Balancer V1 Beta8. - Command Line: The proper mutator option is: ?Mutator=SkillBalancerV1Beta8.mutBalance Also DO NOT ADD Skill Balancers to the server's serverpackages: [Engine.GameEngine] ... ServerPackages=.... <- Skill Balancer is a server side mutator, and is not required for clients to download ... ============================================================================ INI Setting ============================================================================ Included is a SkillBalancer.ini file in which you can set parameters. MinPlayersPerTeam (Default=0) Sets the minimum number of players per team. If there are not enough human players, bots will be added to make the difference. AddBotThreshold (Default=1) This setting does not apply in Beta 7 + AddBotScaleFactor (Default=2) A scale factor to determine bot skill when adding new bots. If the bots seem weak for some of the better players, try increasing this number. InitialPlayerSkill (Default=10) The skill level assigned to new players who have yet to garner a skill score. iMaxTeamDiff (Default=1) The maximum difference in human players on both teams before a bot is added. Leave this at 1 to keep the teams even at all times. bDebug (Default=False) Turn on debugging logs. Only use this to troubleshoot problems, as it will log a ton of stuff. bOnlyAdminBalance (Default=False) Set to true if you only want to allow Admins to call the "mutate balance" function to balance the teams. The balancing should occur automatically regardless of this setting. PlayerRankMinGames (Default=10) Set the minimum number of games required to be played before a player is ranked in the system. If new players that are not very skilled are ranking in the top 10, then try increasing this number. ============================================================================ In-Game Mutate Commands ============================================================================ To activate these commands, just enter into the console (by hitting the ` (thilde key) mutate teams (or mutate balance) Tries to balance the teams. mutate skills Provides a list of all players on each team (including bots), their skill scores, and the skill difference between the teams. mutate ranks Lists the top 10 players on the server, and also returns your rank (if not listed) mutate ranks XX Like mutate ranks, but lists the top XX players. XX can be one of the following: 50,100,150,200. usage: mutate ranks 150 ============================================================================ Upgrading ============================================================================ All V1 Beta XX versions can easily be upgraded, so you can skill keep player skill scores. Just open SkillBalancer.ini in a text editor and change the XX to 8: Change the "XX" in: [SkillBalancerV1BetaXX.mutBalance] to [SkillBalancerV1Beta8.mutBalance] ============================================================================ Update History / Change Log ============================================================================ V1.0 - Beta 8 - June 23, 2007 ----------------------------- - Slowed pre-game balancing down to once every 3 seconds. - Added setting MinPlayersPerTeam - Fixed "mutate skills" listing to include ranks - Added "mutate ranks 50" as well as 100,150,200 V1.0 - Beta 7 - June 21, 2007 ----------------------------- - Rewrote bot balancing routine - Added a new "mutate ranks" feature to display the top ranked players - Added setting PlayerRankMinGames V1.0 - Beta 6 - June 14, 2007 ----------------------------- - Added more checks to make sure internal array are accurate when people enter and leave server. (including going to spectate mode) V1.0 - Beta 5 - May 24, 2007 V1.0 - Beta 4 - April 26, 2006 V1.0 - Beta 3 - April 17, 2006 ============================================================================ Known Issues ============================================================================ [ ] UAdminMod will still balances players even if disabled ============================================================================ How it Works: ============= Everytime a player plays a game, their score is recorded, and a game count is added. So eventually you will be able to ascertain an average score based on the number of times played and the score for each game. Skill Score = Cumulative Score per Game/Number of Games Starting a New Game: ==================== When a new game starts, the players in the game are sorted by their skill score from highest to lowest. Then the teams are allocated via the following schedule. Score Rank Player Team ---------------------------- 1 1 1 2 2 2 3 3 2 4 4 1 5 5 2 6 6 1 ... ... ... If you notice the higest scoring player is assigned to a team, then players 2 and 3 are assigned to the same team. This compensates for if there are 3 skilled players, then the higher skilled player is on his/her own. I have done many number crunching tests, and this order seems to work the best overall. Players Joining after game starts: ================================== The whole premise of this is not to switch players to a different team. If a new player joins, and the teams are unbalanced, then a new bot is added to the team with the lower number of players. So the teams should always be the same number. Players leaving after the game starts: ====================================== If a player leaves, and one team is short a player, then a bot is added to compensate for the difference. Adding Bots: ============ Bot skill varies depending on the skill difference between the teams. If there is a difference in skill between the players, then the first bot added will have an appropriate skill (which is the difference) assigned to them. Additional bots added to make up the rest of the difference are the lowest skill bots. If a team has less players than the other but is more skilled overall, then lowest skill bots are added to even the teams only. ============================================================================ Many thanks to all ============================================================================ Thanks goes to the following people for helping me with the skill balancer: * Luke Nukem - He's my bro, and helped me with the pseudocode for this mutator. * Vito, Blockhead, Teck - They volunteered to host the mutator on their servers for testing. * Dragon Ranger - Thanks for testing it out for me. * SWS,PBG, Teck clans. Thanks for your patience and feedback. * UAdminMod & SeverExt Authors - Thanks guys for pointing me in the right direction for functions to use. * Blockhead & everybody from PBG - Thanks for the encouraging words. * EDGE & everybody from SAP - Thanks for testing and reporting feedback. * CVROY & everybody at WGS - Thanks for helping me get these releases out. I like to start things, but sometimes I need a litte push to get something out the door. * Anybody else I may have forgotten. Sorry dude, didn't mean to forget ya. Let me know, and I will thank you personally. ============================================================================ More Information ============================================================================ Please visit: http://www.whoshack.com or e-mail: robster_craws@whoshack.com