Game Advanced Balance Adjustment through Elo Rating in PVP Matching System
GCC Academy
Hello everyone
This is Park Hyung-seon from Action RPG Balance Game Planning
This time, I will discuss balancing
the PVP matching system using Elo Rating
In the previous lectures
we balanced the monsters and players
so that players could have fun when playing PV content, such as stages
Action MORPG games do not only have PV content
where players enter the stage and kill monsters
There is PVP content in the game, which can be said to be the ultimate goal of all players
I will explain the Elo Rating formula, how to apply it to actual practice
and the matchmaking system planning
Elo Rating
Working on matching balance in PVP content
Action MORPG games
do not only have PVE content
where players enter stages and kill monsters
There is PVP content in the game that can be said to be
the ultimate goal of all players
In PVE content, you collect and strengthen items
to get a high ranking in PVP content
I will tell you about the matching balance process in PVP content
In PVE content, you fight monster AI
The values ​​are adjusted according to the player's level and stage
And you get a reward
After getting the reward in the content
the ability value increases after equipping it
We looked at fighting monster AI in PVE content
In PVP content, players grow these characters
and then match them with their characters to fight
The main goal of MORPG games
is to grow characters stronger and get a high ranking
So, in many cases, you level up your character in PVE content
and then compete in PVP content
o get a high ranking in PVP content
users play PVE content
get rewards, and repeatedly strengthen their characters
In PVP content, when there is an imbalance in the balance
battles are conducted by randomly matching users
but if the matching system is not balanced, problems can occur
It may not be possible to have a fair match
and players may lose interest
Let's calculate the case where a user with a low item grade
or level matches a user
with a high item grade or level when matchmaking in PVP content
Let's assume that User A who is level 10
who is level 10 and has all of his items graded 1
and User B
who has item 40
and is level 40, are competing
When user A attacks, he deals small damage
and when user B attacks, he deals a lot of damage at once
If this happens, the game will be too trivial too trivial
and boring
and the opponent will be too strong
so no matter how well I control, I can't win
If this happens
players won't be able to enjoy PVP content
In the end, users will leave the game
Also, what if users with similar items or levels
but have a large skill gap due to their proficiency in the game are matched?
For example, if users A and B have
the same level and item grade level 30 and item grade 4
user A is not good at the game
He is not good at controlling
and user B is very good at the game
User B can play with user A using flashy controls and proceed with the battle
Of course, this is a real-time multiplayer PVP
not a non-real-time PVP
In that case
B won't have fun because he is too bad at controlling
Even if I win, I won't have fun
Also, in the case of A, who can't control
he might get angry because his opponent is too good
So, practicing can have a good effect
but if he keeps losing, he will give up in many cases
If he can't feel the fun of the PVP content, which is the ultimate goal
users will eventually leave the game
We need a system
that matches players
with similar abilities and skills
That's why we introduce scores and tiers that can quantify players' strength
You can think of tiers as ranks
f you match players with similar scores and tiers and have them fight
you can compete fairly
This tier and rating score system
is commonly used in games
with a matchmaking rule that
randomly matches players
Tiers are divided into leagues
so users are grouped and distributed
according to their skills, such as Tier 1, Tier 2, Tier 3, and Tier 4
Let's look at the gameplay of
real-time battle-based PVP content in MORPGs and action RPG
At first, players are given a score that quantifies their skills
Tiers are given according to the score
and rankings are given according to the score
At first, they will all have the same score and ranking
Then, when you click the Match button
similar opponents that meet the conditions are searched
and when the search is finished, the match is made, and the battle begins
Then, you will fight the opponent
Users A and B
gain or lose points depending on the battle results
Depending on the battle result, victory points and scores will change
and the ranking will be updated according to the changed scores
If tiers and scores were created to match users
with similar skills or specifications
how about giving points to the winner?
There is a balance in increasing or decreasing scores
and even if a tier and score system is created
you will not be matched with users with the same scores
Sometimes, you will be matched with users with lower tiers and scores than you
or you will be matched with users with higher tiers and scores
and you will fight and either win or lose
What if the score you gain when you win a battle against a player with a higher score than you
and when you win against a player with a lower score are the same?
You fought a player with a lower score than you and won
However, you only gained about 200 points
However, you fought a player with a higher score than you
It would be much harder
You fought hard and barely won
However, you only gained about 200 points
In this case, you would feel empty
because the reward is the same as your effort
The score you earned when you defeated the opponent above is the same
It would be empty if the difficult and easy opponents were the same
If you earned the same score without considering the tier or score of the player
you fought on the previous page
you would have challenged someone with a high battle difficulty
but since you earned a low reward
the user would have no choice but to react negatively
If you won with difficulty and your score from User B is the same
there is no reason to make it this difficult
That is why you don't want to fight
The distribution of bad points above causes the bad phenomenon
So, they don't want to meet high-score users
and only look for weak opponents
So weak opponents lose a lot
Then, if weak opponents lose, users will leave again
I will explain the concept of Elo-Rating in PVP content
Elo-Rating means that
competing with high-score people
has a greater effect on improving your ranking
than competing with low-score people
It is a scoring formula that allows you to get more points
by winning against high-score people
and fewer points by winning against
low-score people
Players with lower scores than you
can be judged weaker
and the battle difficulty will be lower
You will have a higher chance of winning easily
and if this happens, users will be convinced even if you get fewer points
However, if you lose
you may lose a lot of points, but the user will be convinced
So, if you apply the Elo-Rating formula
it is not like giving the same score of 200 points, 200 points
easy opponents, and difficult opponents
but if you win against an opponent weaker than you, you get a few points
However, if you lose
to an opponent weaker than you
you lose many points
This is what the formula looks like
Also, players with higher scores than you
can be judged to be stronger than you
and the battle difficulty will be high
Since there is a high possibility of losing
if you win, your score should increase significantly, so the user will be convinced
However, if you lose
your score should decrease slightly, so the user will be convinced
If you use the Elo-Rating formula
you apply this rule that when you play against a player with a higher score than you
your score increases significantly if you win
and decreases slightly if you lose
Information is needed
before calculating the points you lose and gain
with the Elo-Rating
At first, it is the score of your opponent and yourself
which is called a rating
That score is a victory point, so you can understand it like this
It is the final score that distinguishes the rank and tier
High ratings, scores, and victory points mean that
the level, item grade, and proficiency in the game are high
Still, a high score does not necessarily mean that the proficiency is high and the specs are good
but in the end, having good victory points means that you have won a lot and moved up
So, to judge fairly
victory points are skill
Victory points start at 1,000 points
f you have high victory points like 3,000 or 4,000 points, you are a skilled user
If you have good items, good control
or the sum of various skills
we think of victory points and rating points
as these figures of skill
At first, 1,000 points are often given
When you first start, you start with 1,000 points
and as users fight each other, the score increases or decreases
If there are two users
user B's rating score
is higher than user A's
2000 points, 1800 points
ecause user B's score is higher
it is judged that the grade or level of the item
the specs, or the control proficiency is relatively higher
As above, the scores of the two competing players
are needed for the Elo-Rating formula
To determine who has a more advantageous match
the scores of the two users fighting are compared
and the formula is used
Let's find the increasing and decreasing scores using the Elo-Rating
Another thing that is needed is the relative win rate
Based on your and your opponent's rating scores
the win rate is calculated to see which player has a more advantageous match
The relative win rate affects the rating score value to be readjusted
and this is what is readjusted
When two users with 1000 points and 1000 points meet
and one user wins, one gets 20 points and 1020 points
and another loses 20 points and becomes 980
The score changes from the original 1000 points
This is the readjustment of the rating score
Depending on the opponent's win rate
the number of points f
gained or lost due to a win or loss changes
For example, if user A with a low win rate wins
he will get relatively more points
and if user B wins, he will get relatively fewer points
When comparing users A and B
if the rating score is high, the win rate is judged to be high
and if the rating score is low, the win rate is judged to be low
Let's look at the formula
There are rating scores
User A has 1750, and User B has 2000
Assuming that a user with a score of 1750 and a user with a score of 2000 are competing
the formula for calculating the relative winning rate is
User A's winning rate is
1 plus 10 to the nth square
Calculate within the nth square
User B's score is 2000 minus
User A's score of 1750 divided by 400
and then take that number and multiply that by 10 to the nth square
Then take 1 of them
10 plus 10 to the nth power is the entire 1
This is how you get the relative winning rate
You can calculate it in Excel
Then, User A's winning rate is
0.191, which is about 19%
This means that there is a 19% chance of winning
User B's is 81%
If you add the relative win rate of user A and the relative win rate of user B
it should be 100% and 1
So, if you calculate the relative win rate of user A
you can calculate the relative win rate of the remaining user B
When the score difference is 250
user B has an 81% chance of winning
and user A has a 19% chance
And secondly, you calculate the rating score that changes
depending on the win or loss
Let's consider the case where user A, with a relative win rate of 19%, wins
Here, a value called the K constant comes out
The K constant is the amount of damage
absorbed by converting the defense power
we learned in the previous lesson into the defense rate
The defense constant is 1000 to 5000
It is a value that fluctuates similarly to this
It is a fluctuating value, but the average value is 24
So, the K constant will be fixed at 24 here
So, the new rating score
The new rating score is the final score
that changes after the win or loss
The new rating score is the existing rating score, the existing victory points
plus the K constant
The K constant is 24
24 times the win or loss constant minus the opponent's win rate
The win or loss constant is calculated as 1 for a win, 0 for a loss, and 0.5 for a draw
When you do this
the new rating score is calculated
as 1766
so User A gets about 16 points
and User B loses about 16 points
So, you subtract the remaining users with the same number of points
This is because this is a zero-sum game in victory points
so if victory points increase
or decrease later, it will affect the overall victory points
so no victory points and loss are all the same
So, since User A is a bad user
if he beats B, he gets more
So, the winning user A gets 16 points according to the formula
and user B decreases the number of points that user A gets
This is the Elo-Rating formula
On the other hand
if a user with a 19% win rate
loses rather than winning if user A loses
and if we calculate it as the same
we get a decrease of about 5 points
Previously, we gave 16 points
But since we judged that he won against an easy opponent
we gave him 5 points
So he loses 5 points, and user B
can only get 5 points even if he wins
This is the Elo-Rating formula
Let's look at the K constant that raises questions in the formula
Since the range of numerical fluctuations varies depending on the K constant
the K constant should not be touched carelessly
What happens if the K constant is large?
The range of numerical fluctuations will increase
and the range of rank fluctuations will also increase
If the K constant is small, the range of numerical fluctuations will decrease
That's why I mentioned tiers
Low rank, high rank
so the beginner zone, beginner zone has a large K constant
And the high level zone has a small K constant
If the K constant is 24 for beginner zone
the K constant for the high level zone is set to 5
and if the high level zone loses and gains too many points
the ranking will change drastically after just one or two games
So the high level zone loses and gains a little bit
and set the K constant low to around 5
But for the beginner zone, it'll not be fun in that way
so to lose and gain a lot
set the K constant large, like 24
How to check the points you're gaining or losing
If we simplify the formula
to make the score a little easier
the earned or decreased score is the K constant times
your score minus your opponent's score divided by 400
then 10 to the Nth square plus 1/1
so the formula is simplified like this
So, if we compare the score earned or decreased when the K constant is 24
with the score earned or decreased when the K constant is 30
the score earned or decreased when the K constant is 30 is higher
As you can see in the table
So, if you want to fluctuate the rank
set the K constant high
and if you want to fluctuate the rank, set the K constant low
So, setting the K constant differently for each tier is better
However, it is better to use a value of 24 or lower for the K constant rather than 30
If the K constant and rank fluctuation are low
it will not be fun for the lower-ranked users
They will feel bored because the score increases and rank fluctuation is too small
So, you need to make the K constant large
You can set it to around 24
Also, if the K constant is 24 for the upper-ranked tiers
they will go down a lot if they lose just one game
Then, they will not want to play
So, it is safe to set the K constant to around 5
The K constant currently used by the United States Chess Association
is a calculation method that was developed to measure and evaluate skills in chess games
and it is also a method devised by the Hungarian-born American physicist Elo
Also called Ele
In the chess world, the International Chess Federation
uses it as an indicator of
strength by borrowing the official rating
You can think of it as around 24
Since the Elo-Rating system is derived from chess
the United States Chess Association also uses variable key constants
Here's a concrete example
The score is the victory point
If you change the K constant to 32 for 2100 or less
2424 for 2100
or 16 for 2400 or more
you can modify it to fit the game
such as 32 for a low tier like Bronze
24 for Silver to Platinum
and 16 for Champion tier or higher
You can modify like this
So, when you create a league
or apply a PVP matchmaking formula
it's good to create a data table like this
However, not all games use a variable K constant
and if the calculation seems complicated, you can fix it to 24
Since it's difficult to set the K constant at first
you can start the service with 24 and after the data is accumulated
you can reset the K constant
It's okay to change the balance of the K constant during the service
Of course, you have to announce it
Matchmaking
You have to create matching conditions using the rating points
that the players have
and you have to make sure that you can compete fairly based on the matching
Let's create tiers using players' rating scores
and differentiate matching conditions, etc.
The tier types are Bronze, Silver, Platinum, and Champion
The higher the bronze, the lower the tier
Let's plan the tier division like this
Score 0 to less than 1500 points
The matching restriction max level is 20 or lower
and the matching plus minus matching score range is 150
Let's set it like this
Silver is 1500 to 2500
Platinum is 2500 3000 points
Let's set the tier for Champion from 3000 points or more
Matchmaking condition first
I looked at the column in the data table like this
and there is a matching restriction max level and minus matching score range
The first rule is this
Rating score
For example, if you have a score of 0 to less than 1500 points
If you scored 750 points, you would be in the bronze tier
But now, if that's the case
we first apply the plus/minus matching score
range of 150
If your score is 500
if you add or subtract 150
your score will be like that
We will look for users between 350 and 650 points
So
we will first look for them in the plus/minus matching score range
The second is the matching restriction max level
Even when we look for them in the plus/minus matching score range
there may be something bad
We may match users with levels that are too high
That's not good
Even if the score range is the same
the skill or spec gap will be too big
So we will create a level restriction like this, matching under 20
If they exceed the matching restriction max level, we will not agree them and will search again
in the plus/minus matching score range
If you do this and find it with plus or minus 150 points
and max level 20
but there are too few users in the game, an exception will occur
In that case, you should ignore the scoring system
and set an exception processing condition
to unconditionally match a random user
between plus 5 and minus 5 levels
based on a similar level
Let's organize the basic concept of Elo Rating again
Than competing with someone less skilled
competing with someone more skilled than you has a greater impact on improving your ranking
If you lose to someone less skilled than you, you will lose more points
but if you lose to someone more skilled
you will lose fewer points
That's it
And
if you compete with someone more skilled than you and win
you will get more points
If you compete with someone less skilled and wins
you will get fewer points
Then, the elements of Elo Rating
and the rating score
The higher the final score that determines the ranking, the better the skill
The highest rating sorts the rankings
Victory points
The tiers are also calculated based on the victory points
The relative win rate
The win rate is calculated based on the rating of each person participating in the competition
The win rate positively affects the rating value, which is readjusted depending on the win or loss of the competition
The adjustment refers to the final score at the end of the game
K constant
It affects the fluctuation range of the final score
that will be readjusted according to the win or loss of the competition
It is a number that cannot be touched arbitrarily
and the size of this constant determines the fluctuation range of the ranking
If this constant is large, the ranking changes drastically, if it is small, it changes less
K constant can be set to the optimal value only when actual statistics are generated
and until then, it can only be inferred
So you have to extract the data
and service
K constant value used for the initial PVP rank of the Guild Wars game was 30
It is said that the K constant value
was recently changed to 5 because it is old
About the formula
the opponent's win rate calculation formula
User A's opponent's win rate
It's 1 plus 10 to the nth power
1/User B's rating score minus
User A's rating score
The rating value calculation formula
is the new rating value, which is the existing rating value plus
K constant times the actual win or loss minus the opponent's win rate
The actual win/loss value is 1 for a win, 0 for a loss, and 0.5 for a draw
You can calculate it like this
Example
User A has a rating of 2000
and User B has a rating of 1750
The win rates of each opponent are as follows
User A's relative win rate of 1 plus 10
1750/400 minus 2000 divided by 400, raised to the nth power
and divided by 1
is 0.8083
Approximately 81%
And since the sum of their relative win rates should be 1
User B's relative win rate is 19%
If User A wins the game
the new rating is as follows
K constant will be arbitrarily set to 24 here
2000 plus 24 times
and the value inside
1 minus 0.8083, like this
It's 1 because they won
And the k constant is 24
It becomes 2004
And user B is minus 4.6
So
user A gets 4.6
and user B loses 4.6
If K constant is large, the win or loss of each game
will be very sensitive to the rating value, which will widen the range of fluctuations in the rankings
so K constant should be large for the lower-ranking players
and K constant should be low for the upper-ranking players
In this case, the fluctuations in the rankings of the lower-ranking players will be large
and as a result, the increase in the rating due to the win will be large
which will expand the entry of skilled players into the upper-ranking
On the other hand, the fluctuations in the rankings of the upper-ranking players will not be large
so they will have to work harder
to move up in the rankings
Let's review the K constant used by the US Chess Association once again
The K constant below 2100 is 32
and the K constant between 2100 and 2400 is 24
The K constant above 2400 is 16
If the calculation becomes complicated, using the K constant as 24 is okay
Let's decide the tier with this
The problem of the initial rating of new users entering the ranking competition
The Chess Association artificially gives a rating of 100 to new players
entering the ranking competition in earnest
It means that everyone starts with 1000 points
WoW
World of Warcraft also artificially gives a minimum rating of 1000
Since a person called Elo suggested a rating range of 1000 to 3000
you can think that the calculation is optimized for this range
But in recent games, it has gone up to 4000 and 5000
and that's because it happens when the game gets old
The formula for gaining and losing points
The one on the left is my score
and the one in the column in Excel 10 is my opponent's score
If you apply the Elo-Rating formula above 24
you can see how my score and my opponent's score change depending on the score
So if you win against a high opponent, you get a lot
if you lose, you get less, if you win against an easy opponent, you get less
and if you lose, you lose a lot You can see this through this table
Let's review the matchmaking system again
First, decide on a tier like this
Bronze, Silver, Gold, Platinum, Diamond, Champion
For example, let's say you set the tiers to 6 tiers: 0, 1200, 1500, 1500, 1800, 1800, 2100, 2100, 2500
2500 points or more
set the matching restriction max level to 20, 30, 40, 50, 60, 80
and set the plus/minus matching score range
to 120, 200, 280, 360, 440, 600
If you create a data table like this
and set the matchmaking conditions
matchmaking will be done before applying the Elo-Rating formula
The matchmaking conditions are to search within the plus/minus matching score range
look at the plus/minus score, look at my rank
and search in the plus/minus
Then, if the opposing user exceeds the matching restriction max level AI, it is searched again
If the conditions are not met,
an exception handling formula is applied
that unconditionally matches a random user
Thank you
A game balance planner is an attractive job that plans the game's system and content
sets the balance criteria
and balances the numbers
I will do my best to help you become a good game-balance planner
Thank you for your hard work
Thank you
Elo-Rating Matching Balance in PVP Content - Working on it Users play PVE content, etc., to get high rankings in PVP content, earn rewards, and repeatedly strengthen their characters
A system is needed that matches players with similar abilities and skills
If it is easy to win, users will be convinced even if they receive fewer points, but on the contrary, if the battle difficulty is high, users will be convinced even if they lose a lot of points
If there is a high possibility of losing, users will be convinced if their points increase significantly when they win, but users will be convinced if their points decrease little when they lose
Calculating the increase & decrease score using Elo Rating Initially, it is the score of the opponent and yourself, and the score is called Rating It means the final score that distinguishes the rank and tier
A high rating means that the level and item grade and the proficiency in the game are judged to be high (a high score does not necessarily mean that the proficiency is high and the specs are good)
Relative win rate is required Based on your rating and the opponent's, the win rate is calculated to see which player has the advantage Relative win rate affects the Rating value to be readjusted
Using the Elo-Rating formula, find the change in score according to win or loss STEP 1: Find the relative win rate of two users STEP 2: Find the change in Rating according to win or loss
Gain / loss score = K constant * (1 / (1 + 10^((your score - opponent score) / 400)))
Elo-Rating relative win rate calculation formula User A's relative win rate: 1 / (User B's Rating score - User A's Rating score) / 400
RATING value calculation formula: New RATING value = Existing RATING value + {K constant * (actual win / loss - opponent win rate)}
Matchmaking Matchmaking conditions 1. Find within +/- matching score range 2. Check if the opposing user is below the matching limit Max level, and if so, search again
3. If the conditions are not met, unconditionally match with 1 random user between +5/-5 of my level
Elo Rating Basic Concepts Competing against people with higher skill level has a greater impact on ranking improvement than competing against people with lower skill level
Rating value (score) The final score that determines the ranking The higher the value, the better the skill The ranking is displayed in order of those with the highest RATING value
Relative Win Rate The win rate is calculated based on the RATING values ​​of each person participating in the competition The win rate affects the amount of RATING values ​​that will be readjusted depending on the win or loss of the competition
Matchmaking Matchmaking system based on Elo-Rating points and level requirements