경험치 곡선을 만들어낼 때 했던 실수
유튜브에서 산수 이야기를 하는 영상에 3차함수 곡선이 지나가는 모습을 보니 문득 곡선과 관련된 과거의 에피소드 두 개가 생각났습니다. 둘 다 단순히 에피소드라고 하기에는 고객 뿐만 아니라 개발팀과 운영팀에도 작지 않은 상처를 남겼고 또 다른 에피소드는 팀 내 기대수준을 제대로 인식하지 못해 서로가 상대의 의도를 전혀 납득하지 못한 결과로 치달았습니다. 오늘은 게임을 만들며 여러 숫자로 구성된 곡선을 잘 못 만들어 문제를 일으킨 두 가지 에피소드를 소개하고 이로부터 배운 점에 대해 이야기 하겠습니다.
첫 번째는 가칭 ‘역 경험치 사건’. 첫 MMO 게임을 만들면서 어쩌다 보니 시스템 상당 부분과 밸런스를 담당하게 되었습니다. 지금 와서 생각하면 MMO 게임 전체 밸런스를 담당자 한 명에게, 그것도 일을 시작한 지 얼마 안 된 경험이 부족한 주니어에게 맡긴 것 자체가 올바른 선택이 아니었다고 생각하지만 또 한편으로는 그 때는 그럴 수 밖에 없는 상황이기도 했습니다.
당시에 주어진 요구사항은 게임을 시작하고 나서 주요 성장구간을 지나는 동안 PvE 컨텐츠를 통해 적당한 수준의 플레이 시간을 확보하는 것이었습니다. 사실 플레이 시간에만 집중한다면 게임 밸런스를 맞추는데 필요한 요소는 복잡하지 않습니다. 플레이어는 전투를 통해 몬스터를 잡고 몬스터는 경험치를 드랍합니다. 전투 시스템을 통해 클래스 별로 표준 전투 1회에 걸리는 시간이 대략 비슷해지도록 설계했기 때문에 레벨 1에서 표준 전투 1회에 걸리는 시간을 기준으로 레벨 별 다음 레벨을 올리는데 걸리게 만들 시간을 계산해 이 시간에 맞춰 몬스터가 드랍할 경험치를 설정합니다. 파티 플레이나 한 몬스터를 여러 플레이어가 함께 사냥하는 등 플레이 시간에 영향을 줄 요소를 고려해 순수하게 연속 사냥을 통한 성장 시간에 가중치를 설정해 만들어낸 예상치와 실제 플레이를 비교해 보고 예상치 도출 방법을 수정하거나 몬스터가 드랍하는 경험치를 수정하기를 반복하면 됩니다.
막상 베타를 시작해보니 플레이어들은 초중반 특정 레벨 구간에서 예상보다 훨씬 느리게 성장하고 있었는데 정확한 원인을 파악하기 쉽지 않았습니다. 나중에서야 이전에 '왜 현대 게임에 그렇게 많은 종류의 재화를 사용하나요?'에서 소개한 퍼시스턴트 레벨에 퀘스트 몬스터를 계속해서 스폰 시킨 문제가 원인이었음을 알게 됐지만 그 때는 이런 문제가 일어나고 있는지 조차 모르는 상황이었습니다. 플레이어들의 성장을 모니터링하던 운영에서는 다급히 문제를 해결하기를 원했고 정확한 원인을 모르는 이상 문제가 생기는 구간의 성장 속도를 조절해 해결하기로 합니다. 여기서 중대한 실수를 저질렀습니다.
국소적으로 성장 속도를 올리는 방법은 여러 가지가 있습니다. 레벨 상승이 느려지는 구간에서 주로 사냥할 몬스터들이 드랍하는 경험치를 올리거나 이 구간에서 플레이 할 퀘스트 보상 경험치를 올리는 식으로 목표인 레벨 구간 별 경험치 요구량을 그대로 둔 채 그 요구량에 더 빨리 도달하게 만드는 방법과, 레벨 상승이 느려지는 구간의 레벨 별 경험치 요구량 자체를 줄이는 방법이 있습니다.
전자는 훨씬 자연스럽지만 준비하는데 시간이 걸립니다. 이 구간 몬스터들의 경험치를 조절하면 별도의 안전장치가 없는 이상 이 구간에 사냥하는 플레이어 뿐만 아니라 다른 레벨 대 플레이어들도 이 몬스터들을 사냥하게 되고 의도한 것 보다 더 넓은 레벨 구간에 걸쳐 성장 속도를 올리게 됩니다. 현대에는 레벨 차이가 많이 나는 몬스터를 사냥하면 패널티를 주거나 한 자리에서 너무 오래 사냥하면 셩험치를 낮추는 등 다양한 안전장치가 있지만 그 때는 지금 생각해보면 너무 당연한 안전장치가 없는 상황이었습니다. 그래서 성장 속도를 올려야 하는 구간 몬스터들의 경험치를 조절하고 이를 테스트 해 생기는 문제에 대응하는 규칙을 통해 안전장치를 마련한 다음에야 문제를 해결할 수 있었는데 이를 감당할 만한 시간 여유가 없었습니다.
후자는 순식간에 할 수 있지만 게임 전체의 성장 규칙을 건드리게 됩니다. 특정 레벨 구간에서 성장을 빠르게 만들려면 그 구간의 요구 경험치량을 줄이면 됩니다. 지금에 와서 보면 황당한 방법이지만 그 때는 제한시간 안에 빨리 실행할 수 있는 방법이라고 생각했고 당장 성장 속도가 느리다고 불만을 제시하는 유저들 앞에 뭐가 됐든 대책을 제시하고 실행해야만 했습니다. 하지만 모든 레벨 성장 구간에 걸쳐 경험치 요구량은 서로 연속해서 배치되어 있기 때문에 한 구간의 경험치 요구량을 변경하면 그 다음에 나오는 모든 레벨의 레벨업 시점이 틀어집니다. 또한 이전 레벨에 비해 다음 레벨의 경험치 요구량이 항상 증가하는 형태가 직관적인데 이 문제 상황을 뚜렷하게 해결하기 위해서는 이전 구간에 비해 더 적은 경험치를 얻어 다음 레벨로 올라가게 만들어야 했습니다.
결국 아주 빠르게 특정 레벨 구간의 경험치 요구량을 그 이전 레벨의 경험치 요구량보다 더 낮춘 패치를 순식간에 준비합니다. 하지만 이 상황을 설명하기 위해 운영에서는 장황한 공지사항을 준비해야 했을 뿐 아니라 유저들은 이전 레벨보다 요구 경험치량이 더 낮아진 상태를 ‘역경험치 버그’라며 커뮤니티에 공유하기 시작했습니다. 또한 그 레벨 구간 이후의 모든 레벨 구간에서도 경험치 요구량과 그 레벨에 도달하기 위해 필요한 누적 경험치가 모두 변경되어 문제가 있던 구간보다 레벨이 높은 유저들의 불만을 들어야 했습니다.
올바른 접근 방법을 알고 있었음에도 문제를 빨리 해결해야 한다는 압력 때문에 올바르지 않은 방법을 사용한 사례라고 생각합니다. 먼저 특정 레벨 구간에서 성장 속도가 예상보다 더 빠르다면 먼저 예상과 실제에 차이가 생기는 원인을 찾아야 했습니다. 실제로 위에서 설명한 이 구간에서 성장 속도에 차이가 생긴 원인은 경험치 업데이트를 한 그 주 안에 발견되었는데 이 문제를 해결하자 소위 ‘역경험치 버그’만 남게 되었습니다.
또한 초반 구간의 성장 속도 문제는 그렇게 다급하게 해결해야만 하는 문제가 아니었다고 생각합니다. 커뮤니티에서 당장 아주 많은 사람들이 이야기하고 있다 하더라도 같은 문제를 인식하고 해결 방안을 도출했으면 이 상황을 공유하고 해결 방안을 실행하는데 시간이 필요함을 고객들에게 알리고 양해를 구했어야 했습니다. 현대에는 개발팀과 고객들이 좀 더 가까이 의사소통을 하며 이런 상황을 공유하고 있습니다. 하지만 그 때는 그런 생각을 하지 못했고 다급하게 상황을 때우는 업데이트를 해서 이 상황을 고객들에게 설명해야 했던 일선의 운영팀과 이 이상한 상황에도 불구하고 게임을 계속해야 했던 고객들에게 상처를 남겼습니다.
두 번째는 ‘경험치 곡선 사건’. 한번은 중국계 회사의 한국 사무소에서 개발하는 프로젝트에 참여했습니다. 이 프로젝트는 꽤 매콤해서 도저히 안되겠다 싶어 빠르게 탈주하고 이력에도 기록하지 않았지만 이곳에서는 짧은 시간 동안 여러 에피소드를 겪으며 정말 이 업계에 계속해서 남아 있어도 괜찮은지를 심각하게 고민한 계기가 되었습니다. 어쩌다 보니 이 곳에서도 전문 분야가 아닌 ‘전투 밸런싱’ 일을 하게 됐는데 맨 먼저 하게 된 일은 위에서 소개한 일과 비슷한 엔드컨텐츠에 도달하게 될 소위 ‘만렙’이 될 때 까지 레벨 별 경험치를 설정하는 일이었습니다.
이 프로젝트에서는 테크 리드가 프로젝트 전체에 상당한 영향을 끼치고 있어 다양한 요구사항을 제시하곤 했는데 이 때 받