게임 심화편 PVP 매칭 시스템에서 엘로 레이팅을 통한 밸런스 조정
CC사관학교
여러분 안녕하십니까
액션 RPG 밸런스 게임기획의 박형선입니다
이번 시간에는 PVP 매칭 시스템에서
엘로레이팅을 이용한 밸런스 조정에 대해 이야기를 해볼까 합니다
이전까지의 강의에서는 플레이어가
스테이지와 같은 PV 콘텐츠를 플레이할 때
재미를 느낄 수 있도록 몬스터와 플레이어 간의 밸런스를 맞췄습니다
액션 MORPG 게임에는 플레이어가 스테이지 안에 들어가
몬스터를 처치하는 PV 콘텐츠만 있는 것이 아닙니다
게임에는 모든 플레이어의 최종 목적이라고 할 수 있는 PVP 콘텐츠가 존재합니다
엘로레이팅 공식을 알려드리고 실제 실무에 적용하는 방법과
매치메이킹 시스템 기획을 설명드리겠습니다
엘로레이팅
PVP 콘텐츠에서의 매칭 밸런스 작업하기
액션 MORPG 게임에는
플레이어가 스테이지 안에 들어가
몬스터를 처치하는 PVE 콘텐츠만 있는 것은 아닙니다
게임에는 모든 플레이어의 최종 목적이라고 할 수 있는
PVP 콘텐츠가 존재하죠
PVE 콘텐츠에서 아이템을 모으고 강화시켜
PVP 콘텐츠에서 높은 순위에 올라가기 위해서 노력을 하는 것입니다
PVP 콘텐츠에서 매칭 밸런스에 대한 프로세스를 알려드리겠습니다
PVE 콘텐츠에서 몬스터 AI랑 전투를 하죠
플레이어 레벨 및 스테이지에 따라 수치를 조정했습니다
그리고 보상을 획득하게 되죠
콘텐츠에서 보상을 획득 후
장착 후 능력치가 상승됩니다
PVE 콘텐츠에서 몬스터 AI와의 전투를 하는 것을 알아보았는데요
이런 것을 PVP 콘텐츠에서 플레이어들이 성장시킨 후
자기 캐릭터끼리 매칭해서 전투를 하게 됩니다
MORPG 게임의 주된 목적은
캐릭터를 더 강하게 키워서 높은 순위를 차지하는 것이죠
그래서 PVE 콘텐츠에서 캐릭터를 키워서
PVP 콘텐츠에서 대결하는 경우가 많습니다
유저들은 PVP 콘텐츠에서 높은 순위에 올라가기 위해서
PVE 콘텐츠 등을 플레이하고
보상을 획득하며 캐릭터 강화를 반복합니다
PVP 콘텐츠에서 밸런스가 맞지 않을 경우
유저들을 랜덤 매칭시키는 전투를 진행시키는데
이때 매칭 시스템의 밸런스가 존재하지 않을 경우 문제가 발생할 수 있습니다
공정한 승부를 할 수 없게 되고
플레이어들이 흥미를 잃게 되는 경우가 발생할 수가 있습니다
만약에 PVP 콘텐츠에서 매치 메이킹을 했을 때
가지고 있는 아이템의 등급이나
레벨이 낮은 유저와 높은 유저가 매칭될 경우를 산정해봅시다
레벨이 10이고
아이템 등급 전부 1등급인 유저 A와
아이템 40
아이템 4등급
레벨 40인 유저 B가 맞붙었다고 가정을 해봅시다
유저 A가 공격할 때는 적은 피해를 입히고
유저 B가 공격할 때는 한 번에 큰 피해를 입히고
이러면 승부가 안 나겠죠
그렇게 되면 게임이 너무 시시하고 재미없고
상대가 너무 세서
내가 컨트롤을 아무리 잘한다 하더라도 이길 수가 없게 됩니다
이와 같은 현상이 일어날 경우
플레이어들은 PVP 콘텐츠의 재미를 느끼지 못하겠죠
이렇게 되면 유저들은 결국엔 게임을 떠나게 됩니다
또한 아이템이나 레벨은 비슷하지만
게임의 숙련도로 인해서 실력 차가 많이 나는 유저끼리 매칭될 경우는 어떨까요
예를 들어서 레벨과 아이템 등급이 동일한
레벨 30, 아이템 등급 4의 유저 A와 유저 B가 있는데
유저 A는 게임을 잘 하지 못합니다
조작을 잘 하지 못하고
유저 B는 게임을 굉장히 잘합니다
유저 B는 현란한 컨트롤로 유저 A를 농락하면서 전투를 진행할 수가 있겠죠
물론 이것은 비 실시간 PVP가 아닌 실시간 PVP
멀티플레이의 경우입니다
그렇게 되었을 때
B는 재미가 없겠죠 너무 컨트롤 못하니까
내가 이겼어도 재미를 느끼지 못할 것입니다
또한 컨트롤 못하는 A의 경우에도
상대방이 너무 잘해서 좀 화가 날 수 있겠죠
그래서 연습을 해서 좋은 영향이 있을 수도 있겠지만
계속 지게 되면 사실 포기하게 될 경우가 많습니다
최종 목적인 PVP 콘텐츠의 재미를 못 느낄 경우
결국 유저들은 게임을 떠나게 되겠죠
비슷한 능력치를 가졌으면서
비슷한 실력을 가진 플레이어끼리
매칭을 시켜주는 시스템이 필요한 것입니다
그래서 플레이어의 강함을 수치화할 수 있는 점수와 티어를 도입합니다
티어는 등급이라고 생각을 하시면 됩니다
점수 및 티어가 비슷한 플레이어끼리 매칭시켜 전투를 하게 되면
어느 정도 공평한 경쟁을 할 수 있게 되죠
이와 같은 티어 및 레이팅 점수 시스템은
플레이어끼리 랜덤으로 매칭시켜주는
매치메이킹 룰을 도입하는 시스템을 가진 게임이라면
보편적으로 많이 사용합니다
티어 같은 경우는 리그로 나눠져 있어서
유저들이 1티어, 2티어, 3티어, 4티어
이런 식으로 실력에 따라 유저를 그룹화해서 배분하는 것을 뜻합니다
MORPG, 액션 RPG에서
실시간 전투 기반을 가진 PVP 콘텐츠의 플레이 과정을 한번 살펴보겠습니다
처음에는 플레이어에게 실력을 수치화한 점수를 부여합니다
점수에 맞는 티어 부여하고
점수에 따라 순위를 부여하겠죠
처음에는 다 동일한 점수와 동일한 순위일 것입니다
그 다음에 매칭하기 버튼을 누르면
탐색하기에서 조건에 맞는 비슷한 상대를 탐색하고
탐색이 끝나면 매칭이 성사되고 전투가 시작됩니다
그리고 상대와 전투가 되겠죠
유저 A와 B
전투 결과에 따라서 승점을 얻거나 잃게 됩니다
전투 결과에 따라서 승점, 점수가 변동이 되고
변동된 점수에 따라 순위가 갱신이 됩니다
실력이나 스펙이 비슷한 유저끼리 매칭시키기 위해서
티어와 점수를 만들었다면
승자에게 점수를 주는 방법은 어떨까요
점수를 상승시키거나 감소시키는 데 있어서도 밸런스가 존재하고
티어 및 점수 시스템을 만들어도
완전히 같은 점수를 가진 유저와 매칭이 되는 것은 아닙니다
때로는 자신 보자 낮은 티어 및 점수를 가진 유저와 매칭되거나
자신보다 높은 티어 및 점수를 가진 유저와 매칭되어
전투를 하게 되고 승리 혹은 패배를 하게 됩니다
자신보다 높은 점수를 가지고 있는 플레이어와 전투하여 승리했을 때와
낮은 점수를 가진 플레이어에게 승리했을 때 상승하는 점수가 같을 경우 어떨까요
본인보다 낮은 점수를 가진 플레이어와 전투를 하게 되었는데 승리했어요
그런데 점수를 200점 정도 획득을 합니다
그런데 자신보다 높은 점수의 플레이어와 전투를 하게 됩니다
훨씬 더 어렵겠죠
어렵게 어렵게 전투해서 겨우겨우 승리했습니다
그런데 점수를 200점 정도 획득합니다
이렇게 되면 힘을 들인 거에 비해서 보상이 똑같으니까
허무한 기분이 들게 되겠죠
위의 상대를 이겼을 때와 획득한 점수가 같다
힘든 상대와 쉬운 상대가 같으면 허무할 것입니다
이전 페이지에서 상대한 플레이어의 티어나 점수를 고려하지 않고
동일한 점수를 획득했으면
전투 난이도가 높은 사람한테 도전을 했지만
보상이라고 할 수 있는 점수를 낮게 획득했기 때문에
유저가 안 좋은 반응을 할 수 밖에 없습니다
아니 힘들게 이겼는데 유저 B한테 얻은 점수랑 같으면
이렇게 힘겹게 할 이유가 없다
그래서 전투를 하기가 싫죠
잘못된 점수 분배로 위와 같은 안 좋은 현상이 생기게 됩니다
그래서 점수 높은 유저를 만나기가 싫어하고
전부 약한 상대만 찾게 되죠
그래서 약한 상대는 또 많이 지게 되죠
그렇다면 약한 상대가 지면 유저들이 또 이탈을 하게 될 것입니다
pvp 콘텐츠에서 엘로 레이팅 개념에 대해서 설명드리겠습니다
엘로 레이팅이란
자신보다 실력이 낮은 사람과 경쟁하는 것보다
실력이 높은 사람과 경쟁하는 것이
순위 향상에 더 큰 영향을 준다는 것입니다
자신보다 실력이 높은 자와의 경쟁에서 승리하여
더 많은 점수를 얻게 되고
실력이 낮은 자와 승리하면 적은 점수를 얻도록 하는
점수 부여 공식입니다
자신보다 점수가 낮은 플레이어는
자신보다 약하다고 판단할 수 있으며
전투 난이도가 낮겠죠
쉽게 승리할 가능성이 더 높아지며
만약에 이럴 경우 점수를 적게 받아도 유저는 납득할 것입니다
하지만 반대로 패배하게 될 경우
큰 점수를 잃을 수 있지만 유저는 납득할 것입니다
그래서 엘로 레이팅 공식을 적용하면
똑같이 200점 200점 이렇게
쉬운 상대 어려운 상대 이렇게 해서 똑같은 점수를 부여하는 것이 아니라
나보다 약한 상대를 이기면 점수를 조금 받고
근데 나한테 약한 상대
굉장히 쉬운 상대에게 패배하면
내 점수를 크게 잃는 이런 룰을 적용하게 됩니다
공식을 쓰면 이렇게 됩니다
또한 자신보다 점수가 높은 플레이어는
자신보다 강하다고 판단할 수 있고
전투 난이도가 높겠죠
패배할 가능성이 높으니까
승리할 경우 점수가 크게 상승해야 유저는 납득할 것입니다
하지만 패배를 할 경우
점수가 적게 감소해야 유저는 점수에 납득할 수 있을 것입니다
엘로 레이팅 공식을 쓰면 이렇게
본인보다 점수가 높은 플레이어와 대결했을 때
이기면 점수가 크게 상승하고
패배해도 점수가 적게 감소하는 룰을 적용합니다
엘로 레이팅으로
잃고 얻는 점수를 계산하기 이전에
필요로 하는 정보들이 존재합니다
처음에는 상대와 자신의 점수이며
해당 점수는 레이팅으로 부릅니다
해당 점수는 승점, 이런 식으로 이해하시면 되겠습니다
순위 및 티어를 구분하는 최종적인 점수이고요
레이팅, 점수, 승점이 높다는 것은
레벨 및 아이템의 등급과 게임에 대한 숙련도가 높다고 판단이 되고
하지만 점수가 높다고 무조건 숙련도가 높고 스펙이 좋다는 의미는 아니지만
그래도 결과적으로 승점이 좋다는 것은 많이 이겨서 올라갔다는 얘기입니다
그래서 공평하게 판단하기 위해서
승점이 실력이다
승점이 1,000점부터 시작하는데
3,000점, 4,000점 이런 식으로 높은 승점을 가지면 실력이 높은 유저고
아이템이 좋거나 컨트롤이 좋거나
또는 여러 가지 실력의 합산이다라고
승점, 레이팅 점수를 실력의 이런 수치로
우리가 생각을 하는 것입니다
처음에는 1,000점을 부여하는 경우가 많습니다
처음에 시작할 때는 1,000점으로 시작해서
유저들끼리 싸워서 올라가서 승점이 높아지거나 낮아집니다
유저가 2명 있으면
유저 B의 레이팅 점수가
유저 A의 레이팅 점수보다 높다
2000점, 1800점
유저 B의 점수가 더 높기 때문에
상대적으로 그런 아이템의 등급이나 레벨이나
이런 스펙이나 컨트롤 숙련도가 높다고 판단을 하는 것입니다
위와 같이 경쟁하는 두 플레이어의 점수를
엘로 레이팅 공식에 필요로 하게 됩니다
누가 더 유리한 승부인지 판단하기 위해서
전투하는 두 유저의 점수를 비교해
공식을 활용하게 됩니다
엘로 레이팅을 이용하여 증가와 감소하는 점수를 구해보겠습니다
상대 승률이라는 것이 또 필요합니다
본인과 상대방의 레이팅 점수를 근거로 하여
어떤 플레이어가 더 유리할지 승률을 계산합니다
상대 승률은 재조정될 레이팅 점수 수치에 영향을 주는데
재조정되는 것은 이런 것입니다
상대방이 1000점, 1000점 이렇게 두 유저가 만나서
한 유저가 이기면 어떤 유저는 20점을 얻어서 1020점이 되고
어떤 유저는 적기 때문에 20점을 잃어서 980이 됩니다
이렇게 점수가 처음 1000점에서 달라졌죠
이것이 레이팅 점수의 재조정이라는 것입니다
상대 승률에 따라서
승 또는 패로 인해
획득하거나 감소하는 점수의 수치가 달라집니다
예를 들어서 승률이 낮은 유저 A가 이길 경우
상대적으로 더 많은 점수를 획득할 것이고
유저 B가 이길 경우에는 상대적으로 더 적은 점수를 획득할 것입니다
유저 A와 B를 비교했을 때
레이팅 점수가 높으면 승률이 높다고 판단하고
레이팅 점수가 낮으면 승률이 낮다고 판단합니다
그러면 공식을 살펴보겠습니다
레이팅 점수가 있습니다
유저 A는 1750이고 유저 B는 2000점입니다
점수 1750 가진 유저와 2000 점수를 가진 유저끼리 대결한다고 가정하면
상대 승률을 구하는 공식은
유저 A의 승률은
1 플러스 10의 n승을 하고요
n승 안에 계산을 합니다
유저 B의 점수 2000 빼기
유저 A의 점수 1750을 400으로 나눈
그 수를 10의 n승을 하는 것입니다
그리고 그거 분의 1
10 플러스 10의 n승 분의 전체 1
이런 식으로 하면 상대 승률이 구해집니다
여러분도 엑셀로 한번 계산해보세요
그렇다면 유저 A의 승률은
0.191 이런 식으로 해서 약 19%가 됩니다
19%의 확률로 승리를 할 수 있다라는 개념이죠
유저 B는 81%가 됩니다
유저 A의 상대 승률과 유저 B의 상대 승률을
더하면 100%가 되고 1이 되어야 합니다
그래서 유저 A의 상대 승률을 구하면
나머지 유저 B의 상대 승률을 구할 수 있습니다
이 정도 점수 차이 250이 됐을 때
유저 B가 81% 확률로 승리하고
유저 A가 19%로 승리한다는 이야기입니다
그리고 두 번째로 승패에 따라서 변화하는
레이팅 점수를 구합니다
상대 승률 19%의 유저 A가 승리할 경우를 따져보겠습니다
여기서 K상수라는 값이 나오는데요
K상수는 이전 시간에 우리가 배웠던
방어력을 방어율로 치환하는
피해 흡수량은 방어력 플러스 방어상수 분의 방어력에서
방어상수는 1000에서 5000 값을 쓴다고 했죠
이거랑 비슷하게 변동하는 값입니다
변동하는 값인데 평균적인 값은 24입니다
그래서 K상수는 여기에서는 24로 일단 고정을 하겠습니다
그래서 새로운 레이팅 점수
새로운 레이팅 점수라는 것은 승패 끝난 후에
변화해서 최종적인 점수가 되는 거겠죠
새로운 레이팅 점수는 기존 레이팅 점수, 기존 승점
플러스 K상수
K상수가 24라고 했죠
24 곱하기 승패 여부 상수 빼기 상대 승률입니다
승패 여부 상수는 승리 시 1, 패배 시 0, 무승부 시 0.5를 계산합니다
그래서 이렇게 했을 때
새로운 레이팅 점수가 계산을 하면
1766 이런 식으로 돼서
유저 A는 대략 16점 정도 획득을 하고
유저 B는 16점 정도 감소를 합니다
그래서 똑같이 점수를 얻은 만큼 나머지 유저를 빼줍니다
왜냐하면 이것이 승점이 제로섬 게임이 되어야지
나중에 승점이 더 많이 늘어나거나
더 줄어들게 되면 전체 승점에 영향을 미쳐서
승점이 없고 잃는 거는 다 동일하게 합니다
그래서 대신에 유저 A가 못하는 유저이기 때문에
B를 이기면 더 많이 주는 것이죠
그래서 승리한 A 유저는 공식에 따라 16점을 획득하고
유저 B는 유저 A가 획득한 점수만큼 감소를 하게 됩니다
이것이 엘로 레이팅 공식입니다
그리고 반대로
상대 승률 19% 유저가
A가 패배할 경우 승리하는 게 아니라
못한다고 우리가 판단했던 유저가 졌을 경우에는
똑같은 걸로 계산했을 때 대략 5점을 감소합니다
기존에는 16점이나 줬었죠
근데 만만한 상대한테 이겼다고 판단했기 때문에
5점을 주는 것입니다
그래서 5점이 잃게 되고 유저 B는 이겨도
5점밖에 얻을 수가 없습니다
이것이 바로 엘로 레이팅 공식입니다
공식에서 한번 의문이 생기는 K 상수에 따라서 알아보겠습니다
K 상수에 따라서 수치 변동폭이 달라지기 때문에
해당 K 상수는 함부로 건드려서는 안 됩니다
K 상수가 크면 어떻게 되냐
수치의 변동폭이 커지고
순위의 변동폭 또한 넓히게 될 것이고
K 상수가 작으면 수치 변동폭이 작아집니다
그래서 티어를 말씀드렸죠
낮은 등급, 높은 등급
그래서 초보존, 초보존은 K 상수를 크게 합니다
그리고 고수존은 K 상수를 작게 합니다
초보존에 K 상수가 24라면
고수존에 K 상수는 5 이런 식으로 설정하는데
고수존에서 지나치게 점수를 많이 잃고 얻게 되면은
조금만 한두 판만 해도 순위가 급격하게 바뀌어서 안되므로
고수존은 점수를 조금 잃고 조금 얻게 해서
K 상수를 5 정도로 낮게 하고
초보존은 반대로 그렇게 하면 재미가 없기 때문에
많이 잃고 많이 얻게 만들려고
K 상수를 24 이런 식으로 크게 설정합니다
획득하거나 감소하는 점수를 확인하는 방법
점수를 조금 더 쉽게
공식을 심플하게 해보면
획득 감소 점수는 K 상수 곱하기
본인 점수 빼기 상대 점수를 400으로 나눈 것을
10에 N승한 것 플러스 1분의 1 이런 식으로
이렇게 공식을 단순화 했습니다
그래서 K 상수가 24일 때 획득하거나 감소하는 점수와
K 상수를 30일 때 획득하거나 감소하는 점수를 비교해보자면
K 상수가 30일 때 획득하거나 감소하는 점수가 더 높습니다
표를 보시면 알 수 있겠죠
그래서 순위를 확확 변동을 하고 싶으면
K 상수를 높게
그 반대라면 K 상수를 낮게 설정합니다
그래서 티어별로 K 상수를 다르게 설정하시는 것이 좋습니다
하지만 K 상수는 30 이렇게 하는 것보다 24 이하의 값을 쓰시는 게 좋습니다
K 상수가 낮아서 순위 변동이 낮을 경우
하위권 유저는 재미가 없겠죠
점수 상승이 너무 적고 순위 변동이 적기 때문에 지루함을 느낄 것입니다
그래서 K 상수를 크게 해줘야 됩니다
24 정도로 하시면 됩니다
또한 상위권 티어에서는 K 상수를 24 이렇게 하면
한 판만 져도 확 내려가겠죠
그러면 하기가 싫을 것입니다
그래서 K 상수는 5 정도로 낮게 잡아야 안전합니다
현재 미국 체스협회에서 사용하는 K 상수는
엘로 레이팅 시스템이 체스 게임에서 실력을 측정하고 평가하기 위해서 나온 산출법이기 때문에
또 헝가리 태생 미국의 물리학자 엘로가 고안한 방법입니다
엘레라고도 하고요
체스계에서는 국제 체스 연맹은
공식 평점을 차용하는 등
강도를 나타내는 지표로 이용하죠
24 정도 생각하시면 되겠습니다
엘로레이팅 시스템이 체스에서 이루어졌기 때문에
미국 체스협회는 변동적인 케이상수를 차용해 사용하기도 하는데요
구체적인 예시를 들어보겠습니다
점수라는 것은 승점입니다
케이상수 2100 이하 32
2100에서 2424
2400 이상 16 이런 식으로
이것을 게임에 맞게 변동하면
브론즈라는 낮은 티어에서는 32
실버에서 플래티넘 티어는 24
챔피언 티어 이상은 16 이런 식으로
수정을 할 수가 있죠
그래서 리그를 만드시거나
pvp 매치메이킹 공식을 적용할 때
이런 식으로 데이터 테이블을 만드시면 좋습니다
하지만 모든 게임이 변동되는 케이상수를 사용하는 것은 아니며
계산이 복잡해질 것 같을 경우 24로 고정해도 되구요
처음에 k 상수를 설정하기 어려움으로
서비스를 24로 먼저 시작하고 데이터가 쌓인 후
k 상수를 다시 재설정해도 무방합니다
k 상수를 서비스 도중에 밸런싱을 바꿔도 괜찮습니다
물론 공지는해야겠죠
매치메이킹
플레이어가 가지고 있는 레이팅 점수를 이용하여
매칭 조건을 만들고
해당 매칭에 따라서 공정한 경쟁을 할 수 있도록 만들어야 합니다
플레이어가 가진 레이팅 점수를 이용하여 티어를 만들고
매칭 조건 등을 구분해 봅시다
티어 타입이 브론즈 실버 플래티넘 챔피언이라고 있다고 칠게요
브론즈일수록 낮은 티어입니다
이렇게 해서 티어 구분을 한번 기획을 해보시면 되겠습니다
점수 0점부터 1500점 미만까지
그리고 매칭 제한 맥스 레벨 20 이하 매칭
플러스 마이너스 매칭 점수 범위는 150
이런 식으로 한번 설정해 보시죠
실버는 1500에서 2500
플래티넘은 2500 3000점
챔피언은 3000점 이상부터 티어라고 설정을 해봅시다
매치 메이킹 조건 첫번째
이렇게 데이터 테이블에서 칼럼을 봤는데
매칭 제한 맥스 레벨과 플러스 마이너스 매칭 점수 범위가 있습니다
첫번째 룰은 이런 것입니다
레이팅 점수 본인이 예를 들어서 점수가 0에서 1500점 미만이다
본인이 예를 들어서 점수가 0에서 1500점 미만이다
750점 이다라고 하면 브론즈 티어에 해당하겠죠
근데 이제 만약에
그렇다고 하면 플러스 마이너스 매칭 점수 범위 150이라는 것을
적용을 먼저 하는 것입니다 본인이 점수 500점이라면 150점을 더하거나 빼면 네 그렇게 점수가 나오겠죠
본인이 점수 500점이라면 150점을 더하거나 빼면 네 그렇게 점수가 나오겠죠
본인이 점수 500점이라면 150점을 더하거나 빼면
그렇게 점수가 나오겠죠
350과 650점 사이에 유저를 찾게 될 것입니다
그래서
처음에는 플러스 마이너스 매칭 점수 범위에서 찾게 됩니다
두번째로는 매칭 제한 맥스 레벨인데요
플러스 마이너스 매칭 점수 범위에서 찾았을 때도
뭔가 안 좋은 것이 있을 수 있습니다
레벨이 너무 높은 유저를 매칭해 줄 수가 있겠죠
그럴 경우에 좋지 않습니다
아무리 점수 범위가 같다고 하더라도
실력 차가 너무 나거나 스펙 차가 너무 나겠죠
그래서 이렇게 20이하 매칭 이런 식으로 레벨 제한도 한번 만들어 봅니다
만약에 이제 매칭 제한 맥스 레벨을 넘었을 경우 인정하지 않고 다시 한번 찾는 거죠
플러스 마이너스 매칭 점수 범위에서요
이렇게 했는데 만약에 플러스 마이너스 150점
맥스 레벨 20 이렇게 찾았는데
게임에 유저가 너무 없어서 찾아 지지 않을 경우가 예외 처리가 발생합니다
그럴 경우에는 그냥 점수 체계 승점을 무시하고
나와 비슷한 레벨 기준으로
플러스 5, 마이너스 5 레벨 사이에
랜덤한 유저 한 명을 무조건 매칭하게
예외 처리 조건도 한번 설정을 해주셔야 됩니다
엘로레이팅 기본 개념 한번 다시 한번 정리해 보겠습니다
자신보다 실력이 낮은 사람과 경쟁하는 것보다
실력이 높은 사람과 경쟁하는 것이 순위 향상에 더 큰 영향을 준다는 것
자신보다 실력이 낮은 자와의 경쟁에서 패배하면 더 많은 점수를 잃게 되고
실력이 높은 자와 경쟁하여 패배하면
적은 점수만 잃게 된다는 것입니다
이런 것입니다
그리고
본인보다 실력이 높은 자와 경쟁해서 승리하면
더 많은 점수를 얻게 되겠죠
실력이 낮은 자와 경쟁하여 승리하면
적은 점수만 얻게 될 것입니다
그러면 엘로 레이팅의 요소
레이팅 수치 승점
순위를 판가름하는 최종적인 점수 수치가 높을수록 실력이 좋다는 뜻
순위는 레이팅 수치가 높은 자 순으로 정렬하여 나타납니다
승점이죠
승점을 가지고 티어를 산정하기도 합니다
상대 승률
승률은 경쟁에 참가하는 각 사람들의 레이팅 수치에 근거하여 계산합니다
승률은 경쟁의 승패에 따라 재조정될 레이팅 수치에 양해 영향을 미칩니다
재조정된다는 것은 게임이 끝나고 최종 점수를 이야기합니다
k 상수
경쟁의 승패에 따라 재조정될
최종적인 점수의 수치의 변동폭에 영향을 미치구요
함부로 건드릴 수 없는 수치로
이 상수의 크기에 따라서 순위의 변동폭이 결정됩니다
이 상수가 크면은 순위가 확확 바뀌고 적으면 적게 바뀝니다
k 상수는 실제적인 통계가 생성되어야만 최적의 값으로 설정할 수 있으며
그 이전까지는 유추가 가능합니다
그래서 데이터를 실제 뽑아 봐야 됩니다
서비스하고
그래서 길드워라는 게임의 서비스 초기 pvp 랭크에 사용된 k 상수값은 30
최근에 오래되서
k 상수값이 5로 변경이 되었다고 합니다
공식에 대해서
상대의 승률 산출 공식
사용자 A의 상대의 승률
1 플러스 10 분의 엔승인데
400분의 사용자 B의 레이팅 점수 빼기
사용자 A의 레이팅 점수 분의 전체 1
그리고 레이팅 수치 산출 공식은
새로운 레이팅 수치는 기존 레이팅 수치 플러스
k 상수 곱하기 실제 승패 빼기 상대 승률
실제 승패 값은 승리 시 1 패배 시 0 무승부 0.5 입니다
이런 식으로 계산을 하시면 되겠습니다
예제
2000 레이팅 수치를 보유한 사용자 A와
1750 레이팅 수치를 보유한 사용자 B
각각의 상대의 승률은 다음과 같습니다
사용자 A의 상대 승률 1 플러스 10
400분의 1750 빼기 2000을 400으로 나눈 값을 n승을 하고
전체 분의 1을 하면
0.8083
약 81%
그리고 양자의 상대 승률의 합은 1이 되어야 하므로
사용자 B의 상대 승률은 19% 이렇게 됩니다
경기에서 사용자 A가 승리를 거두었다면
새로운 레이팅 수치는 다음과 같습니다
k 상수는 여기서 임의로 24로 정해서 진행하겠습니다
2000 플러스 24 곱하기
그리고 안의 값
1 마이너스 0.8083 이런 식으로 하죠
승리했기 때문에 1인 것입니다
그리고 k 상수는 24인 것이죠
2004가 됩니다
그리고 사용자 B는 마이너스 4.6
그래서
사용자 A가 4.6을 얻었고
사용자 B가 4.6을 잃게 됩니다
만약 k 상수가 크다면 한 판 한 판의 경기 승패가
레이팅 수치에 매우 민감하게 작용하여 순위 변동폭을 넓히게 될 것이니까
하위권 플레이어에게 k 상수를 크게 줘야 되고
상위권에는 k 상수를 낮추는 방식을 해야 됩니다
이 경우 하위권의 순위 변동이 커지고
결과적으로 승리에 따른 레이팅 증가 폭이 커짐에 따라
실력 있는 자들의 상위권 진입이 보다 확장이 될 수 있겠죠
반면 상위권은 순위 변동폭이 크지 않아서
순위를 올리기 위한
보다 분주한 노력이 요구되게 됩니다
미국 체스협회에서 사용되는 k 상수 다시 한번 복습해 보죠
2100 이하의 k 상수 32
2100과 2400 사이의 k 상수 24
2400 이상의 k 상수는 16
계산식이 복잡해진다면 k 상수는 24로 통일하여 사용해도 무방하다고 했습니다
이거 가지고 티어를 한번 정해 보세요
그리고 순위 경쟁에 진입하는 신규 사용자의 초기 레이팅 문제
체스협회는 순위 경쟁에 본격적으로 진입하는 새내기 선수에게
100 레이팅을 인위적으로 부여합니다
모두 처음에 승점 1000으로 시작한다는 얘기에요
와우
월드 오브 워크래프트 역시 최소 1000 레이팅을 인위적으로 부여합니다
엘로라는 사람이 1000에서 3000의 레이팅 범위 제시한 만큼
그 계산식이 이들 범위에 최적화된 것으로 생각할 수 있습니다
요새 게임들은 근데 4000, 5000 이렇게 더 올라가게 되는데요
그 이유는 게임이 오래되면 그렇게 됩니다
승점 획득과 감소 공식
왼쪽에 있는 것이 내 승점이고
저기 엑셀 10에 칼럼에 있는 것이 상대 승점인데
위에 엘로 레이팅 공식을 24로 적용하면
내 승점과 상대 승점이 어떻게 변화하는지 점수에 따라 알게 됩니다
그래서 높은 상대를 이기면 많이 얻게 되고
지면은 내가 적게 얻게 되고 쉬운 상대를 이기면 적게 얻게 되고
만약에 내가 지면 많이 잃게 되는 것을 이 표를 통해서 아실 수가 있습니다
매치미킹 시스템 다시 한번 복습해보면
브론즈, 실버, 골드, 플래티넘, 다이아, 챔피언
이런 식으로 먼저 티어를 정하세요
티어를 예를 들어서 0점1200, 1200, 1500, 1500, 1800, 1800, 2100, 2100, 2500
2500점 이상 이렇게 6가지 티어로 정하시고
매칭 제한 맥스 레벨을 20, 30, 40, 50, 60, 80 이렇게 정하시고
플러스 마이너스 매칭 점수 범위
120, 200, 280, 360, 440, 600 이렇게 정했다고 합시다
이렇게 데이터 테이블을 짜시고
매치메이킹 조건을 설정을 하시면
엘로레이팅 공식을 적용하기 전에 매치메이킹이 되게 됩니다
매치메이킹 조건은 플러스 마이너스 매칭 점수 범위 내에서 찾고
플러스 마이너스 점수를 보고 내 랭크를 보고
플러스 마이너스에서 찾는 거죠
그 다음에 상대 유저가 매칭 제한 맥스 레벨 AI 범증에서 초과면 다시 찾습니다
조건에 부합하지 않으면 예외 처리로
내 레벨 기준으로 플러스 마이너스 레벨 5 사이에
랜덤한 유저를 무조건 매칭하는 예외 처리 공식을 적용합니다
감사합니다
게임 밸런스 기획자는 게임의 시스템과 콘텐츠를 기획한 후
밸런스 기준을 정하고
수치를 균형적으로 맞추는 일을 하는 매력적인 직업입니다
여러분이 좋은 게임 밸런스 기획자로 성장할 수 있도록 최선을 다해서 돕도록 하겠습니다
수업 듣느라 고생하셨습니다
감사합니다
엘로레이팅 pvp콘텐츠에서 매칭 밸런스 작업하기 유저들은 pvp콘텐츠에서 높은 순위에 올라가기 위해 pve콘텐츠 등을 플레이하고 보상을 획득하며,캐릭터 강화를 반복함
비슷한 능력치를 가졌으면서,비슷한 실력을 가진 플레이어끼리 매칭을 시켜주는 시스템이 필요함
쉽게 승리할 수 있는 겨우,점수를 적게 받아도 유저는 납득할 것, 하지만 반대로 전투 난이도가 높을 경우,패배하면 큰 점수를 잃지만 유저는 납득함
패배할 가능성이 높은 경우,승리 시 점수가 크게 상승해야 유저는 납득할 것, 하지만 패배할 경우 점수가 적게 감소해야 유저는 점수에 납득할 수 있을 것
엘로 레이팅을 이용해 증가와 감소 점수 구하기 처음에는 상대와 자신의 점수이며,해당점수는 레이팅으로 부름 순위 및 티어를 구분하는 최종적인 점수를 의미함
레이팅이 높다는 것은 레벨 및 아이템의 등급과 게임에 대한 숙련도가 높다고 판단됨 점수가 높다고 무조건 숙련도가 높고 스펙이 좋다는 의미는 아님
상대 승률이라는 것을 필요로 함 자신과 상대방의 점수를 근거로 하여,어떤 플레이어가 더 유리할 지 승률을 계산함 상대 승률은 재조정될 점수 수치에 영향을 줌
엘로레이팅 엘로레이팅 공식을 이용하여 승 또는 패에 따른 점수 변화 구하기 스텝 1 두 유저의 상대 승률을 구해야 함 스텝 2 승 또는 패에 따라서 변화하는 점수를 구해야 함
감소 점수 분의 획득은 k상수 곱하기 1더하기 10의 엔승 곱하기 400분의 본인점수 마이너스 상대점수분의 1 곱하기 k상수
엘로 레이팅 상대 승률 산출 공식 사용자 a의 상대 승률은 400분의 사용자 b의 레이팅 점수 마이너스 사용자 a의 레이팅 점수 분의 1
레이팅 수치 산출 공식은 새로운 레이팅 수치는 실제 승패 마이너스 상대승률 곱하기 k상수 더하기 기존 레이팅 수치
매치 메이킹 매치 메이킹 조건 1 플러스 마ㅣ이너스 매칭 점수 범위 내에서 찾기 2 상대 유저가 매칭 제한 맥스 레벨 이하인지 검증해서, 초과하면 다시 찾기
3 조건에 부합하지 않으면 내 레벨 기준으로 플러스 5 마이너스 5 사이의 랜덤한 유저 1명을 무조건 매칭
엘로레이팅 기본 개념 자신보다 실력이 낮은 사람과 경쟁하는 것보다 실력이 높은 사람과 경쟁하는 것이이 순위 향상에 더 큰 영향을 준다는 것
레이팅 수치 승점 순위를 판가름 하는 최종적인 점수 수치가 높을수록 실력이 좋다는 뜻 순위는 레이팅 수치가 높은 자 순으로 정렬하여 나타냄
상대승률 승률은 경쟁에 참가하는 각 사람들의 레이팅 수치에 근거하여 계산함 승률은 경쟁의 승패에 따라 재조정될 레이팅 수치의 양에 영향을 미침
매치메이킹 엘로레이팅 승점과 레벨 조건에 따른 매치 메이킹 시스템