밸런스 이슈가 생기는 이유: 설계 vs 현실

밸런스 이슈가 생기는 이유: 설계 vs 현실

엑셀에선 완벽했다

월요일 아침 10시. 출근해서 엑셀 켰다.

금요일에 만든 시뮬레이션 파일. VLOOKUP 함수로 10만 행 돌렸다. 무기 밸런스 완벽했다. 승률 49~51% 사이. 이론상 밸런스 최적이다.

자신 있었다. 5년 차 경력이다. 수치는 거짓말 안 한다.

월요일 저녁 9시. 게임 출시했다.

화요일 아침. 커뮤니티 불탔다.

“A무기 OP임 ㅋㅋ” “B무기 쓰레기네” “밸런스 개판”

내 엑셀 파일 다시 봤다. 틀린 곳 없다. 승률 50.2% vs 49.8%. 완벽하다.

그런데 유저들은 난리다.

이게 3년 차 때까지 이해 못 했던 거다. 엑셀에선 완벽한데 게임에선 망가진다.

유저는 엑셀처럼 안 한다

첫 번째 변수. 체감이다.

A무기: 공격력 100, 공격속도 1.0초 B무기: 공격력 50, 공격속도 0.5초

DPS 똑같다. 100이다. 엑셀에선 동일하다.

유저 반응은 다르다.

A무기: “한 방이 시원하다” B무기: “약하게 느껴진다”

숫자는 같은데 체감이 다르다.

이유는 간단하다. 사람은 숫자 안 센다. 느낌으로 한다.

100 데미지 한 번이 50 데미지 두 번보다 강하게 느껴진다. 심리학이다.

격투 게임 기획자 선배가 그랬다.

“유저는 프레임 단위로 안 본다. 기분으로 본다.”

맞는 말이다.

두 번째 변수. 사용 난이도다.

C스킬: 명중률 100%, 데미지 80 D스킬: 명중률 60%, 데미지 150

기댓값 계산하면 D가 90이다. 더 강하다.

실제론 C를 더 쓴다.

왜냐. 확정이 좋다. 빗나가는 거 싫다.

엑셀은 기댓값만 본다. 유저는 안정성 본다.

이런 거 5년 차 돼서야 알았다.

메타가 숫자를 바꾼다

세 번째 변수. 조합이다.

E캐릭터 단독 승률: 50% F캐릭터 단독 승률: 50%

밸런스 맞다. 출시했다.

2주 뒤.

E+특정아이템 조합 발견됐다. 승률 65% 찍었다.

내가 못 본 조합이다. 10만 명 유저가 찾았다.

엑셀에선 캐릭터 하나만 봤다. 유저는 시너지 찾는다.

카드게임 기획할 때 이거 당했다.

카드 300장 있었다. 조합 경우의 수 수백만이다.

내부 테스트에선 못 찾는다. QA 인원 20명이다. 한계 있다.

유저 10만 명은 다르다. 1주일이면 모든 조합 다 뜯는다.

“이 조합 OP네요”

커뮤니티에 퍼진다. 다들 따라한다.

메타가 된다.

메타가 되면 숫자가 달라진다.

원래 승률 50%였던 캐릭터. 카운터가 유행하면 승률 40% 된다.

나는 아무것도 안 건드렸다. 숫자 그대로다.

근데 밸런스 무너진다.

이게 제일 답답하다.

플레이타임이 인식을 바꾼다

네 번째 변수. 시간이다.

초보 구간: G무기 승률 55% 고수 구간: G무기 승률 45%

평균 내면 50%다. 엑셀에선 밸런스다.

출시 1주: “G무기 개사기” 출시 1달: “G무기 약함”

뭐가 맞나. 둘 다 맞다.

초보가 쓰면 강하다. 쉽다. 고수가 쓰면 약하다. 대응 가능하다.

시간 지나면 유저 실력 는다. 메타 변한다.

출시 초반엔 초보가 많다. G무기 강하다고 난리다.

3개월 뒤엔 다들 고수다. G무기 약하다고 난리다.

나는 아무것도 안 바꿨다.

FPS 게임 기획자 동기가 그랬다.

“밸런스는 고정값이 아니다. 시간 함수다.”

수식으로 표현하면 이렇다.

밸런스 = f(수치, 메타, 플레이타임, 유저실력)

엑셀은 첫 번째만 본다. 나머지는 변수다.

근데 나머지가 더 중요하다.

데이터는 거짓말한다

다섯 번째 변수. 표본이다.

전체 승률: 50%

구간별 보면.

브론즈: 60% 실버: 52% 골드: 48% 플래티넘: 45%

전체로 보면 밸런스다. 구간별로 보면 난리다.

어느 기준이 맞나.

정답 없다.

브론즈 유저: “이거 너프 해라” 플래티넘 유저: “이거 버프 해라”

둘 다 데이터 근거 있다. 근데 반대다.

나는 뭘 믿나.

예전엔 평균 봤다. 50%면 OK였다.

지금은 다르게 본다. 구간별로 다 본다.

그래서 작업량 5배 늘었다.

구간별 밸런스 다 맞추려면 변수 10개는 건드려야 한다.

한 곳 고치면 다른 곳 망가진다.

모그라 잡기다.

여섯 번째 변수. 소수 고수다.

H캐릭터 승률: 48%

약해 보인다. 버프 고민했다.

데이터 뜯어봤다.

상위 1% 유저: 승률 70% 나머지 99%: 승률 47%

이거 버프하면 어떻게 되나.

상위 1%가 승률 80% 된다. 게임 망한다.

근데 99% 유저는 약하다고 느낀다.

뭐가 우선인가.

정답 없다. 회사마다 다르다.

우리 회사는 상위 유저 본다. 대회 있어서다.

다른 회사는 대중 본다. MAU가 중요해서다.

같은 데이터 다르게 해석한다.

감정이 숫자를 이긴다

일곱 번째 변수. 유저 감정이다.

I무기: 승률 50%, 사용률 5% J무기: 승률 50%, 사용률 30%

밸런스는 같다. 인기는 다르다.

왜 I무기 안 쓰나.

“재미없어요” “간지 안 나요” “소리가 별로”

승률이랑 상관없다.

재미는 숫자가 아니다.

K스킬 있었다. 승률 52%였다. 약간 강했다.

커뮤니티에서 욕 먹었다.

“이거 맞으면 짜증나요” “플레이 경험 망침” “재미없게 이김”

승률 문제가 아니었다. 감정 문제였다.

결국 리워크했다. 승률 48%로 낮췄다.

유저 만족도 올라갔다.

승률보다 감정이 중요했다.

엑셀은 승률만 본다. 유저는 기분 본다.

5년 차 돼서 배운 거다.

그래서 어떻게 하나

답은 없다.

엑셀은 기본이다. 근데 시작일 뿐이다.

실제 밸런스는 이렇게 한다.

  1. 수치 설계한다. 엑셀로.
  2. 테스트 플레이한다. 직접.
  3. 체감 확인한다. 느낌으로.
  4. 내부 테스트한다. QA랑.
  5. 베타 테스트한다. 유저랑.
  6. 출시한다.
  7. 데이터 본다. 실시간으로.
  8. 유저 피드백 본다. 커뮤니티.
  9. 수정한다.
  10. 반복한다.

끝이 없다.

출시가 끝이 아니다. 시작이다.

라이브 게임은 계속 밸런스 잡는다.

2주에 한 번 패치한다. 1년이면 26번이다.

매번 엑셀 돌린다. 매번 틀린다. 매번 배운다.

3년 차 때 선배가 그랬다.

“밸런스 기획자는 신이 아니다. 정원사다.”

무슨 말인지 몰랐다.

지금은 안다.

식물 키우는 거랑 같다. 매일 물 준다. 햇빛 확인한다. 벌레 잡는다.

한 번에 완성 안 된다. 계속 케어한다.

밸런스도 그렇다.

그래도 엑셀은 중요하다

이렇게 써놓고 보면 엑셀 무용론 같다.

아니다.

엑셀 없으면 시작도 못 한다.

기준이 필요하다. 기준은 숫자다.

“이 무기 약한 것 같아요” - 근거 없다. “이 무기 승률 42%입니다” - 근거 있다.

숫자가 있어야 대화가 된다.

PD: “이거 너프 해” 나: “승률 48%인데요?” PD: “그래도 체감이…” 나: “구간별 데이터 보시죠”

데이터 없으면 주관 싸움이다. 데이터 있으면 논의가 된다.

완벽하진 않다. 근데 최선이다.

엑셀은 나침반이다. 정확하진 않다. 근데 방향은 알려준다.

북쪽이 어딘지는 안다. 가는 길은 내가 찾는다.

5년 하면서 배운 거다.

엑셀만 믿으면 망한다. 엑셀 안 믿으면 더 망한다.

둘 다 봐야 한다.

밸런스는 정답이 없다

금요일 저녁 8시.

이번 주 패치 끝났다.

L무기 공격력 105에서 100으로 낮췄다.

엑셀에선 승률 51%에서 49%로 떨어진다.

실제론 어떻게 될까.

모른다.

월요일 되면 안다.

그때 커뮤니티 본다. 데이터 본다.

또 수정한다.

이게 내 일이다.

완벽한 밸런스는 없다. 덜 망가진 밸런스만 있다.

유저는 완벽 원한다. 나도 원한다.

근데 불가능하다.

게임은 살아있다. 유저가 만든다. 메타가 변한다.

나는 따라간다. 계속.

엑셀에선 완벽했던 그 설계. 시작점일 뿐이다.

현실은 변수 투성이다.

그래도 한다.

숫자 고치고. 테스트하고. 유저 피드백 보고. 또 고친다.

5년 했다. 10년 할 수 있을까.

모르겠다.

근데 오늘은 한다.

엑셀 켰다. 새 시뮬 파일 만든다.

다음 패치 준비한다.

이번엔 맞을까.

모른다.

해본다.



엑셀은 거짓말 안 한다. 근데 전부도 아니다.