- 03 Dec, 2025
Excel 함수만으로 밸런스를 본다는 것
밸런스 기획자의 주무기 출근했다. 엑셀을 켰다. 프로그래머는 Visual Studio를 켠다. 아티스트는 Photoshop을 켠다. 나는 Excel을 켠다. 2013년부터 쓴 파일이다. 용량이 15MB다. 시트가 47개다. "게임 기획자는 엑셀만 잘 다루면 된다"는 말이 있다. 반은 맞고 반은 틀렸다. 엑셀을 잘 다루면 기획자 절반은 한 것이다. 나머지 절반은 그 엑셀로 만든 밸런스가 게임에서 제대로 작동하게 만드는 거다. 오늘도 밸런스 시트를 연다. 전투 시뮬레이터다. VLOOKUP과 IF문으로 떡칠된 지옥이다. 이게 내 직업이다.VLOOKUP이 인생의 전부인 날들 신입 때 선배가 말했다. "VLOOKUP 모르면 밸런스 기획 못 한다." 진짜였다. 캐릭터 스탯 시트가 있다. HP, 공격력, 방어력, 치명타율. 200개 캐릭터의 레벨별 수치가 여기 있다. 이걸 전투 시뮬레이터로 불러와야 한다. =VLOOKUP(A2, 캐릭터스탯!$A$2:$F$5000, 3, FALSE)이게 공격력이다. 숫자 하나 틀리면 밸런스가 무너진다. FALSE를 TRUE로 바꾸면 근삿값을 찾는다. 절대 안 된다. 정확한 값만. 시트가 47개인 이유다. 캐릭터 스탯, 무기 스탯, 스킬 데이터, 버프 효과, 적 스탯, 던전 난이도, 보상 테이블. 다 연결돼 있다. A 캐릭터의 공격력을 올리면 B 던전의 난이도가 변한다. C 무기의 가치가 떨어진다. D 캐릭터가 쓸모없어진다. VLOOKUP으로 다 연결했기 때문이다. 한 칸만 잘못 건드려도 게임이 망가진다. 그래서 시트 보호를 걸어뒀다. 비밀번호는 내 생일이다.IF문 지옥의 전투 시뮬레이터 전투 시뮬레이터를 만들었다. 3년 전이다. 시뮬레이터는 간단하다. 캐릭터 A와 적 B가 싸운다. 누가 이기는지 계산한다. 몇 턴 만에 이기는지 본다. 이게 밸런스의 기준이다. 문제는 변수다. 게임은 단순하지 않다.치명타가 터지면? 데미지 1.5배 버프를 받으면? 공격력 20% 증가 스킬을 쓰면? 3턴 쿨타임 적이 방어 태세면? 데미지 50% 감소 HP가 30% 이하면? 광폭화 버프IF문이 시작된다. =IF(치명타율>RAND(), 데미지*1.5, 데미지)이게 1턴이다. 치명타 계산이다. RAND()는 0~1 사이 랜덤값이다. 치명타율 30%면 30% 확률로 1.5배 데미지가 나간다. 여기에 버프를 추가한다. =IF(버프중, IF(치명타율>RAND(), 데미지*1.2*1.5, 데미지*1.2), IF(치명타율>RAND(), 데미지*1.5, 데미지))IF 안에 IF가 들어간다. 이게 시작이다. 스킬 쿨타임을 추가한다. 적의 패턴을 추가한다. 광폭화를 추가한다. IF문이 5단 중첩된다. 수식 바를 보면 눈이 아프다. =IF(AND(턴수>3, 스킬쿨=0), IF(적HP<최대HP*0.3, IF(버프중, 스킬데미지*1.2*1.5*2, 스킬데미지*1.5*2), IF(버프중, 스킬데미지*1.2, 스킬데미지)), IF(버프중, IF(치명타율>RAND(), 기본데미지*1.2*1.5, 기본데미지*1.2), IF(치명타율>RAND(), 기본데미지*1.5, 기본데미지)))이게 1턴 데미지 계산이다. 전투는 10턴이다. 이 수식이 10개 반복된다. 시트가 느려진다. F9를 누르면 3초 걸린다. 재계산하는 거다. 컴퓨터가 버벅인다. RAM이 8GB다. 부족하다. 그래도 작동한다. 캐릭터 A가 적 B를 7턴 만에 잡는다. 예상과 같다. 밸런스가 맞다.시뮬 돌려볼게요 회의 시간이다. PD가 말한다. "신규 보스 난이도 어때요?" "시뮬 돌려볼게요." 입버릇이다. 일주일에 50번은 말한다. 시뮬레이터를 켠다. 신규 보스 스탯을 입력한다. HP 500000, 공격력 1200, 방어력 800. 패턴은 3개다. 광역기, 단일기, 버프 해제. 평균 유저 캐릭터를 넣는다. 레벨 60, 공격력 800, 방어력 400. 장비는 평균 등급. 스킬은 표준 빌드. F9를 누른다. 재계산된다. 결과가 나온다. 12턴 만에 보스를 잡는다. PD가 묻는다. "적당해요?" "애매합니다. 10턴이 목표였거든요." "그럼 보스 HP를 줄일까요?" "안 됩니다. HP를 줄이면 고인물 유저가 3턴 만에 잡습니다." 고인물 시뮬도 있다. 레벨 80, 최상급 장비, 최적 빌드. 이 유저들은 6턴 만에 보스를 잡는다. HP를 20% 줄이면 4턴이 된다. 너무 쉽다. "그럼 보스 공격력을 올릴까요?" "그것도 애매합니다. 공격력을 올리면 평균 유저가 14턴에 죽습니다." 체력이 0이 되는 턴이다. 시뮬레이터가 계산해준다. 공격력 1200에서 1400으로 올리면 평균 유저는 12턴째에 죽는다. 보스를 못 잡는다. "그럼 어떻게 하죠?" "보스 패턴을 바꿔야 합니다. 광역기 데미지는 줄이고 빈도를 늘리는 거죠. 평균 유저는 비슷하고 고인물 유저는 조금 더 어려워집니다." 시뮬을 다시 돌린다. 광역기 데미지를 30% 줄인다. 3턴마다 쓰던 걸 2턴마다 쓰게 한다. 계산한다.평균 유저: 11턴 클리어 고인물 유저: 5턴 클리어"이 정도면 괜찮습니다." PD가 고개를 끄덕인다. "좋아요, 이걸로 가죠." 30분 회의가 끝난다. 시뮬이 없었으면 2시간 걸렸다. 숫자 하나가 게임을 바꾼다 런칭 1주일 전이었다. QA에서 연락이 왔다. "10스테이지가 너무 어렵습니다. 못 깨겠어요." 황당했다. 시뮬에서는 문제없었다. 평균 9턴 클리어. 적당한 난이도였다. 빌드를 받아서 직접 해봤다. 진짜 어렵다. 15턴이 지나도 보스가 안 죽는다. 내가 죽는다. 뭐가 문제지. 시뮬레이터를 다시 봤다. 수치를 확인했다. 틀린 게 없다. 보스 HP 300000, 공격력 900, 방어력 600. 맞다. 게임 데이터를 열었다. JSON 파일이다. 보스 스탯을 확인했다. "boss_10": { "hp": 300000, "attack": 900, "defense": 6000 }방어력이 6000이다. 오타였다. 600이어야 하는데 0을 하나 더 붙였다. 누가 했는지 모른다. 아마 나다. 방어력 6000이면 유저 공격이 안 들어간다. 데미지 계산식이 이렇다. 최종데미지 = 기본데미지 * (1000 / (1000 + 적방어력))방어력 600이면 데미지가 62%다. 방어력 6000이면 14%다. 4배 차이다. 시뮬레이터를 고쳤다. 방어력 6000을 입력했다. F9를 눌렀다. 클리어 불가. 33턴째 유저 사망. 맞다. 못 깬다. 프로그래머한테 연락했다. "10스테이지 보스 방어력 600으로 수정해주세요." 급하게 패치했다. 다음 날 빌드에 반영됐다. 숫자 하나가 게임을 망칠 뻔했다. 0 하나 때문에. 엑셀은 거짓말을 안 한다 점심시간이다. 후배가 묻는다. "선배, 밸런스 어떻게 잡아요?" "시뮬 돌려." "시뮬이 정확해요?" "게임보다 정확해." 농담 아니다. 게임은 버그가 있다. 데미지가 안 들어갈 때가 있다. 스킬이 안 나갈 때가 있다. 엑셀은 그런 거 없다. 입력한 대로 계산한다. 물론 한계는 있다. 유저의 컨트롤은 못 본다. 회피 타이밍, 스킬 사용 순서, 포지셔닝. 이건 변수가 너무 많다. 그래서 시뮬은 "평균"을 본다. 평균 유저가 평균 장비로 평균 컨트롤을 했을 때. 이게 기준이다. 고인물은 따로 본다. 최상급 장비, 최적 빌드, 완벽한 컨트롤. 이게 상한선이다. 하한선도 본다. 최저 장비, 엉망 빌드, 못하는 컨트롤. 이 유저도 클리어할 수 있어야 한다. 어렵게라도. 세 가지 케이스를 다 시뮬로 돌린다. 평균 10턴, 상한선 5턴, 하한선 20턴. 이 범위 안에 들어오면 밸런스가 맞다. 범위 밖이면 수정한다. 보스 HP를 조정한다. 공격력을 바꾼다. 패턴을 수정한다. 다시 시뮬을 돌린다. 범위 안에 들어올 때까지. 이게 밸런스 기획이다. 노가다다. 엑셀 노가다. 유저는 엑셀을 모른다 게임이 출시됐다. 커뮤니티를 봤다. "20스테이지 밸런스 개똥이네요. 못 깨겠어요." 받았다. 시뮬을 켰다. 20스테이지 보스를 넣었다. 평균 유저 캐릭터를 넣었다. 돌렸다. 12턴 클리어. "못 깰 리가 없는데." 영상을 찾아봤다. 유저가 올린 플레이 영상. 봤다. 캐릭터 레벨이 50이다. 평균은 60이다. 장비가 2등급 낮다. 스킬 빌드가 엉망이다. 방어 스킬을 안 쓴다. 광역기를 정면으로 맞는다. 이러면 못 깬다. 당연하다. 댓글을 달까 고민했다. "장비를 올리세요. 레벨을 올리세요. 스킬을 잘 쓰세요." 안 달았다. 댓글 창이 지옥일 게 뻔하다. 대신 데이터를 봤다. 20스테이지 클리어율. 68%다. 나쁘지 않다. 30% 유저는 못 깬다. 어려운 편이다. 평균 시도 횟수. 3.2회. 세 번 정도 도전하면 깬다. 적당하다. "밸런스는 맞는데." 유저는 엑셀을 모른다. 시뮬을 모른다. 내가 72시간 동안 IF문을 짜면서 만든 밸런스를 모른다. 그냥 "어렵다"고 말한다. "밸런스 똥겜"이라고 말한다. 괜찮다. 데이터가 말해준다. 68% 클리어율. 이게 진실이다. 엑셀 시뮬의 한계 시뮬이 완벽하진 않다. 작년에 신규 캐릭터를 냈다. 스킬이 특이했다. "적 HP 비율만큼 데미지 증가". HP가 100%면 데미지 2배, 50%면 1.5배, 10%면 1.1배. 시뮬을 짰다. 복잡했다. 턴마다 적 HP를 확인하고 데미지를 계산한다. =기본데미지 * (1 + 적HP/최대HP)돌렸다. 평균 8턴 클리어. 괜찮다. 다른 캐릭터랑 비슷하다. 출시했다. 망했다. 이 캐릭터가 너무 강했다. 고인물 유저들이 모든 컨텐츠를 쓸어버렸다. 3턴 클리어, 2턴 클리어. 시뮬에서는 5턴이었는데. 뭐가 문제였을까. 스킬 연계를 고려 못 했다. 이 캐릭터는 다른 캐릭터랑 조합하면 더 강해진다. A 캐릭터가 적 HP를 99%로 만든다. 그 상태에서 신규 캐릭터가 스킬을 쓴다. 데미지가 2배 가까이 나온다. 시뮬은 단일 전투만 본다. 파티 조합은 안 본다. 변수가 너무 많아서. 캐릭터가 200개다. 조합은 200 * 199 * 198 * 197. 계산 불가능하다. 결국 긴급 패치했다. "적 HP 비율만큼 데미지 증가, 최대 50%". 상한선을 뒀다. 유저들이 욕했다. "너프 먹였다"고. 맞다. 너프 먹였다. 시뮬의 한계다. 모든 걸 볼 순 없다. 그래도 엑셀이다 6시다. 퇴근까지 2시간 남았다. 내일 회의 자료를 만든다. 신규 던전 밸런스 기획서. 40페이지 PPT. 근거는 다 시뮬이다.1스테이지: 평균 5턴 클리어 (시뮬 결과 첨부) 2스테이지: 평균 7턴 클리어 (시뮬 결과 첨부) 보스 스테이지: 평균 12턴 클리어 (시뮬 결과 첨부)PD가 물으면 대답할 수 있다. "시뮬 돌려봤습니다." 숫자가 있다. 근거가 있다. 엑셀이 없었으면 어떻게 했을까. 감으로? "이 정도면 적당할 것 같은데요?" 안 된다. 게임은 감으로 만드는 게 아니다. 물론 재미는 감이다. 숫자로 재미를 만들 순 없다. 하지만 밸런스는 숫자다. 숫자로 만든다. VLOOKUP으로 데이터를 불러온다. IF문으로 전투를 계산한다. RAND()로 확률을 구현한다. 이게 내 무기다. 프로그래머는 코드를 짠다. 아티스트는 그림을 그린다. 나는 엑셀을 친다. 손목이 아프다. 마우스를 너무 많이 썼다. 내일은 트랙볼을 사야겠다. F9를 누른다. 시뮬이 돌아간다. 3초 기다린다. 결과가 나온다. 평균 11턴 클리어. 괜찮다. 목표는 10~12턴이었다. 밸런스 맞다. 저장한다. Ctrl+S. 15.2MB 파일이 저장된다. 3년 된 파일이다. 시트 47개. IF문 수천 개. VLOOKUP 수만 개. 이게 내 인생이다.엑셀 함수만으로도 게임은 만들어진다. 아니, 밸런스는.
- 03 Dec, 2025
런칭 D-3: 잠이 안 오는 밤을 보내는 이유
런칭 D-3: 잠이 안 오는 밤을 보내는 이유 새벽 2시, 슬랙 알람 눈을 뜨니 새벽 2시 47분. 슬랙 알람이 울렸다. QA팀 메시지다. "시스템 기획님, 긴급입니다. 특정 조건에서 경험치 2배로 들어가요." 심장이 멎었다. 경험치 2배면 레벨 밸런스 전부 박살. 게임 수명이 절반으로 줄어든다. 침대에서 노트북 켰다. 런칭까지 3일 남았다.3개월 전만 해도 이 프로젝트 시작할 때 생각했다. "이번엔 여유롭게 가자." 런칭 3개월 전 일정표 짰다. 버퍼도 넉넉하게. CBT 피드백 2주, 밸런스 조정 2주, 버그 픽스 1개월. 마지막 1개월은 안정화. 계획대로 된 적이 없다는 걸 왜 잊었을까. CBT는 예상보다 1주일 늦게 시작됐다. "서버 최적화 좀 더" 개발팀 말이다. 그 1주일이 지옥의 시작이었다. 피드백 정리하는데 3주 걸렸다. 유저들 의견이 400개가 넘었다. "전투가 지루해요", "보상이 적어요", "밸런스 이상해요". PD가 말했다. "이거 다 반영해야 해. 런칭은 밀 수 없어." 버퍼는 그렇게 증발했다.엑셀 지옥의 시작 밸런스 수치를 뜯어고쳤다. 경험치 테이블 전면 수정. 레벨 1부터 100까지 다시 계산. 수식이 복잡했다. 성장 곡선, 콘텐츠 해금 구간, 과금 타이밍. 하나만 잘못 건드려도 게임 전체가 무너진다. 시뮬레이션 돌렸다. 플레이 타임 10시간 기준, 20시간 기준, 50시간 기준. 무과금 유저, 소과금 유저, 고래급 유저. 케이스가 18개. 엑셀 시트가 25개. 머리가 지끈거렸다. 개발팀한테 넘겼다. "이 수치로 적용해주세요." 3일 뒤 돌아온 답변. "테이블 구조 바꿔야 해서 1주일 걸려요." 런칭까지 5주 남았는데. PD가 회의 소집했다. "우선순위 정리합시다." 핵심만 남기고 다 쳐냈다. 기획했던 기능 절반이 증발했다. '나중에 업데이트로'라는 무덤에 묻혔다. 크리티컬 버그의 향연 QA 리포트가 쌓였다. 매일 50개씩. "특정 스킬 쓰면 튕겨요." "상점 아이템 중복 구매돼요." "보스 체력 바 안 줄어들어요." 심각도 분류했다. Critical, High, Medium, Low. Critical만 38개. High가 92개. 개발팀 리드가 말했다. "Critical은 다 잡을게요. High는... 런칭 후." 불안했다. High 중에 게임플레이 망가뜨리는 버그 있는데. 하지만 개발 리소스는 한정적이다. 우선순위 싸움이다. 매일 아침 버그 트리아지 회의. 기획, 개발, QA가 모인다. "이 버그 꼭 고쳐야 해요." "시간 없어요. 런칭 후로." "그럼 유저들 난리 날 텐데요." "런칭 미루실래요?" 답 없는 대화. 매일 반복. 결국 타협한다. "이건 고치고, 저건 알려진 이슈로." 알려진 이슈. 게임 업계의 면죄부.D-7, 패닉의 시작 일주일 전. 빌드 테스트 시작했다. 실제 서버에 올린 첫 빌드. 모든 팀이 테스트. 30분 만에 슬랙이 터졌다. "로그인 안 돼요." "계정 생성 막혀요." "튜토리얼에서 진행 안 돼요." 서버팀이 급하게 핫픽스. 다시 빌드 올렸다. 이번엔 게임은 돌아갔다. 근데 상점이 안 열렸다. 결제 시스템 연동 오류. 매출의 핵심인데. PD 얼굴이 새하얘졌다. "이거 언제 고쳐져요?" "이틀... 아니 3일요." 런칭까지 7일인데. 그날부터 전쟁이었다. 매일 빌드 2개씩 나왔다. 오전 빌드, 오후 빌드. QA팀 눈이 풀렸다. 테스트 케이스가 2000개 넘었다. "더는 못 해요. 사람을 더 주세요." QA 리드가 울었다. 외주 QA 5명 긴급 투입. 비용은 신경 쓸 때가 아니다. D-3, 경험치 버그 그리고 오늘. 새벽 2시에 터진 경험치 버그. 침대에서 로그 확인했다. 특정 던전 클리어할 때. 파티 버프랑 경험치 보너스 중복 적용. 코드 찾아봤다. 개발팀이 넘긴 문서 뒤졌다. 원인 찾았다. 경험치 계산 로직이 2번 돌았다. 보너스를 두 번 먹는 거다. 슬랙에 썼다. "ExpRewardCalculator 함수에서 AddBonus가 중복 호출됩니다." 3분 뒤 개발팀 답장. "확인했어요. 고치는 중." 30분 뒤. "고쳤어요. 새 빌드 15분 뒤 올라갑니다." QA에 요청했다. "경험치 획득 전체 케이스 다시 테스트해주세요." 새벽 4시. QA 답장 왔다. "깨끗합니다." 안도의 한숨. 근데 잠이 안 왔다. 또 뭐가 터질까. 머릿속에서 밸런스 시트가 돌아갔다. 기획-개발-QA의 삼각관계 이 3일간 깨달은 것. 게임 만드는 건 줄타기다. 기획이 원하는 것. 개발이 할 수 있는 것. QA가 검증할 수 있는 것. 이 세 개가 맞아야 한다. 기획은 이상적이다. "이렇게 하면 재밌을 것 같아요." 개발은 현실적이다. "그거 구현하려면 2주 걸려요." QA는 비관적이다. "그거 버그 나면 어떡해요?" 셋이 싸우는 게 아니다. 각자 자기 역할에 충실한 거다. 기획이 욕심 안 부리면 게임이 재미없다. 개발이 안 된다고만 하면 게임이 안 나온다. QA가 너그러우면 게임이 박살 난다. 긴장 관계가 필요하다. 그 긴장이 게임을 만든다. 런칭 직전엔 이 긴장이 극대화된다. 서로 예민해진다. 말 한마디에 분위기 얼어붙는다. 어제 회의에서 개발팀이랑 부딪혔다. "이 버그 왜 아직도 안 고쳐졌어요?" "우선순위 밀린다고 기획팀이 말했잖아요." 서로 탓하기 시작하면 끝이다. PD가 중재했다. "지금 싸울 시간 없어. 버그나 잡자." 맞는 말이다. 런칭 후에 맥주 한잔하면서 후회하면 된다. 숫자의 무게 밸런스 기획의 끔찍함. 숫자 하나가 게임을 좌우한다. 경험치 배율 1.5배와 2배의 차이. 30% 차이다. 그 30%가 게임 수명 2주를 결정한다. 아이템 드롭률 5%와 3%의 차이. 체감은 엄청나다. 유저는 '확률 조작' 외친다. 던전 클리어 시간 5분과 7분의 차이. 2분이다. 근데 유저는 '노가다 게임'이라고 말한다. 이 모든 숫자를 맞춰야 한다. 시뮬레이션으로. 유저 데이터로. 경험과 감으로. 정답은 없다. 런칭하고 봐야 안다. 그게 무섭다. 내가 짠 수치로 게임이 망할 수도 있다. D-3인 지금. 더 이상 수치 못 만진다. 빌드 프리징. 바꿀 수 없다. 이대로 나간다. 불안하다. 심장이 계속 두근거린다. 새벽의 커피 결국 잠 못 잤다. 5시에 일어났다. 커피 내렸다. 오늘의 다섯 번째. 슬랙 열었다. 밤새 메시지 37개. 대부분 버그 리포트. 다행히 Critical은 없다. Medium 2개. Low 8개. "확인했습니다. 추적 중입니다." 매크로처럼 답장 쳤다. 회사 가야 한다. 오늘도 긴 하루다. D-3. 72시간 남았다. 런칭하면 끝일까. 아니다. 시작이다. 유저 반응 모니터링. 실시간 데이터 분석. 긴급 패치 대응. 지옥은 계속된다. 그래도. 내가 만든 게임이 세상에 나온다. 3년 걸렸다. 떨린다. 무섭다. 기대된다. 런칭날 상상 가끔 상상한다. 런칭날 아침. 앱스토어 순위 새로고침. 10위, 5위, 1위. 유저 리뷰 확인. "재밌어요", "밸런스 좋네요". 그런 댓글 보면. 밤샌 거 다 잊을 것 같다. 근데 현실은. "버그 많아요", "과금 유도 심해요". 각오는 했다. 게임 기획자의 숙명. 유저는 완벽을 원한다. 우리는 인간이다. 실수한다. 최선을 다할 뿐이다. D-3의 밤. 잠 못 자는 이유. 완벽하고 싶어서. 망치고 싶지 않아서. 3년이 허무하게 끝날까 봐. 그래서 새벽까지 버그 잡는다. 숫자 다시 확인한다. 시뮬레이션 한 번 더 돌린다. 이게 게임 기획자다.D-3. 심장은 계속 뛴다. 런칭까지.
- 02 Dec, 2025
0.1 수치 차이가 게임을 망친다: 밸런스 패치의 진실
공격력 100에서 99로: 소수점의 무게출근했다. 9시 45분. 피드백 채널을 열었다. 어제 저녁 8시에 올린 패치 이후 댓글이 1200개다. 공격력 100에서 99로 내린 거 맞다. 하지만 댓글을 읽으면 게임 전체가 망한 것 같은 느낌이 든다. "밸런스 똥겜" "이 정도면 악의적 너프 아니냐?" "개발사 게임 이해를 못 하나?" 숫자는 작다. 정말 작다. 1%다. 하지만 이 1%가 전투의 결과를 바꾼다. 전투 길이가 1초 줄어든다. 그 1초가 타이밍을 바꾼다. 그 타이밍이 클릭을 바꾼다. 클릭이 모여서 게임이 된다. 나는 왜 99를 눌렀나. 100이 아니라. 데이터는 거짓말을 하지 않는다 (하지만 진실도 말하지 않는다) 어제 데이터를 봤다. DPS 차트를 그렸다. 직업별 평균 데미지. 전사 클래스가 계산상 18% 높게 나왔다. 이론상으로는. 실제 필드에서 측정한 데이터다. 1000명 이상 플레이어. 던전 800번 이상. 변수는 최대한 통제했다.던전별 난이도 정규화 플레이 시간 3시간 이상 유저만 이번 시즌 처음 온 뉴비 제외 장비 격차 20% 이내데이터는 명확했다. 18%는 너무 크다. 밸런스 게임이 아니다. 그러면 얼마만큼 줄여야 하나. 이론상 공격력을 10% 깎으면 거의 같아진다. 100에서 90. 하지만 그건 너무 크다. 느껴진다. 유저가 느낀다. 내 캐릭터가 약해진 걸. 그래서 10은 너무 크다. 5는 어떤가. 95. 그럼 실제 게임에서는 얼마나 차이가 나나. 시뮬을 돌렸다. 엑셀에서. 이론상 DPS 차이 13%. 여전히 크다. 3은. 97. 다시 돌렸다. 11%. 여전히. 2는. 98. 9%. 9%는 좀 괜찮나. 아니다. 여전히 우월하다. 1은. 99. 8.2%. 8%면 괜찮다. 게임의 정체성을 잃지 않으면서도 밸런스를 맞춘다. 근거가 있는 숫자다.그런데 유저는 뭐라고 했나. "왜 1을 깎았어?" 라고 물어봤다. 그 "왜"에 답하려면 얘기가 길어진다. 근거를 제시한다는 것의 무게 회의실에 불렸다. 10시. PD가 물었다. "유저들이 왜 이렇게 난리야?" 내가 말했다. "DPS 분석 결과, 직업 간 상대 격차가 18% 있었고요. 표본은 3주간 1000명 이상, 800회 이상의 던전 플레이 데이터입니다. 난이도 정규화와 신규 유저 제외 처리를 했습니다." PD가 물었다. "그럼 왜 하필 99야? 90은 안 됐어?" 내가 말했다. "90으로 하면 DPS 이론상 차이가 8%까지 떨어지는데, 실제 체감 난이도 조정이 너무 커집니다. 신규 직업이라 유저들의 애정이 있는 상태라, 급격한 너프는 유저 이탈로 이어질 가능성이 높습니다. 99는 1%의 데미지 감소이지만 누적 효과로 DPS 격차를 8.2%까지 낮출 수 있습니다." PD가 했다. "근데 유저들은 납득을 못 하네." 맞다. 그게 문제다. 숫자를 말한다고 납득하는 건 아니다. 특히 게임에서는. 느낌이 중요하다. 100에서 99로 깎았다는 건 "약해졌다"는 느낌이다. 그 느낌이 파괴적이다. 논리와 상관없이. 내가 할 수 있는 건 근거를 제시하는 것뿐이다.18% DPS 격차는 게임 설계상 오류다. 데이터 기반 조정이다. 임의가 아니다. 1%는 누적하면 게임을 바꾼다. 유저의 애정과 밸런스의 균형이다.하지만 "논리"는 게임에서 약하다. 게임은 감정이 먼저다. 감정이 먼저고, 나중에 논리가 따라온다. 역순이 아니라. 숫자 하나가 불러오는 체인 리액션 밤 11시. 커뮤니티 매니저가 톡을 쳤다. "밸런스 이슈 관련 글이 너무 많아서 상단 고정 게시판에 공지를 올려야 할 것 같아요. 뭐라고 말할까요?" 나는 뭐라고 말해야 하나. 공격력 100 → 99. 1%의 감소. 이게 게임에서 뭘 의미하는가.전투 1분 30초가 1분 29초로 줄어든다. (평균) 그럼 플레이어는 1초를 덜 방어한다. 1초를 덜 방어하면 1회 공격을 덜 받을 확률이 올라간다. 받는 데미지가 줄어든다. 플레이어가 죽을 확률이 1.2% 내려간다. 던전 클리어 확률이 올라간다.역으로, 전사 직업이 너무 강했다는 뜻이다. 플레이어가 죽을 때까지의 시간이 더 짧았다. 그 "짧음"이 게임을 지배했다. 99로 만드는 건 그 지배를 약화시키는 것이다. 1%씩. 유저는 느낀다. 캐릭터가 약해졌다고. 맞다. 약해진 거 맞다. 하지만 "우월한 약함"에서 "적절한 약함"으로 바뀐 것뿐이다.그런데 숫자를 한 번 건드리는 데는 시간이 더 걸린다. 패치 노트를 썼다. 3시간. 왜 99인지 설명하려고. 데이터도 붙였다. 표는 5개. 그래프는 3개. 하지만 패치 노트는 한 줄로 읽힌다. "전사 공격력 100 → 99로 조정" 끝. 근거를 쌓는 일은 외로운 일이다 밤 1시. 여전히 댓글이 올라온다. "개발사 게임을 모르는 듯" "밸런스 감각이 없네" "한국 게임사는 다 똑같네" 나는 근거를 들고 있다. 1000명의 데이터. 3주간의 기록. 정규화된 변수들. 8.2%의 이론상 격차. 유저는 감정을 들고 있다. 캐릭터가 약해진 느낌. 내 캐릭터를 깎는 느낌. 개발사가 내 플레이를 무시하는 느낌. 누가 맞는 건가. 둘 다다. 게임은 숫자가 아니라 감정이 먼저 와야 한다. 그런데 감정만 있으면 게임이 무너진다. 밸런스 없이는 재미가 없다. 재미 없으면 게임이 아니다. 그래서 숫자가 필요하다. 숫자로 감정을 지탱하는 것. 하지만 그 숫자가 감정을 자극한다. 99는 나의 근거다. 100은 유저의 추억이다. 이 격차를 줄이는 건 숫자로 되지 않는다. 커뮤니케이션으로 해야 한다. 그런데 커뮤니케이션은 게임 기획 업무가 아니다. 그건 마케팅팀이 해야 한다. 그런데 마케팅팀은 "유저들이 이해를 못 하니까 기획팀이 더 좋게 설명해주세요"라고 한다. 결국 나한테 온다. 근거를 들고 있는 나한테. 오전 3시. 피드백 채널을 다시 열었다. 댓글 3500개다. 0.1의 무게를 다시 생각해본다 아침 6시. 퇴근하지 않은 상태로 새벽이 됐다. 커피를 마셨다. 네 번째다. 손목이 아프다. 마우스를 움직인 지 8시간. 목도 아프다. 화면을 본 지 8시간. 눈도 아프다. 숫자를 읽은 지 8시간. 그런데 여전히 99다. 내가 실수했나. 100으로 해야 했나. 아니다. 데이터가 말해준다. 18%는 너무 크다. 99는 맞다. 그런데 맞다는 게 뭔가. 게임은 객관적 게임이 아니다. 주관적 게임이다. 내가 만드는 게 아니라 유저가 경험하는 게 게임이다. 유저가 "약해졌다"고 느끼면 약해진 게 맞다. 데이터상 8.2% 격차 감소가 아니라. 하지만 동시에, 18% 격차는 게임이 아니다. 그건 "선택지 없음"이다. 직업 선택이 자유가 아니다. 전사만 해야 한다. 그래서 너프를 해야 한다. 99는 그 "선택지 없음"을 "약간 선택지 있음"으로 바꾼 것이다. 여전히 전사가 강하지만, 이제 다른 직업도 가능하다. 게임이 된 것이다. 99가 맞다. 그런데 이 "맞다"를 설명하는 데 8시간이 걸렸다. 그리고 여전히 유저는 안 받아줄 거다. 이게 게임 기획의 현실이다. [IMAGE_4] 0.1은 미래다 아침 8시. 회사에 다시 들어갔다. 퇴근해서 2시간을 자고 다시 출근했다. 이번엔 다음 패치를 생각했다. 다음 달이다. 그 다음 달. 그리고 그 다음. 매 패치마다 0.1씩 조정한다. 99는 첫 번째다. 다음은 98.5일 수 있다. 그 다음은 98일 수도 있다. 또는 유저의 반응에 따라 99.5로 올라갈 수도 있다. 게임은 한 번의 결정이 아니다. 지속적인 조정이다. 그 조정의 최소 단위가 0.1이다. 아니, 0.01일 수도 있다. 내 직업은 그걸 반복하는 것이다. 데이터를 본다. 근거를 찾는다. 숫자를 조정한다. 유저의 반응을 본다. 다시 반복한다. 밤새 올라온 피드백을 본다. 댓글 5200개다. 그중 긍정 평가는 400개. 7%. 충분한가. 아니다. 최소 30%는 필요하다. 그럼 또 조정해야 한다. 99가 아니라 99.2여야 할까. 99.3이여야 할까. 다시 엑셀을 켜진 않았다. 대신 유저 댓글을 읽었다. "전사는 재미없어졌다" "다른 직업 해볼게" "밸런스 좋아졌다" "여전히 전사가 강한데?" 모순된 의견들이다. 하지만 모두 맞다. 전사는 여전히 강하고, 다른 직업도 이제 선택지가 되고, 재미있는 사람도 있고 없는 사람도 있다. 그게 "밸런스가 좋아진" 상태다. 그런데 7%의 긍정 평가는 낮다. 아직 갈 길이 멀다.99는 끝이 아니라 시작이었다. 다음은 99.5일 거다.