
오늘은 수식을 세워보았습니다.
도전 평점제 도입을 위한 수식이에요.
우주선의 난도를 수치로 표현하는 '우주선 평점'과, 플레이어가 해당 우주선을 처음 클리어할 때 걸린 런타임 시간 기록(초)이 주어지면, 이 우주선을 클리어한 후에 해당 플레이어의 실력을 나타내는 척도인 '도전자 평점'이 몇 점 변해야 하는가를 나타냅니다.
이전 이야기는 여기를 읽어보세요!
https://blog.naver.com/ravitastudio/224363272448
쉽게 비유하자면, 도전자 평점은 아이언, 브론즈, 실버, 골드 같은 사용자의 랭크라고 보시면 됩니다.
우주선 평점은 상대의 랭크이고요.
사무실의 다른 대표님 한 분이 이 표를 보면서 경악을 하시더라고요...
이게 도대체 무슨 표냐고요...
처음에는 퍼포먼스 마케팅을 하는 줄 아셨답니다.
리텐션 같은 KPI를 표로 나타낸 것처럼 보이기도 하니까요.
하지만 위 표는 게임 밸런스를 잡기 위한 표입니다.
다음의 경우들을 고려해서 만들었죠!
우주선 평점이 1000(대략 Hard)인 우주선을 50초 만에 클리어한 사람은 도전자 평점이 몇만큼 변해야 하는가?
20초 만에 클리어했다면? 아니면 2분 40초만에 클리어했다면?
우주선 평점이 500(대략 Normal)인 우주선을 풀었다면? 아니면 우주선 평점이 36000(대략 Insane과 God 사이)인 우주선을 풀었다면?
누군가가 매크로를 돌려서 God급 우주선을 0.5초만에 풀어냈다면? 도전자 평점이 하늘을 뚫어버리는 일이 생기면 안 되는데.
어떤 우주선의 우주선 평점이 1(0.05초 안에 풀기를 기대하는 수준)로 정해졌다면? 이 우주선에 반복 도전했을 때 도전자 평점이 늘어나기만 한다면? 이것도 어뷰징인데.
실력 있는 사람이 Easy나 Simple에서 오래 머물게 하지 말고 빠르게 Hard, Extreme을 풀 수 있도록 도전자 평점을 팍팍 올려주자.
Simple도 어려워하는 사람에게 Normal 이상의 우주선을 보여주는 일이 없도록 하자.
지금 추천해 준 우주선이 사용자에게 어렵다고 한다면 도전자 평점을 낮춰 다음에는 더 쉬운 우주선이 추천되도록 하자.
일단 이런 수식을 만들기 전에, 기획 의도를 정해야 합니다.
첫 사용자가 Normal 난도의 첫 우주선을 만나기까지 몇 초 동안 게임을 해야 하는지... 같은 것 말이죠.
그렇게 해서 점을 몇 개 찍습니다.
그리고 수학 그래프를 그리는 도구를 활용하여, 회귀식을 조정해 봅니다.
회귀 식은 지난 번과 다르게, 선형이 아닌 지수함수를 사용했습니다.
이 지수함수가 제가 정의한 점들을 최대한 가까이 통과하도록 계수를 조정하는 것이죠!

그리고 그렇게 나온 계수들을 또 회귀합니다.
이번에는 x축의 의미가 바뀌었거든요.
아까와는 다른 요소에 의해 계수가 바뀌는 것을 모델링하는 과정입니다.

그렇게 아주아주 복잡한 식을 얻었습니다!
사업기밀이니까 여기에서 공개할 수는 없지만, 대충 e^x 와 log_10(x)가 가득한 식이라고 보시면 되겠네요.
이 식을 엑셀에 넣고 우주선 평점과 이 우주선을 깨는 데에 걸리는 런타임 시간 기록에 따라 도전자 평점이 얼마 변해야 하는지를 계산하면 아래 사진과 같이 나옵니다!

여기서 처음에 의도한 대로 값이 나오나 확인하고 수식을 약간 조정합니다.
예를 들면 매크로 방지 같은 것이 있죠!
그렇게 해서 나온 결과가 처음에 보여줬던 표입니다!!

이 표는 여러분이 도전 평점제가 도입된 중력미로를 플레이할 때, 몰입(flow)을 일으킬 수 있도록 여러분의 수준에 알맞는 우주선을 추천하도록 하는 핵심 로직을 담고 있습니다.
게임의 재미를 위해 이런 것까지 고민하는 곳이 Ravita Studio입니다.
위 계산 과정에서 AI는 전혀 사용하지 않았습니다.
왜냐고요?
저는 AI가 이런 복잡한 수식을 계산해서 찾아줄 것이라 전혀 기대하지 않거든요.
이전 포스트
댓글 0개
첫 번째 댓글을 작성해 보세요!