Git Product home page Git Product logo

evenmatch's Introduction

EvenMatch

A UT2004 mutator that provides special team balancing rules for public Onslaught matches.

Features

Team balance can be affected in many different ways:

  • Teams can be shuffled at match start in a way that tries to balance the potential team skill on both sides by aiming for only little difference in combined points per hour (PPH) for the players on each team
  • Particularly short first rounds (e.g. caused by skilled players joining shortly after match start) can be reset with another team shuffling and PPH balancing
  • After each round of a multi-round match, teams can be rebalanced to equal size
  • Players that join the match can be put specifically on the team that needs additional players
  • Players attempting to switch to the winning team can be forced to switch back to their original team
  • If teams get uneven during the match (e.g. due to leaving players), rebalancing by size can be triggered either automatically or on player request

Configuration

INI setting Name in webadmin Default value Description
ActivationDelay Activation delay 10 Team balance checks only start after this number of seconds elapsed in the match.
MinDesiredFirstRoundDuration Minimum desired first round length (minutes) 5 If the first round is shorter than this number of minutes, scores are reset and the round is restarted with shuffled teams.
bShuffleTeamsAtMatchStart Shuffle teams at match start True Initially assign players to teams based on PPH from the previous matches to achieve even teams.
bRandomlyStartWithSidesSwapped Randomly start with sides swapped True Initially swap team bases randomly in 50% of matches.
bAssignConnectingPlayerTeam Assign connecting player's team True Override the team preference of a connecting player to balance team sizes.
bIgnoreConnectingPlayerTeamPreference Ignore connecting player team preference True Ignore player preferences for a team color, allowing the game or Even Match to pick a team.
bAnnounceTeamChange Announce team change True Players receive a reminder message of their team color whenever they respawn in a different team.
bIgnoreBotsForTeamSize Ignore bots for team size True Don't count bots when comparing team sizes.
bBalanceTeamsBetweenRounds Balance teams between rounds True Balance team sizes when a new round starts.
bBalanceTeamsWhilePlaying Automatically balance teams while playing True Apply balancing during a round if the game becomes one-sided due to team size differences.
bBalanceTeamsDuringOvertime Allow balance teams during overtime False Whether to allow team balancing after overtime started. Applies to automatic and player-requested balancing.
bBalanceTeamsOnPlayerRequest Allow balance teams on player request True Whether to allow players to balance teams via 'mutate teams' or the configured teams call chat text.
bBalanceTeamsOnAdminRequest Allow balance teams on admin request True Whether to allow admins to balance teams via 'mutate teams' or the configured teams call chat text.
bDisplayRoundProgressIndicator Display round progress indicator False Displays a HUD gauge indicating, how close to victory either team seems to be. (This isn't a team balance indicator!)
SmallTeamProgressThreshold Small team progress threshold 0.3 Switch players from the bigger team if the smaller team has less than this share of the total match progress.
SoftRebalanceDelay Soft rebalance delay 10 If teams stay unbalanced longer than this this, respawning players are switched to achieve rebalance.
ForcedRebalanceDelay Forced rebalance delay 30 If soft balancing is unsuccessful for longer than this this, alive players are switched to achieve rebalance.
SwitchToWinnerProgressLimit Switch to winner progress limit 0.6 Only allow players to switch teams if their new team has less than this share of the total match progress. (1.0: no limit)
ValuablePlayerRankingPct Valuable player ranking % 50 If players rank higher than percentage of the team (not counting bots), they are considered too valuable to be switched during rebalancing.
RecentBalancingPlayerTime Recent balancing player time 120 A player who was assigned to a new team by the balancer will be considered a 'recent balancer' for this number of seconds.
UndoSwitchCheckTime Undo switch check time 30 A player will usually not be allowed to undo a forced team switch by EvenMatch for this number of seconds.
MinPlayerCount Minimum player count 2 Minimum player count required before doing any kind of balancing.
TeamsCallString Teams call chat text (empty) Players can 'say' this text in the chat to manually trigger a team balance check as alternative to the console command 'mutate teams'.
DeletePlayerPPHAfterDaysNotSeen Delete a player's PPH after X days inactivity 30 To keep PPH data from piling up indefinitely, delete PPH of players who have not been seen in this number of days.
PlayerGameSecondsBeforeStoringPPH Player in-game seconds before storing PPH 60 A player must have accummulated at least this number of seconds play time in the current match before his or her PPH will be considered meaningful enough to store in the database.
PlayerMinScoreBeforeStoringPPH Player minimum score before storing PPH 10 A player must have scored at least this many points in the current match before his or her PPH will be considered meaningful enough to store in the database.

Participating

If you are a member of the Omnipotents or CEONSS communities, you can participate directly in the corresponding forums. Each of them has an Even Match thread in the Mappers' Corner and The Creative Corner, respectively. Of course you are also free to contribute code via pull requests or report issues via Github's issue tracker. You can also just fork this repository and modify the code yourself within the (very generous) bounds of the "license"/terms of use.

One final thing: If you are going to build your own version from source, please use a unique package name so it won't interfere with the "official" version. Colliding package names may cause a Version Mismatch error for players who come in contact with both versions. I recommend modifying Build\ProjectName.cfg in your fork to include a specific suffix identifying your builds.

To build your copy of the mutator, simply clone the repository (or check out the trunk via Subversion, if you prefer that) to any folder you like and run make.cmd. It will automatically attempt to locate your copy of UT2004 and create the necessary folder structure to compile the package. If you installed UT2004 somewhere in the Program Files folder, you will probably have to run the build script as administrator. (It is generally recommended to install Unreal Engine 1 and 2 games in a path without spaces that can be written to without adminsitrator privileges.)

evenmatch's People

Contributors

cat1981england avatar therealwormbo avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

evenmatch's Issues

Check voice channel assignment for switched players

hardspike reported potential voice chat issues:

Feedback: the biggest problem is that players don't understand that they've been switched at the beginning of a match. They'll spend the whole 1st round voice chatting with the enemy. If I key "p" for Public and mention it over voice it seems they never hear me. That's been a problem for a long time. Maybe my Public chat is broken. Others seem to have trouble getting it through the head of the broken voice-chat player too. I can get it to work by logging in as admin and chatting normally, all players hear that, but I've got to remember to turn it off again or else Termy will learn that I've stolen the Kraken

Provide translations through other means than localization files

Most UT2004 players will understand English or even play the game in that language. However, some players prefer running the game in their own language because their understanding of the English language is not sufficient to immediately understand everything without an additional translation service.
For this audience, translation into the most-used European languages should be provided. I can provide German translations myself, but for other supported languages, such as Spanish, French, Italian or maybe Russian, I will have to rely on community help.

Additionally, these translations must be provided in a way that does not rely on clientsidely installed localization files, because these cannot be downloaded on-the-fly from a redirect server.

Provide statistical output related to balancing decisions

Considering the complexity of the balancing decisions, it would be helpful for understanding them if Even Match generated some output files detailing how it arrived at a particular balancing decision. For initial team shuffling that would be information like players an their PPH, while for mid-game rebalancing it would be information on why rebalancing was considered necessary and why players were picked or not picked.

Write a manual

As complex as Even Match has become, its lack of a manual really is a problem.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.