Jump to content


  • Content count

  • Joined

  • Last visited

  • Days Won


Kate last won the day on September 17

Kate had the most liked content!

Community Reputation

231 Excellent

About Kate

Recent Profile Visitors

13125 profile views
  1. Q: What does Splatterladder? How does it work?A: The tracker scans in intervals all game server. Are on a game server more than 4 players the tracker takes a closer look and starts tracking. The game server supplies the tracker with map, player name, score/xp and other (for you as a gamer) not so relevant information. Only the difference between two scans get appraised. We try to keep the time between the two scans as less as possible to have an accurate statistic. Actual we have 90 seconds between two scans which gives us an accuracy of 95 % of the collected data. All game server get scanned every 30 seconds. If a server is empty the distance between the scans get bigger to save resources. You can see the current state of a server in the server details. Empty server will get scanned in a bigger time distance and it can happen that the tracker needs a few minutes to see that there are now players on this server. As soon as four players are on the server the tracker switch back to the 30 seconds interval. The tracker generates map based sessions which can seen by every player. Sessions longer than 3 minutes will allow into the player rating. Because of performance reasons sessions get deleted after 48 hours.Q: Why do you not take the accuracy as a base rating?A: Accuracy, as well as the Kill/Death ratio can not be ascertained with a game server scan. It would be only possible with the evaluation of the log file of every single game server (more than 2000 server) and is therefore not realistic. The only data the game server gives to the tracker is the name, ping and score/xp and with this you have to calculate.Q: Why are some player names cropped?A:Quake3 based server just deliveres 32 characters. This 32 charactes includes the color codes (^). All names with more than 32 characteres get cropped by the game server and therefore can not be recorded into the Splatterladder.Q: Playerinfo: What means Full Time and Rating Time?A: Full time is your time you ever played on a certain map. Lest your 5 months old score does not appear in the current ranking after the ranking every week your times get cut by a 0.8 factor and this is your rating time. The weekly cut of the rating time effects that the rating and ranking gets lazier. That means that not so good player need more than a good run and the good players suffer on tendonitis :). We think that this is just fair.Q: When get a player deleted in the Splatterladder?A: Each week the score gets abbreviated by 1/5 (multiplier 0.8) therefore the rating times are getting shorter and sooner or later the player will fall out of the valuation because of a too short rating time. After 100 days of idling players map data will get deleted. In case of absolutely inactivity the player will get deleted automatically.Q: How to add a buddy/server to my buddy list?A: Click on the player or server profile of the respective player/server you want to add. Click on the top right on "Options" and the options bar will open. There click on "Add to Buddylist"/"Add to Serverfavorites".Q: Where does the Score come from?A: The Score per Minute is your xp/min on the Map On the top of your Playerpage you have all Maps you played with your average Score and % after The % after are calculated from a basis were 100% are the average from all Players So if you rate 200%, you score 2 times more than the average Player Down the page you have your last Maps played with the actual Score the % after is your + or - rating from your average score of this map If you are rated 200% and you make 220% on the Map you will have +20% in this SessionQ: I'm not tracked on splatterladder, why?A: You use most likely a "tracker-signature". This guarantees that you only be tracked with this color-signature. If your signature is incorrect, you are not tracked on splatterladder. There are 95 percent of all sources of error. Please check your signature in the tracker settings or delete it.
  2. Version 1.0.0

    1 download

    // Axis Objective Descriptions 1 "Primary Objective:**Hold the road gate. Holding this will prevent the Allies from accessing the lighthouse." 2 "Primary Objective:**Defend the lighthouse! Make sure the bridge computer is repaired; this will keep the bridge down" // Axis Objective Descriptions 1 "Primary Objective:**Bust through the road gate. This will give you access to the bridge computer" 2 "Primary Objective:**Climb the lighthouse and destroy it! You'll need to hack the bridge computer to gain access."
    Install ET You can install original Enemy Territory from Splash Damage or you can install latest version from ET:Legacy. It is recommended that you have 2 separate ET installations, each in its own folder - one for playing online a the second to run your server with Omni-Bot. Many public servers have custom sounds, textures and menus. They can completely change the game. All these extra pk3 files will be downloaded to the first ET installation and your second installation will remain clean and usable. Install MODs Omni-Bot does not work with vanilla etmain. You need some mod. You can use our omnibot mod or you can choose some 3rd party mods. It's possible to have multiple mods installed. In Enemy Territory there are many 3rd party mods that support Omni-bot. Those mods may have extra settings which can be configured, refer to their documentation. The mods which work with the latest version of Omni-bot: Bastardmod ETBlight - cvars ETNam ETPub - cvars infected Jaymod - documentation included in full package legacy (default mod of ET:Legacy) - cvars N!tmod - cvars No Quarter - guide cvars silEnT mod - cvars Once you know which mod you are going to use you need to check which version of omnibot runs with that mod & version, you can find this here : Download the correct version of Omnibot Install Omni-Bot If you use ET:Legacy, you will find Omni-Bot already installed in the legacy folder. It may be older or newer than version from the Omni-Bot website. Download the latest version of Omni-Bot from here There is omni-bot folder inside the ZIP archive. Extract it. Omni-Bot can be installed to any location. It is not necessary to have omni-bot inside Enemy Territory folder. Create config file Many mods already have a config file (for example jaymod.cfg, silent.cfg, nitmod.cfg). They already have the cvars in them so you just need to edit them. If not you just simply need to add them. If your mod does not have any config file yet, create new file (for example server.cfg) and save it to mod's folder. The server configs CVAR's you need to add/edit are as follows Enable Omnibot To Enable omni-bots add: set omnibot_enable "1" A setting of "0" will disable the bots Set Omnibot Path Windows set omnibot_path = "C:\Your install folder\omni-bot" Linux set omnibot_path = "/usr/local/games/enemy-territory/omni-bot" Be aware Windows uses left-slashes '\' and Linux/UNIX based-systems use right-slashes '/' as separator-char. The omnibot_path cvar needs to be set to the absolute path of the omni-bot folder. If you are unsure of the absolute path, you will need to ask your server provider. Optional Flags This is an optional cvar, you only need to add it if you want to disable certain bot functions. set omnibot_flags "0" Add the following flags if required 1 Disable XPSave for bots 2 Bots cannot mount tanks 4 Bots cannot mount emplaced guns 8 Don't count bots (this affects the value of the cvar 'omnibot_playing' which contains the number of bots playing or -1 if this flag is set) Note: some mods may have other flags Optional Log Size Log files are written to folder omni-bot/et/logs. If the folder does not exists, log files are written to Enemy Territory game folder. File name is omnibot_<mapname>.log. set omnibot_logsize "0" Value -1 disables logging. Default value 0 enables logging, but files will be overwritten every match. Value greater than 0 means maximal file size in KB and also allows appending more matches to a single file. Run ET You can start ET from command line, but it's recommended to create a shortcut and put that shortcut to the start menu or desktop. On local home computer create shortcut to ET.exe or etl.exe in Windows, et or etl in Linux. On dedicated server use ETDED.exe or etlded.exe in Windows, etded or etlded in Linux. Right click & select properties Add parameters: +set fs_game noquarter +set com_hunkmegs 64 +exec server.cfg Replace the word noquarter with the mod you are using. It must be exactly mod's folder name. Replace server.cfg with your config file name. Some very large maps may need greater com_hunkmegs. Note: If you start ET without fs_game parameter, then you can choose MOD from the menu. Load map There are a few ways to load map in ET. Click on HOST GAME in the menu and then choose map name from list. See Running Omni-Bot Loading maps ET for more details. Open the game console and type /map <mapname> If you want to enable cheats, you must type /devmap <mapname> Add map <mapname> command to the server config. Bots will join game automatically during warmup only if you have configured maxbots.
  3. Kate

    50 knifes + knife

    Version 1.0.0


    1 / 50 knifes pack Author :ETc|#.Jay.# Serverside modification. You can use a pk3 file or a lua file. Using the pk3: Put the zzz_50knifes.pk3 file in your servers nitmod folder and use standart g_weaponscriptsdir. this should be in your nitmod.cfg set g_weaponScriptsDir "" Using the lua. put the knife.lua in your servers nitmod folder. add in your nitmod.cfg: set lua_modules "knife.lua" if you want to load more lua modules, use: set lua_modules "knife.lua yourotherlua.lua yourotherlua.lua and.lua and.lua and.lua" Both ways tested with nitmod only, the lua should work on every mod, if the weapon id is the same. in nitmod it is: 1 WP_KNIFE 2 / knife --[[ This lua changes the amount of knifes. Author : ETc|#.Jay.# for nitmod. Should work for other mods too. ]] Modname = "Knife Mod" Version = "1.0" function et_InitGame(levelTime, randomSeed, restart) et.RegisterModname( "Knife Mod 1.0" ) maxclients = tonumber( et.trap_Cvar_Get( "sv_maxClients" ) ) end function et_ClientSpawn(clientNum,revived) et.gentity_set(clientNum, "ps.ammoclip", 1, 25) et.gentity_set(clientNum, "ps.ammo", 1, 25) end
  4. Version 1.0.0


    Sources : http://omni-bot.invisionzone.com/index.php?/files/file/27-omni-bot-enemy-territory/ Read installation instructions on wiki. and look at the review for details http://omni-bot.invisionzone.com/wiki/index.php?title=Template:Install_Omni-bot_ET What's New in Version 0.86 === BOT === Added function MapGoal.SetEntity Added Wp.SetWaypointFlag parameter can be a regular expression Added WatchForEntityCategory can be used to detect landmines Added gm script can have UTF-8 BOM Added version number is printed to console when Omni-bot is initialized Improved bots join game faster after server starts if maxbots>0 Improved players info is in the Server table already in OnMapLoad Changed draw_goalroutes doesn't draw disabled routes Changed new waypoint has prone flag if the player is proned Fixed soldier with mobile mg42 does not shoot heavy vehicles Fixed goals with same names were swapped in NoQuarter Fixed waypoint_setname of closed waypoint Fixed command goal_save prints error if file can't be opened Fixed SetGoalRole printed error message if role was persistent and goal did not exist Removed path planners navmesh, floodfill, recast === MOD === Improved command /entitylist prints type names instead of numbers Fixed goal entities of multiple MG42s at the same position (on baserace map) Fixed function GetEntityOwner returned dead player after gold was dropped and taken by another player === GOALS === Fixed covertops don't steal uniform when carrying objective Fixed PLANT goal was always delayed 35 seconds even if defused Fixed medic don't deliver medkits to player who is mounting tank Fixed rendering of Stance property Fixed medic sometimes did not give medkits to revived player Fixed BUILD goal created by user could not be saved Fixed roaming bots were going to position of MOUNT goal Changed MinPlayersForMortar is number of players for one mortar (2*MinPlayersForMortar players are needed for 2 mortars) Changed MinPlayersForMobileMG is number of players required for one mobile mg42 Changed cover spot priority from 2.0 to 0.81 Changed medic don't team-kill player at mg42 Changed medic can revive nearby player when going to cappoint Changed only one medic or fieldops delivers supplies to a player Changed soldier with mortar asks for ammo less often Changed resetxp is enabled in all mods except etmain, but it must be enabled in shrubbot.cfg === SCRIPTS === Changed all bots disconnect if maxbots is 0 Optimized Util.ProcessMovers === WEAPONS === Changed bots get more ammo packs from ammo cabinets === COMMANDS === Improved cleargoalflags removes ammo, health, crouch and prone
  5. Kate


    thanks hope you will like the house and welcome we all here enjoy to play with you at ETS , you are a nice and fun player
  6. Kate

    happy birthday Toppy

    not too drunk ?
  7. Kate


    hunkmegs issues
  8. Version 1.0.0


    map s sources
  9. sources ETL Wiki Mapping and Textures - map makers’ page Links Important CVARs and commands for map makers and scripters Commands entitylist/entitylist X csinfo/csinfo X Debug start params and CVARS Editors pak0.pk3 file info Unused models/textures/data in genuine PAK files Missing models/textures in genuine PAK files Map optimizations Configstrings or the configstring The map runs into MAX GAMESTATECHARS EXCEEDED error Trigger names and names in *.script and *.sound files New assets How to see what’s inside the string? Map entities & avoid laggy servers How to find possible lag locations (the real ones) Legacy engine and mod info for mappers Engine Mod Must read for mappers Invalid images of shaders All about mapping & game assets. Feel free to add any info, links and hints about ET mapping. Links You’ll find interesting links for mappers and info about models & texturers on our link page. Also nice to know: ET Player Models Documentation and entity & spawns functions Important CVARs and commands for map makers and scripters Before any release of your map you should run the game with different commands and some CVARs set. Read this page to interpret the results and run both ways: game- and listen servers. Commands entitylist/entitylist X csinfo/csinfo X Debug start params and CVARS Run a map in developer mode: +devmap <mapname> +set developer 1 Run script debugging (X of g_scriptDebugLevel is the level of detail) : +set g_scriptDebug 1 +set g_scriptDebugLevel <X> Editors - under construction - pak0.pk3 file info Unused models/textures/data in genuine PAK files gameinfo.dat - default values for game type and some other obsolete values models/multiplayer/flagpole/flag_waypoint.md3 genuine logos Missing models/textures in genuine PAK files flak38 textures & model (aagun) Map optimizations While doing a map mappers can optimize the map and FPS with VIS-blocking, portals and other techniques but there are more things to optimize. Strictly speaking mappers should know some info before they start with editing in map editors so the map can even be used without issue on bigger servers. Configstrings or the configstring The configstring internally controls the game and is splitted into single configstrings. Configstrings are strings containing data related to the game and game state. These are set on the server, and automatically sent to each client. Each configstring is identified by a number, which is referenced by a #defined in the ET gamecode - see game/bg_public.h. A group of related configstrings up to 64 such as CS_MODELS, CS_PLAYERS usually have a symbolic name for the first value, with a number (entity number in the case of CS_PLAYERS) added to to get a particular value. Important to know: Each connected player adds about 140 chars to the configstring pk3 files on the server are part of the configstring (admins shouldn’t put more than 20-30 maps into etmain folder) Server side forced cvars are part of the configstring! Fireteams reserve configstrings (this is the most case for ingame MAX GAMESTATECHARS EXCEEDED error + object trigger info) When using colors 2 additional chars are added (player names, announcements etc) The map runs into MAX GAMESTATECHARS EXCEEDED error This happens when the configstrings size - the configstring in total - reaches the limit of 16000 chars. This bug is heavily dependant on how many maps/pk3 files are in path because all pk3s in path (fs_homepath and fs_basepath) are stored in the CS_SYSTEMINFO (see cmd: "csinfo 1") twice. By name and by checksum. It’s also dependant on how a map is designed and which settings are done by an admin (see above part "Important to know") What you can do as a mapper/scripter: Shorten the strings - all names! This starts with the name of your map or the name of the pk3 and ends with file names. In general keep names of any game objects short! The configstring is related to admin settings but also considers used names for objects of the map. What you can do as a server admin: Decrease your number of maps/pk3 files in paths (etmain & mod folder). Shorten the strings of names in your config files for bots, MOTD, hostname etc. Don’t force too many cvars. Use Venice map as reference - this map populates the configstring near the limit. In case of your server is stable with 32 used slots and venice ends with no MAX GAMESTATECHARS error (remember the fireteams) the rotation should be fine. The Legacy mod has got an additional command to get the size of the configstring. Console "csinfo" cmd will print the total size of the configstrings. You can also add a parameter to this command to print the content and size of a single configstring "csinfo 1". Trigger names and names in *.script and *.sound files Ensure trigger names aren’t too long. See CS_OID_TRIGGERS part in the configstring. Bad example: wm_removeteamvoiceannounce 0 "1944_nordwind2_axis_steal_tank" wm_removeteamvoiceannounce 1 "1944_nordwind2_allies_protect_tank" Better: wm_removeteamvoiceannounce 0 "ax_steal_tank" wm_removeteamvoiceannounce 1 "al_protect_tank" ... and bad sound definitions - see CS_SOUNDS: 1944_nordwind2_allies_tank_stolen { sound sound/vo/1944_nordwind2/allies/hq_allies_tank_stolen.wav voice streaming } Better: allies_tank_stolen { sound sound/vo/1944_nordwind2/allies/hq_allies_tank_stolen.wav voice streaming } The last example is even better if you shorten the path of name of the sound (w/o '1944_nordwind2’). New assets Whenever you add new assets or objects: Use short names. For names of: Shader definitions Files (sound, models) Finally if there are less chars in the configstrings the server has less data to communicate! How to see what’s inside the string? In ET main you can use the /configstrings server cmd to get some info about the string. Some mods have special commands. In legacy mod or NQ f.e. there is /csinfo or /csinfo <configstring_No>. Map entities & avoid laggy servers Above we did talk about game objects - the game entities. In total ET can deal with 1024 entities but for server games it’s recommended not to process more than 500 entities at the same time. One reason is that snapshots only store and process 512 entities - see MAX_ENTITIES_IN_SNAPSHOT 512. Mappers should know snapshot entities are a subset of game entities. They are created per client, related to the view and contain all the delta info for the gameplay. Entities are: players, events, triggers, game models, bullets, dropped weapons/items, spawns, movers ... Some of the these like bullets are probably never observed by mappers. It’s finally also of interest to know how the server is set up. How many med- or ammo packs are dropped on death? More players create more entities ... Run the /entitylist command on your map. Unfortunately this command can’t show all used entities. Some of them (tracers f.e.) are processed during a snaphot and are not cought by the entitylist cmd. From my experience servers start to lag when 'entitylist’ shows about 480 used entities in general. Depending on player/bot count. Maps starting with about 300 entities (no player connected) ensure high player counts. Maps as fueldump (about 400) start to lag when there are more than about 34 players connected. Simply add some omnibot waypoints to your map and start a local bot server. You’ll notice the player limit in your lagometer Obviously there is a conflict between nice looking (also good gameplay) maps and having no lags on the server. Just think about each entity when creating a map ... How to find possible lag locations (the real ones) From my experince (IR4) after dealing some years with the engine I figured out there is a real lag when many game objects have to be freshly rendered into the game (this isn’t a real surprise is it?!) You can reproduce these lags on stock maps especially when many players are on the server and in sight. Start a listen server with 20 bots (or join a populated game server) and enable the lagometer (cg_lagometer 1). Watch the lagometer at given map loctions - see attached screenshots: Fueldump near last asis spawn on the stairs and Goldrush path to first barrier (the popular route for bunny hopping). On both paths there are granted lag spikes. So what’s going on? It took me a long time to understand this probably because I don’t set the related debug cvar any day. At both locations there is a massive update of potential visibility data. Set r_showtris 2 (or see screenshots at bottom of page) to see what I’m talking about. Legacy engine and mod info for mappers The ETL engine and legacy mod support some extra options for mappers: Engine The Engine supports *.ogg sound files Mod Extra script_movers spawnflag 1024 - sets flamer damage only Extra trigger_multiple spawnflag 512 - trigger can be used by disguised players only Extra trigger_multiple spawnflag 1024 - trigger can be used when player is carrying an objective only surface parm 'slag’ in shader definitions enables mud movement in/under water entity misc_aagun is available and basically working see attached file (harc = 360, varc = 45) wm_set_main_objective command in map scripts does no longer expect a number (which did never work in all mods). In order to make it work use the target (not targetname!) of trigger objective info (TOI) and the affected team. See oasis.script of pak3 as reference - Example 'wm_set_main_objective "dynawall" 1’ - You’ll identify TOI entities via /entiylist cmd. - see ET_OID_TRIGGER. Must read for mappers Invalid images of shaders It turned out there are shaders defined with an invalid image (not in path). Whenever you include these in your maps ensure you add the given image explicitly. Don’t trust definitions of decals.shader file! Important - we did identify more shaders without image see https://dev.etlegacy.com/issues/992 Examples: textures/decals/corrosive_sign { qer_editorimage textures/xlab_props/sign_c17.tga (*not in genuine pak2*) polygonOffset surfaceparm pointlight implicitBlend textures/xlab_props/sign_c17.tga (*not in genuine pak2*) } textures/decals/burnm_01a { qer_editorimage textures/decals/burnm_01.tga (*not in genuine pak2*) polygonOffset surfaceparm pointlight implicitBlend textures/decals/burnm_01.tga (*not in genuine pak2*) } textures/decals/hay { qer_editorimage textures/props/hayd.tga (*not in genuine pak2 - textures/props/hay.tga is in path?!) polygonOffset surfaceparm pointlight implicitBlend - } fueldump.jpg - lag location (235,533 ko) IR4T4, 28.03.2016 08:37 fueldump_r_showtris_2_1st.jpg - r_showtris 2 enabled before (501,46 ko) IR4T4, 28.03.2016 08:38 fueldump_r_showtris_2_2nd.jpg - r_showtris 2 enabled after (774,583 ko) IR4T4, 28.03.2016 08:41 goldrush.jpg - lag location (254,839 ko) IR4T4, 28.03.2016 08:42 goldrush_r_showtris_2_1st.jpg - r_showtris 2 enabled before (551,919 ko) IR4T4, 28.03.2016 08:42 goldrush_r_showtris_2_2nd.jpg - r_showtris 2 enabled after (717,8 ko) IR4T4, 28.03.2016 08:43 aagun.zip (50,194 ko) IR4T4, 23.09.2016 12:30
  10. Kate

    hillytop_b5 + wayoints

    Version 1.0.0


    Original author: [tbh]Bloodwire (www.tbhguild.org) Adjustments by Loffy (higher framerate + omnibot optimising) Date : September, 2018 Editor : Gtk Radiant 1.6 Filename : hillytop_b5.pk3 Overall mission: This map is a dual objective map, with two identical bases. The objective for both teams is to steal 3 gold boxes. Objectives: Dynamite/protect the Main Base Wall Dynamite/protect the Basement Access Dynamite/protect the Side Bunker Steal/protect the Gold Crates Dynamite/build the Command Post How to install and play this map Place the file hillytop_b5.pk3 in your etmain folder, select it from the Host Game-menu or bring down the console and type: /map hillytop_b5 (then ENTER).
  11. Kate


    i agree 100% with you Pappy and i dont want to have guys leaving thinking than such guys cheat but i agree with wolfenstein about the : The gameplay, created by the "Wolfenstein: Enemy Territory" game developers, dictates how the game should be played, not me. It's an objective-based game that focuses on teamplay. There's plenty of "ETPro - Run & Gun" servers available where his kind are welcome to frag for kills.
  12. Kate


    sources LaserMoon @ discord https://dev.etlegacy.com/projects/etlegacy/wiki/Bayesian_skill_rating Bayesian skill rating Background What about XP Save? What else? Objectives Existing implementations Elo Glicko ETPub skill rating References Overview Limitations and possible improvements Evaluation TrueSkill References Overview Limitations and possible improvements Evaluation TrueSkill extensions References Various References Implementation Language Algorithm Extensions Map parameter Mod integration This page is work-in-progress. This page details the background of a possible Bayesian skill rating system implementation in Legacy mod. See also #403 for implementation details. Background Objectives: Implement a new, proved metric that can be used to compare skill of players over time Get rid of XP save (not XPs!) and all of its unwanted side effects Add some nice features built upon this system What about XP Save? ET implements XPs, which measure player’ scores based on specific actions (kills, construction, revive, ..) and are also used to control the various skill levels, similarly to a RPG. However, XPs don’’t give any indication of the real global performance of a player. As XP Save (which isn’t part of the original game) is usually enabled on servers, XPs merely only give a hint about the time the player has played on a specific server. Saving XPs also create some imbalance by enabling abilities of skill levels permanently (such as adrenaline for medics) which have never been accounted for in the original game balance, where XPs were reset at the end of matches or the end of campaigns. As FPS require skills in multiple areas like reflex, planning, tactical analysis or teamwork, with the relative importance of these skills depending on the map, game mode, player roles or team compositions, a *skill rating*’ could be defined as a metric measuring "all the parameters of a player that help his team to win". This can be measured by a probabilistic, Bayesian approach by simply looking at the output of a game instead of the various micro-parameters (such as accuracy, number of kill). Beside being global, one important reason why a skill rating system should only consider match results to compute the skill is that accounting for extra information given by micro parameters might be abused by players. This can be very detrimental to team-based games, where players would try to maximize statistics that boost their skill (e.g. their own number of kills or awards) instead of doing what is best for their team to win. What else? Beside rating individual players, a Bayesian skill rating system can be useful for predicting the outcome of matches in a multiplayer game rating the "match quality" during a given map, and keeping the teams balanced to, in theory, keep the gameplay entertaining Also, it can be used to track player ratings across multiple servers world-wide with a master server (global leaderboard) recommend servers to players based on the difficulty level of each server (difficulty matching) Additionally, analysis of collected statistics can give insights that lead to improvements in gameplay by: allowing server administrators to more fairly balance matches allowing level and map designers to either create more balanced maps, or recommend more appropriate time limits to create more balanced maps Objectives As a first step, a possible implementation should focus on giving useful information: skill rating match quality rating outcome prediction analysis of maps gameplay Once this is working in a satisfying way, additional features could be build upon to provide the following: team balancing centralized leaderboard matchmaking with players of similar skills ... Existing implementations Note: Bradley-Terry model model uses the Logistic distribution, while the Thurstone-Mosteller model uses the Normal distribution. The Logistic distribution seems to model real life data better than the Normal distribution (according to Chess players), but they are actually pretty similar. Elo Elo The most possibly prominent rating system in use today is Elo. A player’s Elo rating is represented by a number which increases or decreases based upon the outcome of games between rated players. After every game, the winning player takes points from the losing one. The difference between the ratings of the winner and loser determines the total number of points gained or lost after a game. In a series of games between a high-rated player and a low-rated player, the high-rated player is expected to score more wins. If the high-rated player wins, then only a few rating points will be taken from the low-rated player. However, if the lower rated player scores an upset win, many rating points will be transferred. The lower rated player will also gain a few points from the higher rated player in the event of a draw. This rating system is self-correcting. A player whose rating is too low should, in the long run, do better than the rating system predicts, and thus gain rating points until the rating reflects their true playing strength. Glicko Glicko The Glicko updating system improves over Elo by incorporating the variability in parameter estimates. Prior to a rating period, a player’s skill (θ) is assumed to follow a Gaussian distribution which can be characterized by two numbers: the average skill of the player (μ) the degree of uncertainty in the player’s skill (σ) Glicko models the game outcomes by the Bradley-Terry model and updates players’ skills after a rating period. Glicko performs best when the number of games per player is around 5-10 in a rating period. The Glicko-2 rating system improves upon the Glicko rating system and further introduces the rating volatility, which indicates the degree of expected fluctuation in a player’s rating. Though the Elo and Glicko ranking systems have been successful, they are designed for two-player games. ETPub skill rating ETPub implements such a metric with its "Player Rating", giving a normalized skill score. References Website: etpub.org Reports: A Bradley-Terry Artificial Neural Network Model for Individual Ratings in Group Competitions Hierarchical Models for Estimating Individual Ratings from Group Competitions Overview Type: Single layer neural network using Bradley-Terry model (Logistic distribution) // (identical to logistic regression model) The base abilities of the model is useful to determine player ratings by: allowing for weighting individuals dealing with rating uncertainty preventing rating inflation It is extended to take into account the “map-side effect the effects of time on gameplay the server difficulty The model allows for real time win performance prediction. Notes: Map-side effect Most maps were designed such that one side has a major advantage. Time effect Can be used for real time determination of match outcome probability, not actually useful to determine the outcome prior to the match. Server difficulty allow players performance comparison across servers more effectively gives us a measure of how difficult each server is, as this parameter can also be interpreted as the rating increase a given side expects for each additional player on that side. Servers where having additional players will not make up for the skill of the players are more difficult than those where a few extra players alone can decide the winner. Limitations and possible improvements Parameters: Rating uncertainty : The down side to this method of modeling uncertainty is that is does not allow for a later change in an individuals rating due to long periods of inactivity or due to improving rating over time. This could be implemented with a form of certainty decay that lowered an individual’s certainty value over time (see Glicko-2 rating volatility). Map side: a similar measure of uncertainty could be applied to the field-group parameters. Server difficulty: The accuracy of server difficulty comparison is affected by how often players move between servers. All associations are assumed to be additive and linear. They are additive in the sense that the skill of a given team is proportional to the sum of the skill of that team’s players. It does not take into account higher-level interactions between the players. It is linear because the effects of time and the number of players per team is assumed to affect the model in a linear fashion. Two approaches to improving the robustness of the current model include: Extending the current single-layer ANN to a multi-layer ANN Constructing a higher-level statistical model that allows for these additional complexities Evaluation The model accuracy is tested against predicting the matches used to estimate the model parameters. The data set used consisted of 4,675 matches, 5,145 players, and 14 matches on average per player. The results show the accuracy to be 72.5%, but this result does not seem to have been cross validated. TrueSkill The TrueSkill system is a more modern algorythm that has been developed by MicroSoft for its XBox matching service. It has the advantage over the ETPub PR that it starts very low and increases over time (like XPs), before stabilizing when the skill rating is accurate (like the ETPub PR). References Website: TrueSkill™ Ranking System TrueSkill™ Ranking System: Details TrueSkill™ Ranking System: FAQ Computing Your Skill Reports: TrueSkill(TM): A Bayesian Skill Rating System The Math Behind TrueSkill On Gaussian Expectation Propagation TrueSkill2: An improved Bayesian skill rating system Overview Type: Bayesian network using Thurstone-Mosteller model (Normal distribution) Allow multi players comparison Allow multi teams comparison Allow draw Allow partial play Allow partial update Allow uncertainty over time Allow match quality evaluation Allow win probability prediction Limitations and possible improvements No map-side effect parameter No time effect parameter TrueSkill can be expanded to take both of these parameters into account. They can be modeled with another Gaussian in the team performance factor. Evaluation The prediction error (fraction of teams that were predicted in the wrong order before the game) has been evaluated. However. this measure is dicult to interpret because of the interplay of ranking and matchmaking: Depending on the (unknown) true skills of all players, the smallest achievable prediction error could be as big as 50%. In order to compensate for this latent, unknown variable, we arranged a competition between ELO and TrueSkill: We let each system predict which games it considered most tightly matched and presented them to the other algorithm. The algorithm that predicts more game outcomes correctly has a better ability to identify tight matches. For TrueSkill we used the matchmaking criterion and for Elo we used the difference in Elo scores, s1 - s2. The Halo 2 Beta Dataset (v1.1) has been used to evaluate the model. It consists of various matches outcome, including small teams games (up to 4 players in 2 teams, 27539 games for 4992 player) and large teams games (up to 8 players in 2 teams, 1199 games for 2576 players). From this dataset, 80% has been used for data of training 10% has been used for testing 10% has been used for cross-validation Prediction errors has been shown to be 37.17% (or 62.83% accuracy) for small team and 29.94% (or 70.06%) for large teams. TrueSkill proved to be signicantly better at predicting the tight matches than Elo (buffed for team ranking). Convergence: The algorithm converges, for 2 teams with 8 players per team, after 91 games (average number of games per gamer that the system ideally needs to identify the skill level). This is quite slow to determine the skill rating But this slowness is good as a replacement of XP save! TrueSkill extensions References Score-based Bayesian Skill Learning (website): TrueSkill extension accommodating score-based match outcomes Score-based Bayesian Skill Learning (website): TrueSkill extension accommodating score-based match outcomes and home field advantage Various References Microsoft TrueSkill and the Art of Gaming Statistics Short introduction A Bayesian approximation method for online ranking (website): Approximate Bayesian network using Bradly-Terry model (Logistic distribution) Model-Based Machine Learning, Chapter 3: Meeting Your Match Deeper explanation Beyond Skill Rating: Advanced Matchmaking in Ghost Recon Online Model-based machine learning Why We Should Never Go Back to 1-50.. or The Death of the Halo Black Market: Interesting point of view on the effect of the ranking algorithm of the players behavior Rating systems with multiple factors A rating system for asymmetric multiplayer games Implementation We’ll implement TrueSkill, for the following reasons: Although the ETPub algorithm includes the extra map and time parameters, it severely suffers from a fixed rating uncertainty that TrueSkill actually manages properly. TrueSkill is also quite simple to implement and fast to compute in ET context, as the game doesn’t require more than 2 teams (no complex Belief Propagation required) and doesn’t have draw either. We could also extend TrueSkill for map-side and time parameters to improve it. Overview of work required: Implement rating database management Take time of clients that have disconnected before the end of the game into account Take time of clients that have disconnected then reconnected into account Extend algorithm with field parameter Extend algorithm with time parameter Extend win probability with field parameter Extend win probability with time parameter Add cvar in default config file (when ready) Implements useful commands (/rating, /allrating, ..) See also #403 for implementation details. Language Although a Lua implementation is available (FAF), a C implementation would allow tigher integration in the mod and ease future features development. Implement the base algorithm directly in C Implement players database management in Lua instead. This can be integrated to our Lua administration suite. What about map data collection? The mapvoting gametype already exist in C in the code, but it is based on a file format instead of DB. Let’s keep thing separate for now. Algorithm Basics Partial play Factor 1: What Do We Already Know About Your Skill? previous skill level (μ, σ) from somewhere (e.g. a player database) add some uncertainty (τ) to your skill’s standard deviation to keep game dynamics interesting Factor 2: How Are You Going To Perform? add in beta (β) Factor 3: How is Your Team Going to Perform? computing the performance of a team as a whole. team’s performance is the sum of each team member’s performance weight each team member’s contribution by the amount of time that they played Factor 4: How’d Your Team Compare? compare team performances in pairs subtracting team performances to come up with pairwise differences Factor 5: How Should We Interpret the Team Differences? comparison factor based on the team performance differences comparison depends on whether the pairwise difference was considered a “win” or a “draw.” we imagine that there is a buffer of space called a “draw margin” (ε) where performances are equivalent. Extensions Map extension We actually extend TrueSkill for map-side effect and time effect parameters: Additional Gaussian can be used in the team performance factor An optional cvar might be required as this requires prior map data collection Map parameter Approximate the map field advantage with a discrete Bernouilly distribution: p = probability of a team winning on a certain map (0 < p < 1) mean = p var = p * (1-p) Both map side and map time parameters are taken into account here, as the length of the map determines who is more likely to win. Note: Scaling of mean and var should be done by a factor of 2 * MU Number of required match before p is valid should be defined. For the more general binomial distribution B(n,p) with n = matches and p = prob, mean = np, var = np(1-p), and the normal approximation is N(np, np(1-p)) with n > 20 and p not near 0 or 1. See Binomial proportion confidence interval and g_playerRating_mapPad from etpub to stabilize the map bias mean early.
  13. Kate