This post was automatically archived from Double ‘D’ (Discord Channel)

And Now For Some Deets.

But first, a quote:

The PUBG system is instead split across static ratings with no guarantee as to the population size in each. Worse still, the PUBG system uses such huge ranges that the majority of players will be under one category, and the VAST majority under just two categories. As a result, less than 0.1% 2% of the entire population will be sub-platinum, compared to 82% on

The PUBG medals could be more accurately replaced with:

Actively trying to lose

Requires permanent care and supervision

Can’t fully understand a mouse

Casual gamers

Frequent gamers

Bronze (alt, for ego, Gold)

Silver (alt, Platinum)

Gold (alt, Master)


 DR. Bonerwizard M.D. LLC says(via discord):
and here is the current distribution of ranks
seems….. a little biased
lol this is fucking hilarious
now i actually have mathematical proof that these ranks are meaningless
also fun fact, you start at 1600
which is plat
so right away, you can treat platinum as your baseline since people are going to either sink or float from their starting point of 1600
so real fast, primer on elo– the starting elo is important for how the system functions
if you start at 0, you can only go up and not down– so all of the people that lose and SHOULD go down stay at the same level as ALL new people, regardless of their skill
so obviously thats problematic for a bunch of reasons, simplest being that you dont watn to have to play with (or against) the worst of the worst just because you want to enter the ladder
instead most of the time you choose something towards the “middle”, and by middle i mean that from that starting point about half the people should climb and the other half should descend. if that distribution doesnt work like that (like if 70% of the population climbs ) then that usually means you are going to have a problem using that rank for anything purposeful
which makes sense because i see that pubg doesnt use rank to assist in matchmaking
so right now the distribution of people below 1600

Dr. Bonerwizard M.D. LLCToday at 8:06 AM

that pretty much says it all, the fact that each tier of ranks is predefined to be every 100 points means that the number of people in the ladder is meaningless– that is to say your actual rank has NO relation to the likelihood of you succeeding
which is what ELO is used to measure the “odds” of a player winning, NOT a measure of their skill (since skill is an unreasonable thing to quantify )
instead, we can infer a player’s skill by determining the odds of them winning a game, and then using those odds to adjust their rating(if you were expected to win, you will lose much more rating than if you were favored to lose). if you are going to infer a player’s skill based using an elo system, that generally means that you start with this definition:
with a difference of exactly 200 rating points between 2 players, elo predicts that the player with a higher rating has a 75% chance to win
the rest of the elo system’s values are based around that definition(edited)
you can extend this framework to work with multiple players, you just use the average elo of the team and plug it into the elo formula, which is :
1/[1+10^((Rb - Ra)/400)]

Where Ra is my rating and Rb is their rating.(edited)

now for evaluating the outcome of games
heres a nice blurb too i just found
The two primary factors in deciding scores and rankings are the ranks of the people playing against you, and the rank of people that have died around you. While your kills and deaths do have an effect on your ranking, it is very much diminished compared to your overall performance in the game. Since PUBG is a game of skill and strategy as well as gunplay, the player who gets to the top 10 with no kills will be given more score than the player who killed five other people but died before getting in the top 50.
Essentially, if you’re consistently surviving encounters with multiple people, that shows significant skill and thus is factored into your PUBG ranking and leaderboard position.
the way you figure out how to award points at the end of a non-binary game is by extending the system with k-factors
the k-factors represent some set of parameters that you are going to use to determine how well a player performed (aside from the final victory/loss outcome). Im sure they used k-factors to evaulate stuff like damage given, distance travelled, teammates healed., into actual rating points. the coefficients behinds these k-factors are usually hidden to prevent players from gaming the rating system instead of playing the actual game
and here is a naïve recipe for extending Elo to multiplayer games (games that have more than 2 teams)
the tl;dr is that instead of doing 1 elo calculation against to determine the odds of beating your opponent, you do two elo calculations (after the game) against the team that finished above you and the one that finished below you, and you use those two calculations to determine and update your new elo
also i think i just solved the issue of our ranks not updating immediately, if the above system is used then you wouldnt be able to compute a final elo until the next team after you has been eliminated
this may be old info, but they also may have kept it as is– your final rating is based on your survival rating and your kill rating
of this form:
Survival Rating + 20% of Kill Rating = Overall Rating
which i think is hilariously underweighted for eliminating another player

Dr. Bonerwizard M.D. LLCToday at 9:00 AM

finally, here is a lit of some potential k-factors.
Data fields

    DBNOs - Number of enemy players knocked.
    assists - Number of enemy players this player damaged that were killed by teammates.
    boosts - Number of boost items used.
    damageDealt - Total damage dealt. Note: Self inflicted damage is subtracted.
    headshotKills - Number of enemy players killed with headshots.
    heals - Number of healing items used.
    killPlace - Ranking in match of number of enemy players killed.
    killPoints - Kills-based external ranking of player. (Think of this as an Elo ranking where only kills matter.)
    killStreaks - Max number of enemy players killed in a short amount of time.
    kills - Number of enemy players killed.
    longestKill - Longest distance between player and player killed at time of death. This may be misleading, as downing a player and driving away may lead to a large longestKill stat.
    matchId - Integer ID to identify match. There are no matches that are in both the training and testing set.
    revives - Number of times this player revived teammates.
    rideDistance - Total distance traveled in vehicles measured in meters.
    roadKills - Number of kills while in a vehicle.
    swimDistance - Total distance traveled by swimming measured in meters.
    teamKills - Number of times this player killed a teammate.
    vehicleDestroys - Number of vehicles destroyed.
    walkDistance - Total distance traveled on foot measured in meters.
    weaponsAcquired - Number of weapons picked up.
    winPoints - Win-based external ranking of player. (Think of this as an Elo ranking where only winning matters.)
    groupId - Integer ID to identify a group within a match. If the same group of players plays in different matches, they will have a different groupId each time.
    numGroups - Number of groups we have data for in the match.
    maxPlace - Worst placement we have data for in the match. This may not match with numGroups, as sometimes the data skips over placements.
    winPlacePerc - The target of prediction. This is a percentile winning placement, where 1 corresponds to 1st place, and 0 corresponds to last place in the match. It is calculated off of maxPlace, not numGroups, so it is possible to have missing chunks in a match.
not all of those are necessarily used, but thats the set of values their api exposes
thats from a kaggle competition to train a machine to be a better matchmaker for pubg lol
ayyy now i have a development api key, i can write an app that uses the pubg api
Categories: Notes

Leave a Reply

Your email address will not be published. Required fields are marked *