긴급 핫픽스 3시간: 런칭 후 첫 주말의 악몽

긴급 핫픽스 3시간: 런칭 후 첫 주말의 악몽

긴급 핫픽스 3시간: 런칭 후 첫 주말의 악몽 토요일 오전 10시 12분 커피 내리고 있었다. 전날 밤 12시까지 일했으니까 오늘은 천천히 쉬려던 참. 그때 카톡이 왔다. "기획님, 유저 커뮤니티 봐보세요. 난리났어요." PD다. PD가 주말에 연락하면 100% 큰일이다. 손이 떨렸다. 커뮤니티 들어갔다. 핫이슈 1위. "신규 무기 강화 확률 99%? 밸런스 개박살났네요 ㅋㅋ" 아. 망했다.10시 30분, 회사로 택시 탔다. 평소엔 지하철인데 급했다. 머릿속으로 시뮬레이션 돌렸다. 신규 무기 강화 데이터... 엑셀 작업할 때 분명 10%로 입력했는데. 설마 소수점 잘못 찍어서 0.99가 아니라 99로 들어간 건가. 아니면 코드에서 곱하기 할 걸 나누기 했거나. 프로그래머가 확률 공식 잘못 짜거나. 경우의 수가 너무 많다. 일단 가서 데이터부터 뜯어봐야 한다. 택시비 18,000원. 주말 할증. 11시, 전쟁 시작 회사 도착했다. 이미 PD랑 프로그래머 2명이 와 있었다. "몇 명이나 강화했어요?" "대충... 3,200명 정도요." "망했네." 일단 상황 정리했다.신규 무기 강화 성공률이 99%로 적용됨 원래는 10% 설정 새벽 4시 업데이트 후 6시간 동안 노출 이미 3천 명 이상이 최고 등급 무기 획득이건 롤백도 안 된다. 이미 그 무기로 PVP 돌린 유저들 많음. 롤백하면 더 난리난다. "일단 긴급 점검 공지 올리세요." "보상은요?" "나중에 생각합시다."11시 30분, 원인 분석 데이터 파일 열었다. 엑셀 시트 10개 넘게 교차 확인. 찾았다. 강화 확률 테이블에서 신규 무기 ID가 잘못 매핑됐다. 기존 이벤트 무기(확률 99%) ID를 그대로 복붙한 거다. 내가 했다. 지난주 금요일 밤 11시, 졸린 눈으로 작업하다가. "제 실수입니다." PD가 말없이 커피 건넸다. "일단 고치죠." 고맙다. 다른 회사 같으면 지금쯤 회의실에서 사고 보고서 쓰고 있을 거다. 12시, 수정안 회의 문제는 간단하지 않았다. 그냥 확률만 10%로 고치면 끝? 아니다. 이미 3,200명이 무기 강화했다. 그 중 99%는 원래대로면 실패했어야 하는 사람들. 그들이 얻은 무기 때문에 전체 밸런스가 무너진다. 선택지는 세 가지였다. 1안: 롤백모든 유저를 6시간 전으로 되돌림 강화 성공한 사람들 다 원상복구 장점: 게임 밸런스 정상화 단점: 유저 폭동2안: 하향 조정해당 무기 성능을 낮춤 강화는 유지, 무기만 약화 장점: 데이터만 수정 단점: 강화한 사람들 화남3안: 전체 상향다른 무기들도 같이 강화 확률 올림 또는 해당 무기 획득 이벤트 진행 장점: 유저들 좋아함 단점: 기존 밸런스 설계 다 뒤집힘회의 30분. 결론: 2안 + 보상. 무기 공격력 30% 하향. 전체 유저에게 강화석 100개 지급.12시 40분, 데이터 수정 엑셀 켰다. 무기 스탯 시트 열었다. 공격력: 5200 → 3640 크리티컬: 15% → 12% 스킬 데미지: +35% → +25% 숫자 하나하나 바꿀 때마다 심장이 떨렸다. 이 수치가 맞나. 너무 약하게 만든 건 아닌가. 시뮬 돌려볼 시간도 없다. 일단 밸런스 공식에 대입했다. DPS 계산... 기존 무기 대비 115%. 원래는 180%였으니까 적절하다. 파일 저장. 버전 관리 폴더에 백업. 빌드 폴더에 업로드. 1시 10분, 빌드 테스트 프로그래머가 테스트 서버에 적용했다. QA가 확인한다. "무기 스탯 정상 적용됐습니다." "강화 확률도요?" "10%로 정상입니다." "PVP 밸런스는요?" "... 테스트 중입니다." 기다렸다. 10분. "기존 최상위 무기 대비 105~120% 사이네요." "오케이. 패치하죠." 1시 30분, 라이브 적용 긴급 점검 공지 올라갔다. "1시 30분부터 2시까지 긴급 점검 진행합니다." 유저 반응은 두 갈래였다. "ㅋㅋㅋ 강화 개꿀이었는데 이제 너프하네" "버그 이용한 거 롤백 안 하냐?" 대응 공지 작성했다. PD랑 같이. "금일 오전 신규 무기 강화 확률 오류 발견 원인: 데이터 테이블 매핑 오류 조치: 해당 무기 성능 조정 + 전체 보상 지급 보상: 강화석 100개, 골드 50만" 올렸다. 반응은... 생각보다 괜찮았다. "보상 ㅆㅅㅌㅊ" "강화 성공은 유지해주네 ㄱㅅ" 물론 화난 사람도 많았다. "이게 무슨 보상이냐" "너프 먹인 거 환불해라" 하지만 폭동 수준은 아니었다. 2시, 모니터링 점검 종료. 서버 재시작. 실시간 유저 수 확인: 52,300명. 평소 주말 오후: 48,000명. 오히려 늘었다. 사람들이 뭔 일인가 해서 들어온 거다. 커뮤니티 반응 모니터링. 30분 동안 새 글 150개. 욕 40%, 이해 30%, 보상 칭찬 20%, 기타 10%. 허용 가능한 비율이다. PVP 밸런스 데이터 실시간 수집. 신규 무기 승률: 54%. 기존 최상위 무기 승률: 52%. 오케이. 밸런스 잡혔다. 3시, 정리 PD가 말했다. "고생하셨습니다. 오늘은 푹 쉬세요." 프로그래머들도 퇴근했다. 나도 나왔다. 집 가는 지하철. 핸드폰으로 커뮤니티 계속 확인했다. "이번 핫픽스 빨랐네" "보상 좀 주는 게임이긴 함" "그래도 처음부터 제대로 하지" 마지막 댓글이 제일 아팠다. 맞는 말이니까. 그날 밤 집 도착. 오후 4시. 침대에 누웠다. 핸드폰 알람 100개 넘게 쌓여 있었다. 카톡, 슬랙, 디스코드. 다 끄고 싶었다. 하지만 못 끈다. 언제 또 터질지 모르니까. 저녁 7시쯤 PD한테 연락 왔다. "매출 확인했어요. 오늘 평소 대비 130%네요." "...네?" "사람들이 화났는데 게임은 더 하네요 ㅋㅋ" 웃겼다. 울어야 할지 웃어야 할지 모르겠다. 월요일 아침 출근했다. 팀원들이 커피 사줬다. "주말에 고생했죠?" "괜찮습니다." PD가 회의실로 불렀다. 사고 보고서 작성. 원인: 기획자 복붙 실수 재발 방지: 데이터 검수 프로세스 추가 서명했다. 인사 평가에 반영된다. 이번 분기 성과급 날아갔다. 하고 싶은 말 게임 기획은 숫자 싸움이다. 0.1%만 틀려도 밸런스 무너진다. 런칭 직후가 제일 무섭다. 버그 하나가 서비스 전체를 흔든다. 이번엔 3시간 만에 잡았다. 다행이다. 어떤 회사는 며칠씩 걸린다. 어떤 회사는 롤백 못 해서 망한다. 우리 팀은 잘 막았다. PD가 빠르게 결정했고 프로그래머가 빠르게 고쳤고 나는... 빠르게 실수했다. 다음엔 안 그럴 거다. 라고 말하고 싶지만. 솔직히 모르겠다. 야근하면서 졸린 눈으로 데이터 만질 때 또 실수할 수도 있다. 그게 이 일이다.주말도 없다. 긴급 점검은 예고 없이 온다. 그래도 3시간 만에 막아냈다. 다행이다.

시즈널 콘텐츠 패치가 망했을 때의 심정

시즈널 콘텐츠 패치가 망했을 때의 심정

3개월의 노가다가 72시간 만에 3개월이었다. 기획 회의만 8번. 밸런스 시뮬레이션 돌린 횟수 47번. 엑셀 시트 버전 23개. QA 이슈 283건 처리. 런칭 전날 새벽 4시까지 최종 점검. 시즌2 '겨울의 전쟁' 콘텐츠. 신규 던전 5개, 보스 3체, 아이템 127종, 밸런스 패치 노트 A4 12페이지. PD가 말했다. "이번 시즌은 대박 난다." 목요일 오전 10시 패치 오픈. 점심때까지 동접 7만. "잘 되는 건가?" 오후 2시, 커뮤니티 게시판 새로고침. 3시, 계속 새로고침. 4시, 손이 떨렸다. "보상 쓰레기", "난이도 ㅈ같음", "3개월 준비한 게 이거?", "접는다 ㅂㅂ" 금요일 아침 회의실. 데이터 분석팀이 ppt 켰다. 그래프가 전부 빨간색이었다.숫자는 거짓말을 안 한다 "1일차 신규 콘텐츠 진입률 23%. 목표 대비 절반입니다." 침묵. "2일차 재진입률 8%. 작년 시즌1은 34%였습니다." 더 긴 침묵. "평균 플레이 타임 12분. 예상은 45분이었고요." PD가 노트북 덮었다. "원인 분석부터." 원인? 알고 있었다. 다 알고 있었다. 보스 체력 1.8배 올린 거. 보상 확률 0.3% 낮춘 거. 난이도 곡선 후반에 몰아넣은 거. 시뮬레이션에선 괜찮았다. 숫자상으론 완벽했다. 유저는 숫자가 아니었다. 오후 내내 유저 피드백 정리했다. 커뮤니티 댓글 350개, 인게임 문의 127건, 유튜브 리뷰 영상 8개. 전부 봤다. 하나하나 엑셀에 정리하면서 속이 타들어갔다. "보스 패턴 짜증", "보상 안 나옴", "시간 대비 효율 최악", "과금 유도 심함" 마지막 거는 억울했다. 과금 안 해도 깨라고 밸런스 잡았는데. 3주 동안 무과금 테스트 플레이 직접 했는데. 근데 유저는 그렇게 느꼈다. 밤 10시, 팀장이 말했다. "긴급 패치 준비합니다. 월요일 오전까지." 주말이 날아갔다.72시간 안에 3개월을 뜯어고치기 토요일 아침 11시 출근. 사무실에 벌써 7명. 다 눈이 풀려 있었다. 긴급 패치 회의. 화이트보드 가득 포스트잇. 뭘 고칠 건가. 어디까지 고칠 건가. 어떻게 고칠 건가. "보스 체력 30% 하향" "보상 확률 2배" "난이도 구간 재조정" "진입 조건 완화" PD가 물었다. "이거 하면 살아나나?" 모르겠다. 솔직히 모르겠다. 근데 안 하면 확실히 죽는다. 오후 2시부터 숫자 만지기 시작했다. 보스 체력 테이블 127개 셀 수정. 드랍 테이블 83개 라인 조정. 경험치 곡선 다시 그리기. 시뮬레이션 돌리고, 검증하고, 또 돌리고. 프로그래머가 옆에서 중얼거렸다. "이거 구현하려면 빌드 새로 뽑아야 하는데." "알아요. 근데 해야죠." 저녁 8시, 치킨 시켰다. 먹으면서도 노트북 보고 있었다. 커뮤니티 반응 계속 체크. "패치 언제 하냐", "이대로면 접는다", "운영진 답 없음" 손이 떨렸다. 치킨이 목으로 안 넘어갔다. 밤 12시, 1차 검증 완료. 프로그래머랑 QA팀한테 넘겼다. "월요일 오전까지 부탁드립니다." "...네." 다들 알고 있었다. 이거 실패하면 시즌 망한다. 시즌 망하면 분기 실적 박살. 보너스 없다. 어쩌면 구조조정. 일요일 오후 4시, QA 이슈 17건. 치명적인 건 3개. 또 고쳤다. 시뮬 다시 돌렸다. 숫자 다시 맞췄다. 저녁 9시, 최종 빌드. PD한테 보고. "이거면 됩니까?" "...해봅시다." 월요일 새벽 6시 패치 공지 올렸다. 댓글이 실시간으로 달렸다. "이제야", "늦었다", "해보고 판단" 오전 10시 패치 완료. 손에 땀이 났다.숫자가 조금씩 올라갈 때 월요일 오후 2시, 첫 데이터 나왔다. 신규 콘텐츠 진입률 34%. 목표 46%보단 낮지만 23%보단 높다. 재진입률 19%. 8%에서 두 배 넘게 올랐다. 평균 플레이 타임 28분. 아직 목표 45분엔 못 미치지만. 커뮤니티 반응이 바뀌기 시작했다. "이 정도면 할 만함", "보상이 체감된다", "패치 빠르네", "운영진 일 한다" 가슴이 뛰었다. 근데 아직 모른다. 하루 데이터론 모른다. 화요일, 수요일 데이터 계속 모니터링. 진입률 38%, 41%. 재진입률 23%, 26%. 플레이 타임 32분, 36분. 천천히 올랐다. 목요일 주간 회의. PD가 말했다. "일단 고비는 넘겼습니다. 근데 초기 목표 달성은 실패. 매출 목표 대비 67%. 다음 시즌 준비할 때 이번 거 복기 필수입니다." 실패였다. 숫자상으론 분명히 실패. 근데 최악은 면했다. 퇴근길 지하철에서 생각했다. 뭐가 문제였을까. 시뮬레이션은 완벽했다. 숫자는 다 맞췄다. QA도 충분히 했다. 유저를 몰랐다. 유저가 뭘 재미있어하는지, 뭘 답답해하는지, 어느 지점에서 포기하는지. 데이터로 보고, 숫자로 계산했지만 그 뒤에 있는 사람은 못 봤다. 3개월 준비했지만 72시간 만에 무너졌다. 그리고 72시간 만에 다시 세웠다. 완벽하진 않지만 살아는 있다. 금요일 저녁 회식. 맥주 한 잔 마셨다. 팀장이 물었다. "다음 시즌은 어떻게 할 거야?" "모르겠어요. 근데 이번보단 나을 거 같아요." 거짓말은 아니었다. 이번에 배웠으니까. 숫자만 믿으면 안 된다는 거. 유저는 엑셀 셀이 아니라는 거. 완벽한 기획서보다 빠른 대응이 중요하다는 거. 다음 주부터 시즌3 기획 시작이다. 또 3개월 준비한다. 또 불안하다. 또 실패할 수도 있다. 그래도 한다. 이게 내 일이니까.3개월은 3일 만에 무너지고, 3일 만에 다시 세운다. 완벽은 없다. 다만 덜 실패할 뿐.

밸런스 이슈가 생기는 이유: 설계 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년 차 돼서 배운 거다. 그래서 어떻게 하나 답은 없다. 엑셀은 기본이다. 근데 시작일 뿐이다. 실제 밸런스는 이렇게 한다.수치 설계한다. 엑셀로. 테스트 플레이한다. 직접. 체감 확인한다. 느낌으로. 내부 테스트한다. QA랑. 베타 테스트한다. 유저랑. 출시한다. 데이터 본다. 실시간으로. 유저 피드백 본다. 커뮤니티. 수정한다. 반복한다.끝이 없다. 출시가 끝이 아니다. 시작이다. 라이브 게임은 계속 밸런스 잡는다. 2주에 한 번 패치한다. 1년이면 26번이다. 매번 엑셀 돌린다. 매번 틀린다. 매번 배운다. 3년 차 때 선배가 그랬다. "밸런스 기획자는 신이 아니다. 정원사다." 무슨 말인지 몰랐다. 지금은 안다. 식물 키우는 거랑 같다. 매일 물 준다. 햇빛 확인한다. 벌레 잡는다. 한 번에 완성 안 된다. 계속 케어한다. 밸런스도 그렇다. 그래도 엑셀은 중요하다 이렇게 써놓고 보면 엑셀 무용론 같다. 아니다. 엑셀 없으면 시작도 못 한다. 기준이 필요하다. 기준은 숫자다. "이 무기 약한 것 같아요" - 근거 없다. "이 무기 승률 42%입니다" - 근거 있다. 숫자가 있어야 대화가 된다. PD: "이거 너프 해" 나: "승률 48%인데요?" PD: "그래도 체감이..." 나: "구간별 데이터 보시죠" 데이터 없으면 주관 싸움이다. 데이터 있으면 논의가 된다. 완벽하진 않다. 근데 최선이다. 엑셀은 나침반이다. 정확하진 않다. 근데 방향은 알려준다. 북쪽이 어딘지는 안다. 가는 길은 내가 찾는다. 5년 하면서 배운 거다. 엑셀만 믿으면 망한다. 엑셀 안 믿으면 더 망한다. 둘 다 봐야 한다. 밸런스는 정답이 없다 금요일 저녁 8시. 이번 주 패치 끝났다. L무기 공격력 105에서 100으로 낮췄다. 엑셀에선 승률 51%에서 49%로 떨어진다. 실제론 어떻게 될까. 모른다. 월요일 되면 안다. 그때 커뮤니티 본다. 데이터 본다. 또 수정한다. 이게 내 일이다. 완벽한 밸런스는 없다. 덜 망가진 밸런스만 있다. 유저는 완벽 원한다. 나도 원한다. 근데 불가능하다. 게임은 살아있다. 유저가 만든다. 메타가 변한다. 나는 따라간다. 계속. 엑셀에선 완벽했던 그 설계. 시작점일 뿐이다. 현실은 변수 투성이다. 그래도 한다. 숫자 고치고. 테스트하고. 유저 피드백 보고. 또 고친다. 5년 했다. 10년 할 수 있을까. 모르겠다. 근데 오늘은 한다. 엑셀 켰다. 새 시뮬 파일 만든다. 다음 패치 준비한다. 이번엔 맞을까. 모른다. 해본다.엑셀은 거짓말 안 한다. 근데 전부도 아니다.

월요일 아침 출근 후 3분: 주말 동안의 재해를 본다

월요일 아침 출근 후 3분: 주말 동안의 재해를 본다

월요일 아침 9시 57분 사무실 문 열었다. 3분 남았다. 컴퓨터 켰다. 부팅되는 동안 커피 뽑았다. 자리 앉았다. 10시 정각. 슬랙 켰다. 알림 137개. 컨플루언스 켰다. 멘션 23개. 구글 시트 켰다. 댓글 41개. 숨 들이켰다.주말? 그게 뭐였지 금요일 6시. 퇴근했다. "이번 주말은 쉬어야지." 그렇게 생각했다. 토요일 아침 10시. 핸드폰 진동. QA팀 단톡방. "크리티컬 버그 발견." 점심 먹다가. 유저 커뮤니티 확인. "밸런스 개판이네 ㅋㅋ" 500개 추천. 저녁 먹다가. 경쟁사 업데이트 공지. "신규 콘텐츠 대규모 패치." 제길. 일요일도 마찬가지였다. 주말은 있었다. 휴식은 없었다. 첫 번째 재해: 유저 피드백 슬랙부터 봤다. CS팀이 올린 피드백 정리. 토요일 오전 9시부터 일요일 밤 11시까지. 총 217건. 카테고리별로 나눠놨다. 친절하다. 고맙다. 그래도 머리 아프다. [밸런스 문제] 89건"신규 캐릭터 너무 세요. 기존 캐릭 다 쓰레기 됐어요." "이거 너프 안 하면 게임 접어요." "과금 유도 노골적이네요 ㅋㅋ"아니. 출시 전에 시뮬 100번 돌렸다. 데이터 뽑아서 DPS 계산했다. 그래프 그렸다. 기존 S티어랑 5% 차이. 딱 적정선이었다. 근데 유저들은 "사기다" 그러더라.[시스템 버그] 43건"스킬 쓰면 튕겨요." "보상 안 들어와요." "로딩 무한 돌아요."이건 내 파트 아니다. 하지만. 기획 의도대로 구현 안 된 거면 내 책임이다. 명세서 다시 확인해야 한다. 개발팀이랑 체크해야 한다. [콘텐츠 요청] 52건"신규 던전 언제 나와요?" "PVP 모드 추가해주세요." "길드 컨텐츠 부족해요."알아. 다 알아. 로드맵에 다 있다. Q2, Q3에 순차 출시. 근데 유저들은 지금 당장 원한다. "게임 할 게 없어요." 런칭한 지 2주 됐다. [기타] 33건칭찬 5건. 고맙다. 욕 28건. 익숙하다.커피 한 모금 마셨다. 식었다. 두 번째 재해: 버그 리포트 QA팀 지라 확인했다. 주말에 올라온 이슈. 17건. 우선순위 크리티컬 3건. 하이 8건. 미디엄 6건. 크리티컬부터 봤다. [CRITICAL] 특정 조건에서 재화 중복 지급 제목만 봐도 식은땀 난다. 재현 방법 읽었다. "1. A던전 클리어 2. 보상 수령 중 앱 강제 종료 3. 재접속 시 보상 재지급 4. 반복 가능" 망했다. 이거 악용하면 경제 붕괴다. 토요일 오전에 올라왔다. 48시간 방치. 유저들 이미 알까. 커뮤니티 검색했다. "꿀팁 ㅋㅋ" 게시글 3개. 조회수 2천. 망했다. 진짜로.긴급 슬랙 올렸다. "@channel 크리티컬 이슈 발견. 긴급 점검 필요." CTO 답장. "회의실 10분 후." PD 답장. "패치 언제 가능?" 개발팀장 답장. "코드 확인 중." 커피 한 모금 더. 여전히 차갑다. [CRITICAL] 특정 스킬 사용 시 클라이언트 크래시 이것도 심각하다. 재현율 30%. 높다. 특정 캐릭터 특정 스킬. 사용 빈도 높은 스킬이다. 유저들 벌써 불만 터졌겠다. 슬랙 스크롤 올렸다. 역시. CS팀: "해당 스킬 크래시 문의 폭주 중" [CRITICAL] 랭킹 점수 계산 오류 이건 내 파트다. 완전히. 랭킹 알고리즘 내가 짰다. 엑셀로 시뮬 돌렸다. 문제없었다. 근데 실제 환경에서 오류 났다. 변수를 놓쳤다. 어디선가. 수식 다시 확인해야 한다. 지금 당장. 10시 15분. 회의 5분 전. 엑셀 열었다. 수식 찾았다. 있었다. 반올림 함수 하나. 소수점 처리 방식이 달랐다. 찾았다. 하지만. 이미 랭킹 시즌 3일 지났다. 보상 지급했다. 잘못된 랭킹으로. 어떻게 보상하지. 회의에서 싸우겠다. 세 번째 재해: 경쟁사 패치 커뮤니티 탭 하나 더 열었다. 경쟁사 공식 카페. 일요일 오후 6시 공지. "대규모 업데이트 안내" 클릭했다.신규 레이드 5개 신규 캐릭터 3종 PVP 시즌 2 오픈 밸런스 패치 대규모제길. 우리 로드맵에 있던 거다. Q2에 예정. 걔들이 먼저 했다. 댓글 읽었다. "역시 ○○겜이 최고" "□□겜(우리 게임)은 컨텐츠 없음 ㅋㅋ" "갈아탄다" 마케팅팀 슬랙 확인했다. "주말 DAU 12% 하락. 경쟁사 패치 영향 추정." PD한테 리포트 올라갔겠다. 회의에서 또 얘기 나오겠다. "대응 방안 뭐냐"고. 대응이 어딨나. 개발 기간 당길 수 없다. 퀄리티 포기하고 빨리 낼까. 욕먹는다. 천천히 제대로 만들까. 유저 이탈한다. 정답 없다. 커피 다 마셨다. 새로 뽑아야 한다. 10시 20분, 긴급 회의 회의실 들어갔다. PD, CTO, 개발팀장, QA팀장, 마케팅팀장. 나. 시스템 기획. PD가 시작했다. "상황 정리하자. 크리티컬 3건. 커뮤니티 반응. 경쟁사 패치." CTO가 답했다. "재화 중복 지급. 핫픽스 오늘 저녁 가능. 긴급 점검 2시간." "크래시 이슈. 원인 파악 중. 내일 오전까지." "랭킹 오류..." 나 쳐다봤다. 내 차례다. "반올림 함수 문제였습니다. 수정 완료했고요." "이미 지급된 보상은... 롤백 불가능합니다." PD 표정 굳었다. "보상안 어떻게 하지." 마케팅팀장이 말했다. "전체 유저 보상 지급. 사과문 게시. 이게 최선입니다." 비용 계산했다. 대충 3억. PD 한숨 쉬었다. "CFO 설득해야겠네. 알았어." 그리고 경쟁사 얘기 나왔다. "로드맵 당길 수 있나?" 개발팀장이 고개 저었다. "인력 부족합니다. QA 기간 줄이면 모를까." "줄이면 버그 더 난다." 다들 침묵했다. PD가 정리했다. "일단 핫픽스부터. 오늘 저녁 긴급 점검." "사과 보상안 오후까지 확정." "로드맵은... 다음 주 다시 논의." 회의 끝. 30분 걸렸다. 결론: 야근 확정. 책상으로 돌아와서 11시. 이제 시작이다. 할 일 정리했다.랭킹 알고리즘 수정본 개발팀 전달 사과 보상안 기획 (PD 결재용) 긴급 점검 공지문 초안 작성 유저 피드백 분류해서 각 파트 전달 밸런스 데이터 재분석 (신규 캐릭 너프 검토) 다음 주 패치 일정 재조정 QA팀이랑 크래시 이슈 재현 테스트오늘 퇴근. 11시쯤? 슬랙에 메시지 하나 더 왔다. 인턴: "기획서 검토 부탁드립니다~" 20페이지. 오늘 중으로 피드백 달라고. 추가.인턴 기획서 검토커피 뽑으러 갔다. 복도에서 동기 만났다. 클라이언트 프로그래머. "주말 푹 쉬었어?" 웃었다. 대답 안 했다. 쟤도 웃었다. 알겠다는 얼굴. 점심시간 12시 30분. 밥 먹으러 갔다. 사내 식당. 김치찌개. 팀원들이랑 앉았다. 다들 피곤한 얼굴이다. 후배가 물었다. "주말에 쉬셨어요?" "응. 커뮤니티 보면서." "저도요. 버그 리포트 보면서." 다 똑같다. 옆 테이블 아티스트팀도 마찬가지였다. "주말에 이펙트 수정했어." "나도 캐릭터 리터칭." 게임 회사에 주말은 없다. 아니. 있다. 근데 쉬지 못한다. 게임은 주말에도 돌아간다. 유저는 주말에도 논다. 문제는 주말에도 생긴다. 우리는 주말에도 본다. 밥 먹으면서도 슬랙 확인했다. 개발팀: "핫픽스 빌드 완료. QA 넘김." QA팀: "테스트 시작. 2시간 소요 예상." 4시쯤 결과 나온다. 문제없으면. 긴급 점검 공지 6시. 점검 7시~9시. 저녁 먹고 모니터링이다. 오후 2시 사과 보상안 작성 중이다. 엑셀 켰다. 항목 나열했다.골드 50만 (평소 일주일 파밍량) 강화석 100개 (평소 사흘 파밍량) 가챠 티켓 10장 (과금 아이템, 약 1만원 가치) 경험치 부스터 3일권총 가치 계산했다. 유저당 약 15,000원. 전체 유저 20만 명. 30억. PD 결재 안 날 것 같다. 줄였다.골드 30만 강화석 50개 가챠 티켓 5장 경험치 부스터 1일권총 가치 8,000원. 16억. 그래도 많다. 하지만. 이거보다 적으면 유저들 더 화낸다. "성의 없다"고. 기획 의도 적었다. "이번 랭킹 오류로 인해 피해를 입으신 유저분들께 깊이 사과드립니다. 재발 방지를 위해..." 클리셰다. 하지만 먹힌다. PD한테 전달했다. 답장 왔다. "CFO랑 협의 중. 대기." 오후 4시 QA 결과 나왔다. 슬랙 알림 떴다. "핫픽스 빌드 테스트 완료. 이슈 없음." 한숨 나왔다. 안도. 긴급 점검 확정됐다. 공지문 최종 수정했다. "안녕하세요, ○○ 운영팀입니다. 서비스 안정화를 위한 긴급 점검을 진행합니다. [점검 시간] 2024년 4월 15일 (월) 19:00 ~ 21:00 (2시간) [점검 내용]재화 지급 오류 수정 특정 스킬 크래시 수정 랭킹 점수 계산 로직 수정[보상] 긴급 점검 보상은 추후 지급 예정입니다. 이용에 불편을 드려 죄송합니다." 마케팅팀 검토 받았다. OK 떨어졌다. 6시에 게시한다. 오후 5시 밸런스 데이터 다시 봤다. 신규 캐릭터 DPS 그래프. 시뮬상으로는 문제없다. 근데 실제 유저 데이터 다르다. PVP 승률 67%. 너무 높다. PVE 클리어 타임 평균 20% 단축. 왜 차이 날까. 시뮬은 "이상적 플레이" 가정한다. 유저는 "최적화된 플레이" 한다. 신규 캐릭터 콤보가 쉽다. 기존 캐릭터 콤보는 어렵다. 숙련도 차이 안 나는데 성능 차이 난다. 이게 문제다. 너프 수치 계산했다. 스킬 데미지 8% 감소. 쿨타임 1초 증가. 이 정도면 승률 58%로 떨어진다. 적정선이다. 기획서 초안 작성했다. 내일 회의 때 얘기 꺼낸다. 커뮤니티 반응 예상된다. "과금 유도하더니 바로 너프 ㅋㅋ" 익숙하다. 오후 6시 긴급 점검 공지 게시됐다. 커뮤니티 반응 확인했다. 예상대로다. "또 점검 ㅋㅋㅋ" "보상 뭐 주냐" "2시간이면 자정까지 못 하네" "출석 체크 못 하겠는데" CS팀한테 미안하다. 오늘 밤 문의 폭주할 거다. 사과 보상 결재 떨어졌다. PD 슬랙: "CFO 승인. 8천원 안으로 확정." 휴. 다행이다. 보상 지급 스케줄 짰다. 점검 종료 후 30분 내 일괄 지급. 개발팀이랑 공유했다. 저녁 7시 긴급 점검 시작됐다. 서버 내렸다. 사무실 불 켜져 있다. 다들 남았다. 개발팀 핫픽스 배포 중. QA팀 최종 검증 대기 중. 나는 모니터링 준비. 유저 반응 체크 도구 열었다.공식 카페 새글 주요 커뮤니티 게시글 트위터 멘션 앱스토어 리뷰다 보고 있어야 한다. 치킨 시켰다. 야근 식대. 팀원들이랑 나눠 먹었다. 먹으면서도 노트북 봤다. 밤 9시 점검 종료 10분 전. 개발팀: "배포 완료. 서버 올림." QA팀: "최종 체크 중." 5분 전. QA팀: "이슈 없음. OK." 정시에 서버 열렸다. 유저들 접속 시작했다. 동접자 수 확인했다. 5천... 1만... 2만... 평소보다 높다. 보상 때문이다. 커뮤니티 확인했다. "보상 왔다" "생각보다 많네?" "이 정도면 인정" "그래도 화남" 60점짜리 반응이다. 나쁘지 않다. CS 문의 확인했다. "보상 안 들어왔어요" 30건. 예상했다. 지급 로직 확인했다. 문제없다. 캐시 문제다. 재접속하면 된다. 답변 템플릿 공유했다. 10시. 크리티컬 이슈 없다. 모니터링 1시간 더 하고 퇴근한다. 밤 11시 사무실 나왔다. 지하철 막차 시간이다. 핸드폰 봤다. 슬랙 알림 3개 더. 내일 확인한다. 오늘은 이제 끝이다. 집 도착했다. 12시. 씻고 침대에 누웠다. 핸드폰 다시 켰다. 습관이다. 커뮤니티 한 번 더 봤다. "긴급 점검 후기: 개선됐다는데 체감 안 됨" 내일 또 싸운다.월요일은 항상 이렇다. 주말 동안 쌓인 재해를 월요일 아침에 본다. 처리한다. 또 쌓인다. 다음 월요일에 또 본다. 게임 기획자의 일상이다. 끝은 없다.

게임은 사랑인데 회사가 문제다: 덕업일치의 함정

게임은 사랑인데 회사가 문제다: 덕업일치의 함정

덕업일치라고 믿었던 그때대학교 3학년 때였다. 게임 동아리에서 밤새 게임하다가 문득 생각했다. "이거 직업으로 하면 되겠네." 주변 사람들은 다 말렸다. 부모님은 "게임이 무슨 직업이냐"며 공무원 시험을 권했다. 교수님은 "안정적인 대기업 가라"고 했다. 근데 나는 확신했다. 게임 기획자가 되면 하루 종일 게임 하면서 돈 버는 거라고. 좋아하는 걸로 밥 먹고사는 게 덕업일치라고. 지금 생각하면 웃긴다. 취업 준비 1년. 포트폴리오 20개 넘게 만들었다. 게임 플레이 분석, 시스템 기획서, 밸런스 시트. 밤새 작업한 거 면접에서 10분 만에 까였다. "이건 현실성이 없어요." 그래도 포기 안 했다. 게임은 사랑이니까. 입사했을 때 기뻤다. 드디어 꿈을 이뤘다고 생각했다. 신입 연봉 3200만원. 적지만 괜찮았다. 좋아하는 일 하는데 돈이 문제냐. 첫날 출근. 선배가 말했다. "게임 좋아해서 왔구나. 6개월 뒤에 얘기해보자." 그때는 무슨 소린지 몰랐다. 숫자가 재미를 이긴 날3개월 차. 첫 프로젝트 킥오프 미팅이었다. PD가 들어왔다. "이번 게임 목표 매출 200억입니다." 재미 얘기는 없었다. 매출 얘기만 2시간 했다. 과금 구조 먼저 짰다. 게임 시스템보다 결제 창이 먼저였다. 확률형 아이템 뽑기, 성장 구간별 과금 유도 포인트, 일일 미션 보상 설계. 내가 만들고 싶었던 건 이게 아니었다. "이 캐릭터 밸런스 너무 약한데요. 버프 좀 줘야죠." 내가 말했다. 개발자도 동의했다. 재미를 위해선 당연한 조정이었다. PD가 말했다. "이 캐릭터 과금 캐릭터예요. 약하면 안 팔려요. 유저가 강한 거 사게 놔둬요." 그날 처음 알았다. 밸런스 조정이 재미를 위한 게 아니라 매출을 위한 거란 걸. 엑셀 시트 열었다. 무과금 유저 성장 곡선, 소과금 유저 성장 곡선, 고과금 유저 성장 곡선. 세 그래프가 절묘하게 벌어지게 만들어야 했다. 무과금은 느려도 되고. 소과금은 적당히 빠르고. 고과금은 압도적으로. "이거 Pay to Win 아닌가요?" 내가 물었다. "그게 비즈니스 모델이에요." 선배가 대답했다. 유저 입장에선 똥겜이다. 기획자 입장에선 회사 지시다. 런칭 전날의 허무함 밤 11시. 사무실에 불 켜진 곳은 우리 팀뿐이었다. 런칭 D-1. 마지막 밸런스 조정 중이었다. 근데 우리가 조정한 게 아니었다. 운영팀 요청으로 과금 수치를 또 올렸다. "첫 주 매출이 중요해요. 초반 아이템 가격 20% 더 올려주세요." 프로그래머가 한숨 쉬었다. "이러면 유저들 욕하는데." PD가 말했다. "첫 주만 넘기면 돼요. 나중에 이벤트로 돌려주면 되죠." 나는 말이 안 나왔다. 새벽 2시. 최종 빌드 확인했다. 내가 6개월 동안 만든 게임이었다. 재밌었다. 시스템은 탄탄했다. 밸런스도 나름 괜찮았다. 근데 재미를 느낄 수 없었다. 과금 압박이 너무 강했다. 10레벨까지 가려면 돈 쓰거나 2주 걸렸다. 경쟁 시스템은 과금 유저 잔치였다. 무과금은 구경만 하라는 설계. 동아리에서 밤새 했던 게임들이 떠올랐다. 그때는 재미있어서 했다. 돈 안 써도 됐다. 실력으로 이겼다. 지금 내가 만든 건 뭔가. 아티스트가 말했다. "우리 게임 너 할 거야?" 나는 대답 못 했다. 안 할 것 같았다. 내가 만들었는데. 유저 반응이 칼이 되는 순간런칭 당일. 오전 10시. 앱스토어 리뷰 새로고침 했다. 5분마다 댓글이 달렸다. "과금 압박 심하네", "무과금은 하지 마세요", "밸런스 개판". 가슴이 아팠다. 내 이름이 나온 건 아닌데 내 얘기 같았다. 내가 설계한 수치였으니까. 커뮤니티는 더 심했다. "기획자 머리에 뭐 들었나", "이걸 테스트도 안 하고 냈나", "매출만 생각하네". 맞는 말이었다. 실제로 매출만 생각했으니까. 오후 3시. 긴급 회의 소집됐다. 운영팀장이 말했다. "유저 반응 안 좋아요. 근데 매출은 목표치 90% 달성 중입니다." PD가 웃었다. "그럼 됐네요. 리뷰는 이벤트로 달래고." 기획팀장이 나를 봤다. "밸런스팀은 유저 달래는 이벤트 기획해줘요. 오늘 중으로." 내가 만든 문제를 내가 땜질하는 구조였다. 밤 10시. 이벤트 기획서 작성 중이었다. "무료 아이템 지급", "성장 구간 완화", "과금 아이템 할인". 땜질이었다. 근본적 해결이 아니었다. 어차피 다음 업데이트 때 또 과금 압박 강화할 거였다. 선배가 말했다. "적응해. 이게 현실이야." 나는 대답 안 했다. 적응하고 싶지 않았다. 회의실에서 죽는 기획 "이번 신규 콘텐츠는 레이드 던전입니다." 내가 발표했다. 기획서 40페이지. 2주 걸렸다. 협력 시스템, 역할 분담, 패턴 설계. 재미있을 거라고 확신했다. PD가 물었다. "과금 포인트는?" 나는 대답했다. "실력으로 클리어 가능하게 만들었어요." 회의실 분위기가 싸해졌다. "다시 만들어와요. 과금 유저 전용 콘텐츠로." PD가 말했다. "무과금은 입장 티켓부터 막아요. 재화 소모 크게 하고." 내가 물었다. "그럼 유저 절반은 못 하는데요." PD가 대답했다. "그 절반이 매출 기여 0%예요." 기획서가 쓰레기통에 들어갔다. 2주가 날아갔다. 다시 만들었다. 입장 티켓 과금제, 보상 확률형, 강화 재료 판매. 재미는 빠지고 수익 모델만 남았다. 통과됐다. "이제 그럴듯하네요." PD가 말했다. 나는 아무 말도 안 했다. 개발자가 복도에서 말했다. "너도 힘들지?" 힘들었다. "처음엔 다 그래. 나도 게임 좋아서 왔거든." 그는 이제 게임 안 한다고 했다. 퇴근하면 영화 본다고. 게임은 질렸다고. 나도 그렇게 되는 건가. 덕업일치의 진실 1년 차 끝날 무렵. 친구를 만났다. "게임 회사 어때?" 친구가 물었다. "재밌어?" 나는 웃었다. "응. 재밌어." 거짓말이었다. 집에 와서 게임을 켰다. 다른 회사 게임이었다. 재밌었다. 2시간 했다. 그러다 문득 생각했다. '이 밸런스는 이렇게 짰구나.' '이 과금 구조는 저렇게 유도하네.' '이건 매출 목표가 얼마였을까.' 게임을 게임으로 못 보고 있었다. 전부 수치로 보였다. 기획 의도가 보였다. 비즈니스 모델이 보였다. 재미가 사라졌다. 예전엔 게임이 좋았다. 스토리에 몰입했고 전투가 짜릿했다. 레벨업이 기뻤고 아이템 획득이 즐거웠다. 지금은 다 계산이다. '이 구간 성장 속도 0.8배네.' '확률 테이블 너무 짜네.' '과금 압박 타이밍 여기서 주네.' 직업병이었다. 고칠 수 없었다. 게임을 사랑했다. 지금도 사랑한다. 근데 게임 회사는 싫다. 이게 모순이라는 걸 안다. 덕업일치. 좋아하는 걸 직업으로 삼으면 행복할 줄 알았다. 틀렸다. 좋아하는 걸 직업으로 삼으면 더 이상 좋아할 수 없게 된다. 그래도 퇴사는 못 한다 5년 차다. 연봉은 올랐다. 5200만원. 게임은 여전히 좋다. 근데 게임 회사는 여전히 싫다. 매일 아침 출근한다. 유저 피드백 확인한다. "밸런스 똥겜." 맞는 말이다. 내가 만들었으니까. 근데 나만의 문제가 아니다. 팀 전체가, 회사 전체가 매출을 본다. 재미는 부차적이다. 유저 만족도는 지표일 뿐이다. 가끔 생각한다. 인디 게임 만들까. 매출 신경 안 쓰고 재미만 추구하는 게임. 근데 현실이 있다. 월세가 있고 생활비가 있다. 5200만원 버리고 월급 없이 못 산다. 동아리 후배가 연락 왔다. "형 회사 들어가고 싶어요." 나는 말했다. "다른 데 알아봐." "왜요? 형은 덕업일치 하잖아요." 덕업일치. 웃긴다. "응. 그래. 덕업일치야." 나는 거짓말했다. 오늘도 출근한다. 엑셀 연다. 밸런스 시트 수정한다. 과금 수치 조정한다. 유저는 욕한다. 회사는 매출 본다. 게임은 여전히 사랑한다. 퇴근하면 다른 게임 한다. 직업병으로 뜯어보면서. 회사가 문제다. 산업이 문제다. 구조가 문제다. 근데 나는 못 나간다. 이게 덕업일치의 함정이다.덕업일치는 환상이다. 좋아하는 걸 직업으로 삼는 순간 좋아할 수 없게 된다. 그래도 나는 오늘도 출근한다. 이게 현실이니까.