2013년 9월 30일 월요일

[Game Balance Concepts] Level 2: 숫자들 그리고 숫자간의 관계 이해하기

Level 2: 숫자들 그리고 숫자간의 관계 이해하기

July 14, 2010  Ian Schreiber



역자서문
Game Balance Concepts 라구… Ian Schreiber 라는 형님에 의해 총 10회로 진행되었던 인터넷 강좌인데, 분량도 엄청날 뿐더러 역자의 조잡한 능력으로는 너무 어려워 제대로 번역하기 곤란한 수준인지라 홍익인간의 관점에서 대단히 안타까웠음. (뭐랄까… 담배는 있는데, 라이터가 없는 그런 느낌 ㅎㅎ) 그런데, 이번에 큰 맘 먹구 2주차 강좌 하나만 무리수를 던져 보았네. 음… 무리수를 던진 이유와 굳이 2주차만 선택한 이유는 ‘밸런싱' 이라고 하는 녀석의 fundamental과 core mechanics를 이 강좌 처럼 적절한 깊이로 친절하게 다루는 녀석을 본 적이 없었기 때문인데 말야… 내가 기획자가 아니니깐 못본 게 당연한겅가? ㅎㅎ


본문에 들어가기에 앞서 잡설을 좀 한다면 내가 생각하는 게임 밸런싱의 구성은 다음과 같은 형태인데 말야...





<그림 1. 내 뇌피셜 밸런싱의 구성>


각각의 핵심적인 특징을 역시나 내 맘대로 적어보면


  • Art : 정답이 없다!
             정답 비스무리한 거 찾는데 시간과 시행착오를 수반한다. 그래서 더 크게 그렸다!


  • Engineering : 정답이 있다!
                              일단 만들어두고 나면 그 담부터는 zero-cost다.
                              1+1=2 라는 사실을 매번 고민하고 확인할 필요는 없잖아?


이런 거지.


결국 정답이 있는 Engineering 영역은 후딱 끝내고 뭐가 정답인지 까보기 전에는 알 수 없는 (즉, 테스트를 통해 감성적으로 타겟 유저들의 대부분이 ‘적당하다고 느끼는') 미지의 값을 찾아 떠나는 모험인  Art 영역에 밸런싱에 할당된 자원의 많은 부분이 투자되어야 올바른 방향이라고 생각한다구. 근데, 나름 오랜 기간 업계에 있으면서 경험한 바로는 engineering영역이 곧 밸런싱인 것으로 착각되거나 더 많은 자원이 투입되어야 하는 상황이 빈번하더라 이거지…


이건 엉뚱한 곳에 시간이 투입된 탓에 충분히 risk를 제거하지 못한 상태에서 게임이 출시되어야 할 수도 있다는 건데 말야… 왜? 같은 시간 동안 불필요한 숫자 입력작업 또는 확인작업 하느라 테스트 횟수가 줄어들 수 밖에 없었을테니까…


신뢰할 수 있는 balancing framework(engineering layer)을 한번 만들어 두고나면 마치 정대만이 강백호를 믿고 아무데서나 지맘대로 3점슛 남발할 수 있었던 것과 마찬가지로, 어떻게 하는 게 '적당할까?'에 집중하여 빠르게 게임을 테스트 해볼 수 있을텐데, framework이 부실함으로 인해 매번 일일이 final output에 해당하는 숫자들을 찾아다니며 수작업으로 고치고, 올바르게 원하는대로 반영된 게 맞아? 자체를 검증하는데 생각보다 훨씬 많은 시간을 쓰게 되더라는 것이지. 일종의 technical dept 이랄까?


적당한 지는 모르겠지만 예를 들어, 캐릭이 “레벨 10에서 11되려면 2시간 걸리게 할까 아니면 3시간 걸리게 할까?” 만 고민하면 끝이어야 하는데, “진짜 2시간 걸리나? 혹시 30분 걸릴지도 모르니 데이터 적용해서 실제 게임으로 함 직접 테스트 해봐야 겠다” 또는 렙업 소요시간 고친 것으로 인해서 다른 곳에 무슨 영향이 갈 지 예측할 수 없어서 해당 레벨대의 플레이 전반을 통으로 다시 테스트 해야 한다던가…  


더욱 극단적인 예로… 99렙에서 100렙 올라가려면 15일 걸리게 했다고 치자구… 이거 게임 출시 안하고 다 같이 앉아서 잠 안자고 진짜로 보름간 테스트 해봐야 하나? 그나마 테스트 결과가 당초 의도한 대로 나오면 다행인데 테스트 해봤더니 4일만에 렙업되구 그래 막… 그럼 숫자 여기저기 바꾸고 또 첨부터 테스트 다시 해봐야 하나? ㅎㅎㅎ


결국 상위 Layer(Art)에 신뢰할 수 있는 서비스를 제공해야 하는 Engineering Layer에서 “야! Art야! 너는 나만 믿고 global control panel sheet에서 세팅 바꾸고 싶은대로 맘대로 바꿔! 원하는대로 게임 데이터 뽑힌다는 거 무조건 보장할께" 가 되어야 하는 것이고, 이게 보장이 된다면 사실 위에서 예로들은 경우에도 1렙에서만 테스트 함 해보면 100 렙이건 1,000렙이건 “just it will work” 이라는 것을 알고있기 때문에 굳이 전수 테스트를 해야 할 필요가 없다는 것이지.


암튼 이런 관점에서… 본 강좌는 어떻게 신뢰할 수 있는 ‘Engineering Layer’를 만들고 그 동작을 검증해야 하는가에 대한 방향을 제시하고 있으니 기획자 독자제위께서는 기존에 놓치고 있던 부분 또는 잘못 생각하던 부분이 행여 발견된다면 이 강좌를 통해 다시 생각해 볼 수 있는 계기가 되었으면 좋겠네…


물론 overview이다 보니… 확율, 통계, 랜덤의 올바른 사용법, situational balance 등과 같이 디테일한 밸런싱 개별 테크닉들은 다른 회차의 강좌에 있는데 필요하면 그 건 각자 알아서들 보시라. ㅎㅎ


더불어, 원문은 그 흔한 짤방하나 없이 100% 텍스트로만 이루어진 무미건조한 녀석이었던 관계로 나름대로 이해를 돕기위해 주석드립 및 엑셀로 샘플 테이블과 그림까지 만들어 넣는 잉여력 발휘했으니, 다소 오역이나 적당히 퉁치고 넘어간 부분 발견하더라도 대충 걍 넘어가 주시는 아량 부탁하구.... 암튼 이 글을 읽는 모든 게임 기획자 여러분덜 Art가 대접받는 명랑사회 이룩하는데 힘써주시기 부탁할께~ 잇힝~


- 2013/09/23 Iron Smith





이번 주 강의주제


이번 주에는 여러분들이 게임에서 접하게 되는 서로 다른 성격의 숫자들과 각각의 숫자들을 어떻게 구분해야 하는 지에 대해서 알아보려 한다. 여러분들이 숫자들의 속성에 대해 정확히 이해하지 못하고 있다면 어떤 상황에서 어떤 숫자를 어떻게 사용해야 할 지도 모른다는 것이므로 사실상 게임 밸런싱을 한다는 것 자체가 성립하지 않는다. 따라서 차후 진행될 강좌들도 무리없이 따라가기 위해서 이번 강좌는 온전히 자기 것으로 만들고 넘어가기 바란다.


때때로 밸런싱 변경이라 하는 것은 간단히 한 종류의 숫자를 다른 종류의 것으로 대체하는 것만으로도 가능할 수 있기 때문에 밸런싱을 위해 어떤 종류의 숫자들이 존재하는 지 이해하고, 그 들이 각각 어떠한 방식으로 게임에 영향을 미치는지(다른 숫자들과 어떤 상관 관계를 갖는지)에 대해 직관력을 갖는 것은 최우선적으로 다루어질 필요가 있다.


특히, 우리는 이번 강좌에서 숫자들간의 상호 관계(relationship)에 대해 집중적으로 살펴볼 것인데, 게임에서 사용되는 숫자들이라고 하는 것은 따로 떨어져서 혼자 존재할 수는 없으며, 서로 다른 숫자들과 관계를 가질 때에만 비로소 의미를 갖게된다.


예를 들어, 우리의 영웅이 공격할 때마다 5의 데미지를 적에게 가하는 경우를 상상해 보자. 이 자체로 어떤 의미가 있을까? 당연한 얘기지만 몬스터가 죽을 때 까지 견딜 수 있는 데미지의 총량을 알기 전에 이 자체로는 아무런 의미가 없다. 즉, 캐릭터 공격력은 몬스터 피통의 크기라고 하는 추가 정보가 제공될 때 비로소 의미를 갖게 되는 것이다.
또 다른 예로, 어떤 칼의 가격이 250 Gold 라고 가정해 보자. 이 경우 역시도 이 자체로는 아무런 의미가 없다. 적어도 플레이어가 필드를 돌아다니다 보면 수천 Gold가 들어있는 가방을 손쉽게 획득할 수 있다는 사실을 누군가 여러분에게 말해주기 전에는 말이다. (역: 잡템이다!)


반면, 플레이어가 gold를 획득할 수 있는 방법은 매번 스테이지를 클리어 했을 때에만 보상으로 얻는 1 Gold가 유일한 것이라면 이 칼은 “아싸 득템!!!” 되겠다.


때로는 하나의 게임 안에서도 시간에 따라 어떤 재화의 상대적 가치는 변할 수 있다. 쉽게 말해 앞서 예로 든 250 Gold 가 게임 초반에는 대단히 큰 가치일 수 있지만 나중에 고렙이 되면 푼돈이 될 수도 있기 때문이다.


자! 그렇다면, 이러한 서로다른 숫자들이 상호간에 가질 수 있는 ‘관계(relationship)'의 종류로는 어떤 것들이 있을까?




일치 관계와 선형 관계 (Identity and Linear Relationships)


가장 단순한 형태의 관계로는 2개의 숫자가 정확히 동일하게 변화하는 것이다. 이를 우리는 ‘일치 관계(Identity Relationship)’ 라고 하는데 하나의 값에 +1하는 것이 관계를 맺고있는 다른 숫자에 +1 하는 것과 게임상에서 그 효과가 동일한 경우를 말하는 것이다.


얼핏 하나의 숫자를 사용하면 될걸 굳이 왜 2개의 숫자로 분리해서, 괜히 어려운 말 써가며 ‘일치 관계' 씩이나 적용해야 할 필요성이 있을까 싶기도 한데, 게임을 만들다 보면 때때로 그런 상황이 실제로 발생한다.


예를 들어, Ultima III : Exodus 에서는 ‘음식(Food)' 이란 것이 존재하는데, 던전 안에서 굶어죽지 않기 위해 반드시 필요한 것이다. 이 ‘음식'은 아이템 드랍을 통해 얻는 것이 불가능하며, 반드시 마을의 상점에서 Gold로 구입해야만 한다. 사실 ‘음식'은 시간이 흐름에 따라 저절로 줄어들기 때문에 유저의 플레이를 제약하는 용도 외에는 아무런 쓸모가 없다 (상점에 팔 수도, 다른 그 무엇과 교환하는 것도 불가하다). 또한 각 캐릭터는 Gold를 소유할 수 있는데 Gold는 모험 도중 획득이 가능하다.


‘음식'과는 달리 Gold의 경우 시간에 아무런 영향을 받지 않으며, 다양한 용도로 활용이 가능하다 (경비병을 매수한다던가, 돈주고 힌트를 얻는다던가, 무기나 장비 또는 ‘음식'을 구입한다던가… 등등). 명백히 이들 2가지 값들(음식과 골드)은 완전히 다른 목적으로 게임에서 동작하고 있다.


앞서 말한대로 Ultima III: Exodus 에서 ‘음식'은 Gold로 구입이 가능한데, 1 Food 당 1 Gold가 필요하다 (즉, 10 Food를 구입하려면 10 Gold가 필요하며, 1,000 Food를 구입하려면 1,000 Gold가 필요하다). 이 경우 Food와 Gold는 서로 ‘일치 관계(Identity Relationship)'에 있다고 말할 수 있다. 즉, Gold를 1 획득하는 것은 Food를 1획득하는 것과 동일한 의미를 지니기 때문이다.
물론 이 게임의 경우 Food를 Gold로, 즉 역으로 변환하는 것은 불가능하기 때문에 ‘단 방향'으로만 성립되는 반쪽짜리 ‘일치 관계’ 이긴 하다.


‘일치 관계'를 보다 넓은 관점에서 일반화시킨 녀석을 ‘선형 관계(Linear Relationship)'라고 할 수 있다. 즉, 2 숫자간의 변환율이 ‘상수' 인 것이다 (역주: 이 관점에서 본다면 ‘일치 관계'는 1-to-1 의 변환율을 갖는  ‘선형 관계'라고도 해석할 수 있다). 만약 회복 스킬이 항상 일정하게 MP 5를 소모하며, 이를 통해 정확히 50의 HP를 회복한다고 가정해 보자. 이 경우 우리는 MP와 HP 사이에 1 to 10의 ‘선형 관계'가 존재한다고 말할 수 있다. 또 다른 예로 100 Gold를 투자하여 ‘민첩 +1’ 을 얻을 수 있다면 Gold와 민첩 사이에는 100 to 1 관계가 존재하는 것이다.


명심할 점은 아직까지 우리는 랜덤요소 (예를 들어, 치료 스킬을 사용했을 때 HP 회복량이 25 ~ 75 사이에서 임의로 결정된다던가 하는…)과 관련해서는 다루지 않고 있다. ‘무작위' 와 관련해서는 차후 2~3주 내에 별도로 다루게 될텐데 일단은 문제를 단순화해서 이해할 수 있도록 현재 단계에서는 랜덤 관련된 것은 편의상 쌩까고 가도록 하자. (역: 랜덤 및 확율 관련 강좌도 관심있는 사람은 요기요기 참고 하시라! 중요하기도 하지만 다루기도 어렵기 때문일 듯 한데, 2번에 걸쳐 조낸 길게 다루었다)



지수 함수 관계와 Triangular 관계


때때로 ‘선형 관계(Linear relationship)'로는 원하는 결과를 얻을 수 없는 경우가 있다. 어떤 값에 대해 일정한 비율이 아니라 그 비율이 증가하는(또는 감소하는) 결과값이 필요한 경우가 될 것이다. (역: 변량이 증/감 한다는 얘기. y = x*x 의 경우처럼 x값의 크기에 따라 y변량이 달라지는 녀석들을 말하는 것이며, 편의상 향후 언급되는 ‘지수함수', ‘증가 관계' 또는 ‘증가 함수'는 다 요걸 의미하는 것이므로 선형함수 - 1차 함수 - 와 혼동 없으시기 바란다)


예를 들어, 턴제 전략 게임에서 추가적인 액션 기회를 얻기위해 플레이어가 비용을 지불해야 하는 경우를 가정해 보자. (역: 전형적인 턴제 게임의 경우 '액션 - 턴 - 라운드'의 구성으로 되어있다) 한 번의 추가 액션 기회는 아마도 대단히 큰 ‘부스트' 역할은 아닐 수도 있을 것이다. 그렇지만, (거의)전체 턴을 통으로 한 번 더 사용하는 것에 해당하는 3 또는 4번의 액션 기회를 추가로 얻을 수 있다면 얘기가 달라진다. 실제로 이는 단순히 단일 액션 대비 3 ~ 4배 강해지는 것 보다 게임상에서 실질적으로 훨씬 큰 의미를 갖기 때문이다. 이 경우 추가 액션에 대한 ‘가치평가’ 역시 얻고자 하는 추가 액션 횟수에 따라 증가해야 한다. 즉, 1번 보다는 2번이, 2번 보다는 3번째 추가 액션이 보다 높은 가치를 가져야 한다는 것이며, 그에 따라 추가 액션을 사용하려 할 때마다 지속적으로 필요한 비용 또한 합당하게 증가되어야 한다.


또 다른 예로, 유저들이 보다 많은 자원을 소모하도록 유도하기 위해 화끈하게 지를수록 인센티브를 주고, 돈을 아끼려 할 수록 기회 비용을 감내하도록 만들 수도 있다. 이 경우, 뭔가 한 번에 왕창 구입하는 것이 정확히 필요한 만큼만 구입하는 것에 비해 유저들 입장에서 실제 효용은 떨어질 수 있기 때문에 일종의 ‘할인 혜택'을 주는 것이 자연스러운데, 이를 위해 더 많은 아이템을 묶음으로 구입하려 하는 경우 그 수량과 비용간에는 ‘감소 관계(decreasing return)'를 적용할 필요가 있다.


이러한 경우, 변환하려는 수치의 크기에 따라 반환되는 값의 변환율 역시도 함께 증감될 수 있는 관계가 필요해진다 (역: 1 Gold → 2 Food,  2 Gold → 5 Food 와 같이 y = f(x)에서 x 값의 크기에 따라 반환되는 y 값의 크기가 일정 비율이 아니라는 얘기). 가장 단순한 방법은 하나의 값이 1 증가할 때 영향을 받는 반환 값은 곱셈에 의해 얻어지는 ‘지수 관계(exponential relationship)'를 사용하는 것이다. 그 중 한 가지 예로 ‘doubling’이 있다.
하나의 값이 1 증가할 때 영향 받는 다른 값은 2배씩 증가하도록 하는 것이다. 이 경우 그 값은 대단히 빠른 속도로 그리고 무지하게 큰 값으로 후딱 증가해 버린다. (역: 아래 테이블과 그림 참조. 뭐 당연한 얘기지만 변환율 역시도 지수함수 형태의 그래프를 갖는다. 반면, 선형 함수의 경우 그 기울기가 일정하기 때문에 변환율은 ‘상수'로 나온다.)




<그림 2. 지수 함수 (doubling) 테이블 및 그래프>



그림 2에서 볼 수 있듯, 지수 함수의 경우 대단히 빠른 속도로 게임에서 수용하기 불가능할 정도의 큰 수로 가파르게 증가하기 때문에 어떠한 이유에서건 ‘지수 함수 관계'를 사용하려 할 때에는 대단히 깊은 주의가 필요하다. 예를 들어, 과거 필자가 플레이 해봤던 ‘카드 게임'들의 경우 대부분 어떤 카드를 사용해서 다른 카드의 특정 능력치를 2배로 뻥튀기 시키는 요소를 갖고 있었는데, 결과적으로 (역: 밸런싱 컨트롤의 실패로) 과도하게 강력한 효력을 갖도록 만들어 게임 재미를 오히려 떨어뜨려 버리곤 했다.
뭐, 너무 단적인 예라는 것은 나도 알고 있다. 그렇지만 필자가 이렇게 해서라도 말하고 싶은 것은 지수 함수를 사용할 경우에는 대.단.히, 대.단.히 주의를 기울여야 하며, 그 속성을 정확히 이해하고 있어야 한다는 것이다. (역: 뒤에서 좀 더 자세히 잉여력 활용해 그림까지 그려가며 설명했으니 참고 바란다)


뭔가 값이 증가하는 패턴을 만들고 싶은데 지수함수 만큼 가파른 증가속도는 원하지 않을 경우의 적절한 대안은 없을까? 훗~ 있지롱~ 이 경우 흔하게 게임에서 사용되는 패턴으로 ‘Triangular relationship’이 있다. (역: 고1 수학에 나오는 ‘계차수열' 과 같은 놈 아닌가? 아님말고… -_-+)
만약 이 용어 자체가 생소하다면 적어도 다음과 같은 수열을 본 적은 있을 것이라 생각된다. (역: ㅈㄲ 첨봤어! 난 기획자 아니거등. 거기다가 수포자라고 ㅎㅎ)


1, 3, 6, 10, 15, 21, 28, …


전형적인 triangular pattern되겠다 (triangular pattern이라 불리는 이유는 이 수열을 시각화 할 때 삼각형 모양들이 나타나기 때문이다; 역: 뭐 그런가보네… 퉤 ).
이 녀석을 앞서 살펴봤던 턴제게임 샘플에 적용한다면, 1번의 추가 액션을 사용하기 위해서는 1 Gold의 비용이 들고, 2번의 추가 액션은 3 Gold, 3번의 추가 액션은 6 Gold, … 등등 의 형태로 비용이 증가하는 식이다.




<그림 3. Triangular Relationship>



Triangular 수열에서 흥미로운 점은 서로 인접한 2개의 수치들간의 차이가 어떻게 변화되는가 하는 것이다. 처음 2개 숫자인 1과 3의 차이는 2이고, 그 다음 2개 숫자(3과 6)의 차이는 3, 그 다음 2개 숫자(6과 10)의 차이는 4 되겠다. 눈치 채셨는가? 그렇다. 서로 인접한 2개 숫자의 차이를 연결하면 선형 그래프가 된다는 것이다(역: 1차 방정식의 그래프를 따른다) 즉, 위 예에서는 2, 3, 4, 5, 6, 7, … 과 같은 패턴을 갖게된다.
결과적으로 Triangular 수열은 점진적으로 증가(또는 감소되는)되는 비용에 적합한 수식을 찾으려 할 때 가장 먼저 고려해 볼 수 있는 선택 되겠다.




그 밖의 수치 관계들 (Other Numeric Relationships)


비록 ‘선형 관계' 와 ‘triangular 관계'가 게임에서 가장 널리 사용되는 녀석들이긴 하지만 당연히 이놈들만 사용해야 할 필요는 없다. 사실 무한대의 수치 관계들이 존재할 수 있다. 만약 앞서 살펴본 봐야 같은 몇몇 전형적인 형태의 수치 관계가 여러분의 게임에 적합하지 않다면 여러분만의 것을 직접 고안해내면 된다.


예를 들어, 게임을 만들다 보면 어떤 임계값을 기준으로 게임에 미치는 영향이 급격하게 증가하여, 다른 일반적인 상황에 비해  유저로 하여금 훨씬 많은 비용을 지불하게 해야하는 경우가 발생하기도 한다. 만약 여러분의 게임에 등장하는 모든 몬스터들이 HP를 5씩 갖는다고 가정해 보자. 이 경우 히어로의 공격력이 4인 경우와 5인 경우는 실제 게임 상에서 엄청난 차이를 갖게 만든다. 따라서 5번째 공격력을 얻기 위해서는 다른 경우 (1 ~ 4)보다 훨씬 많은 비용을 지불하도록 적절한 수치 관계를 만들어야만 할 것이다.


우리는 서로다른 2가지의 값들 사이에 어떠한 비율(또는 관계)도 원하는 대로 만들어내는 것이 가능하다. 다만, 그러한 관계가 게임 플레이에 어떠한 영향을 끼치게 될 것인지에 대한 여러분의 이해가 선행되어야만 할 것이다.




시스템안에서의 관계들 (Relationships Within Systems)


게임에서 사용되는 각각의 개별적인 수치들은 실제로 보다 큰 개념의 밸런싱 시스템 하에 존재하게 된다. 어떤 게임이 갖고 있는 시스템의 관점에서 서로다른 모든 수치들 및 그들 간의 관계를 이해할 때, 해당 게임이 어떻게 밸런싱되어 있는지에 대해 보다 깊은 통찰을 얻을 수 있게 된다.


간단한 예를 위해 패미콤용으로 출시되었던 Dragon Warrior 오리지날 버전을 살펴보자. 이 게임의 전투시스템은  HP, MP, Attack, Defense 라고 하는 4가지 주요 스탯들을 갖고 있는데, 플레이어는 게임 월드를 탐험하고 몇 걸음 필드를 이동할 때마다 랜덤하게 적들과 마주치게 되며, 전투 중 HP가 0이되면 죽어버리는 형태의 게임이다.



[1] Dragon Warrior의 전투 시스템
위에서 언급된 스탯들은 상호간에 어떤 관계를 갖고 있을까?


  1. 랜덤하게 적과 마주치는 횟수는 HP와 관계가 있다.
각각의 배틀은 HP 감소를 의미한다. 다른 관점에서 보면, 본질적으로 HP를 ‘전투가능 횟수’로 변환하는 것이 가능하다.
보다 많은 배틀 횟수는 보다 많은 HP감소를 의미하므로 이 둘은 서로 역의 상관관계(inverse relationship)에 있다고 할 수 있다.


  1. HP와 Defense 사이에는 직접적인 상관 관계가 있다.
보다 높은 방어력을 가질수록 보다 적은 데미지를 입게 되며, 이는 결과적으로 HP가 (역: virtually)늘어난 것과 같은 효과를 얻게 만든다. 즉, 유저 입장에서 방어력을 높이는 것은 실질적으로 추가적인 HP를 얻는것과 결과 측면에서 동일한 것이다. (역: 물론 여기서 언급된 바와 같이 방어력에 의해 (virtually) 추가로 얻게되는 정확한 HP량은 해당 게임의 데미지 공식 등에 따라 결정될 것이다)


  1. HP와 Attack 사이에도 직접적인 상관 관계가 있다.
아이러니하게도 공격력과 HP 역시 방어력의 경우와 동일한 관계를 가진다. 더 높은 공격력을 가질 수록 더 빨리 적을 무찌를 수 있고, 이를 통해 몬스터가 여러분을 공격할 수 있는 기회 자체를 감소시키게 되므로 결과적으로 더 적은 HP가 소모되기 때문이다. 따라서, 더 높은 공격력을 가질 수록 더 오래 생존할 수 있게되어 이 경우 역시도 (virtually) HP가 증가된 것과 같은 효과를 얻게 된다.


(역: 뭐 굳이 부연 설명까지  필요할까 싶다만… 예를 들어, 몹과 캐릭 모두 1초에 한대씩 때리는데, 둘 다 4대 맞으면 죽는다고 가정해 보자구. 플레이 중간에 내가 도끼를 득템했더니 (== 공격력이 증가했더니) 3대만 때려도 몹이 녹네? 결과적으로 나는 1대 덜 맞게되지? 이로인해 HP의 25%가 save됬네? 만약 피통이 100 이었다면 새로 획득한 도끼때문에(== 증가된 공격력 때문에) 결과적으로 이전보다 25의 HP가 늘어난것과 같은 효과를 보게 되었네? 잇힝~ )


  1. MP 는 다재 다능하다. 버뜨...
MP 는 게임상에서 다양한 용도로 사용될 수 있기 때문에 얼핏 헷깔리는 녀석인데, MP를 소모하여 사용하는 다음의 스킬들을 통해 이 녀석의 실체를 함 디벼보자.


  • 힐링 스킬 : MP를 HP로 직접 변환한다.
  • 공격 스킬 : 기본적으로 일반 공격보다 강력할 것이며, (일시적으로) 공격력이 높아진 것과 같은 상황이 되어 3번에서 언급한 바와 같이 결과적으로 HP가 늘어난 것과 같은 역할을 한다.
  • 버프 / 디버프 스킬 : 마찬가지로 전투중에 입게 되는 데미지를 줄여 HP를 아끼는 데 기여한다.
  • 텔레포트 스킬 : 먼 거리를 순간 이동시켜 정상적이라면 이동 과정에서 거쳐야 했던 다수의 전투를 스킵하게 해준다. 즉, 스킵한 전투 횟수 만큼 HP를 아끼는데(== HP를 늘리는데) 기여한다.


비록 MP는 게임에서 그 모습을 바꿔가며 다양한 용도로 사용되지만 MP를 필요로 하는 모든 게임 내 활동들 역시도 (직/간접적으로) 결국에는 HP로 변환되고 있는 것이다.


위에서 설명한 것들을 종이 위에 간단히 그려보자. 공격력, 방어력, MP, 몬스터 발견 횟수 등… 모든 것이 HP에 직접적으로 연결되어 있음을 확인할 수 있을 것이다. HP가 0이 된다는 것은 게임의 실패 조건에 해당하기 때문에 Dragon Warrior의 기획자는 다른 모든 것들의 중심에 HP를 두고 게임을 밸런싱 한 것이다.


역주: 뭔소린지 다들 이해는 했겠지만 도대체 이게 실제 겜 기획에 어떻게 도움이 되는지 예를 들어가며 자세하게 함 디벼보자.
<그림 4. Centralized value map>


앞서 본문에서 그려보라구 해서 함 그려봤다. ㅎㅎㅎ
잉여력 쩐다.

다만 각각의 화살표 옆에 ‘비율'을 추가해 봤는데, 각각의 value들이 ‘중심값(Central Value)'인 HP로 변환되는 비율을 의미하는 것이다. 즉, 공격력 → HP 에 표기된 1:2의 경우 “공격력 1은 HP 2를 획득한 것과 동일한 효과를 지닌다”라는 의미이다. 물론 여기서 나타낸 비율은 역자인 본인이 임의로 지정한 것이며, 실제 변환 비율은 여러분의 게임에서 사용하는 데미지 계산 공식 등을 통해 유도하면 되는데, 그 과정까지 여기서 예제 만들고 풀어내기에는 너무 복잡해 지잖아. 나중에 잉여력 또 넘쳐나면 별도 excel로 함 다뤄주께. 단, 그 유도과정이란 것이 결국엔 바로 윗쪽 본문에서 말로 설명한 1, 2, 3, 4번 내용을 산술적으로 풀어낸 것 뿐이지 뭐 대단할 게 없잖겠어?


자… 이제 여기까지 했다면 조금 더 재미난 것을 해 볼 차례인데 말야… 사실 각각의 변환비율이란 것이 (적어도 여기서는) 아주 간단한 1차 함수 잖아? 그 얘기는 역함수도 손쉽게 만들 수 있다는 것이지…
다시말해, ‘HP 2 = f (공격력 1)’ 라는 것을 알고 있기 때문에 ‘공격력 ? = g (HP 1)’ 를 계산하는 함수 g(x) 는 그냥 암산으로 나오잖니? 요걸 정리하면 다음과 같이 되겠네...



<그림 5. Value Mapping Table>


잇힝~ 이제 무슨 소리 하려는지 눈치챘지?
모든 게임 스탯을 HP중심으로 풀었더니 이제는 각 스탯들간의 상호 변환까지도 가능해졌네!
즉, 공격력 1은 방어력을 0.5 올리거나 MP를 10 올려준 것과 같은 효과를 가진다는 얘기지.


이거 어따 써먹느냐고? everywhere !!!


예를 들어보자…


반지를 하나 떨궈야 하는데, 그 종합적인 능력이 ‘HP 100의 가치’에 해당했으면 좋겠어… 어쩌면 될까?


뭘 어째?


공격력 50 짜리를 떨궈도 되고, 공격력 25 & MP + 250 짜리 떨궈도 되고, 방어력 12.5 & HP + 50 짜리 떨궈도 되고, runtime에 원하는대로 조립해서 걍 드랍시키면 된다. 이게 밸런스가 맞는거야? 혹시 너무 좋거나 나쁜건 아냐? 이런 쓸데 없는 걱정은 아예 할 필요가 없지! ㅎㅎㅎ 걍 위에 있는 Value Mapping Table의 변환율만 참조해서 조립해 떨구면 된다. just it will work 이다. ㅎㅎ 좋지?


또 다른 예로, ‘HP 10,000의 가치'에 해당하는 몬스터를 만들고 싶어. 어떡하면 될까? 뭘 어떻게 해. 위에서 아이템 조립한 것 처럼 그냥 막 하면 되지. 수치 배분 비율에 따라 공격형, 방어형, 몸빵형 막 만들 수도 있잖아! 좋치?


더 나아가서… 이 녀석을 일단 만들어두고 나면 차후에 컨텐츠 업데이트 하면서 새로운 스탯, 그니깐 예를 들어 ‘크리티컬 데미지 비율', ‘관통율' 등등을 추가해야하는 경우가 생기더라도 전체적인 게임 밸런싱 framework은 손 댈 필요가 없지. 걍 새로운 녀석들을 위 테이블에 추가하기만 하면 “Just it works”가 된다는 거지…


한 마디로 “아, 지금 그런 거 추가하려면 밸런싱 전반적으로 뜯어 고쳐야 하고, 기존 서비스에 영향 엄청 갈텐데...“ 와 같은 슬픈 변명을 해야 할 이유가 아예 없다는 것이다.


물론 게임에서 사용하는 전투공식에 따라 다르긴 하겠지만 어떤 능력치는(예를 들어 회피율) 변환율 자체가 exponential한 녀석이 나올 수도 있기 때문에 위의 예에서와 같이 단순 mapping table로는 해결이 곤란하다 (즉, 회피율 1%일때와 2%일때, 각각에 상응하는 HP 가치가 달라진다는 얘기). 또한, value들 간의 상호연관성 때문에 덧셈 공식이 성립하지 않을 수도 있는데, 이 경우는 ‘임의의 길이를 갖는 n차원 vector 만드는 방법을 이용하면 된다. 뭐 현재 문맥에서는 이런 것들은 크게 중요한 것이 아니니깐 일단 걍 넘어가자. 언제라도 물어보면 알려주께. ㅎㅎ


(이와 관련하여 더 자세히 알고 싶다면 Level 3: Transitive Mechanics and Cost Curves 를 참고하기 바란다)


이처럼 하나의 중심값을 기준으로 나머지 모든 것들의 가치를 유도하는 접근이 게임 밸런싱에서 사용하는 가장 일반적인 방법이며, 이 때 적절한 ‘중심값'의 후보로는 앞선 Dragon Warrior의 HP와 같이 해당 게임의 ‘승리' 또는 ‘실패' 조건 결정자가 일반적으로 가장 좋은 선택이 된다.


자, 이제 조금 더 나아가 보자. 유저는 전투에 승리할 때마다 Gold와 경험치(XP) 2가지를 얻게 되는데, 이들 보상은 각각 또 다른 2가지 밸런싱 시스템인 ‘경제 시스템(Gold)’, 그리고 ‘레벨링 시스템(XP)’ 과 상호작용하게 된다.



[2] 레벨링 시스템

충분한 XP를 모으게 되면 여러분의 영웅은 레벨업을 하게 되며, 이에 따라 영웅의 모든 스탯들(MP, HP, Attack, Defense)이 향상된다. 이를 통해 다음과 같은 하나의 피드백 루프를 이루게 된다.


몹 사냥 → 경험치 획득 → 레벨업 → 스탯(능력치) 오름 → 더 많은 몹 사냥 가능 → 처음부터 반복


사실 이러한 피드백 루프는 일종의 억제장치(counteracting force)를 통해 그 속도를 제어하지 않았다면 시간이 갈수록 더욱 빠른 속도로 캐릭을 강해지게 만드는 ‘가속순환고리(positive feedback loop)’를 형성했을 것이다. 이러한 속도제어를 위해 이 게임의 경우는 증가하는 XP-to-Level 관계를 적용하였으며, 결과적으로 렙업을 위해서는 지속적으로 더 많은 경험치를 모아야 하도록 해서, 성장 속도를 제어한 것이다.


또 다른 제어장치로는 플레이 시간에 관한 것인데, 유저가 캐릭의 현재 능력을 최대한 활용하기 위해 초반 지역에서 쪼렙 몹들을 대상으로 무위험 노가다를 할 수도 있겠지만, 이 경우 캐릭터 성장에 대단히 많은 시간 투자가 필요할 것이므로 빠른 렙업을 위해 플레이어들이 어느정도 위험을 감수할 수 밖에 없도록 유혹하고 있다.



[3] 경제 시스템

알다시피 Gold는 다양한 용도로 사용될 수 있다. 주로 사용되는 곳은 아무래도 Attack이나 Defense 같은 플레이어 능력치를 즉시, 그리고 영구적으로(역: 적어도 장비를 착용하고 있는 한) 향상 시켜주는 장비 구입비용 되겠다. 이는 앞서 살펴본 바와 같이 본질적으로 Gold를 이용하여 추가적인 HP를 영구적으로 획득하는 것과 사실상 같은 것이다. 또한, Gold를 통해 각종 소모성 아이템들을 구입할 수도 있는데, 이들(소모품, 물약)의 대부분은 사실상 캐릭터의 스킬이 갖고있는 능력을 고스란히 흉내내고 있는 것일 뿐이므로, 이 경우도 결국엔 Gold를 변환하여 일시적으로 MP를 추가획득 하는 것으로 이해할 수 있는 것이다. (역: Gold 가 일정 비율의 MP로 컨버팅 된 것일 뿐이다!)


자! 이제 우리는 여기서도 다음과 같은 또 다른 순환고리를 하나 발견할 수 있다.


몹 사냥 → Gold 획득 → 스탯 증가에 활용(장비: 영구적, 소모품: 일시적) → 더 많은 몹사냥 가능 → 처음부터 반복


레벨링 시스템에서와 마찬가지로 상기 순환구조가 반복되는 과정에서 무한히 가속화 되는 positive feedback loop가 형성되는 것을 막기위한 제동장치가 필요한데, 이 경우는 캐릭의 성장속도(역: 단순 레벨이 아니라 실제 캐릭능력치 성장을 말함)를 통해 제어하고 있다(limited by progression). 즉, Gold로 구입 가능한 장비들은 한정되어 있으며(limited selection of equipment to buy), 원하는 장비가 있다고 하더라도 아이템 가격을 충당할 Gold를 모으기 위해서는 장시간 노가다를 필요로 한다. 즉, Gold 앵벌에 필요한 플레이 시간 통제를 이용하여 위 순환구조의 진행속도를 제어하고 있는 것이다.
물론, 이런 이유로 게임에 존재하는 가장 비싸고 좋은 장비를 구입한 이후부터는 사실 Gold 획득이 더 이상 큰 의미를 갖지 않게된다.


‘경제 시스템’과 관계를 맺고있는 또다른 순환고리는 ‘성장(progression)' 그 자체이다. 맵상에 존재하는 많은 지역들에 입장하려면 마법 열쇠로 자물통을 열어야 하는데, 이 열쇠들은 Gold로 구입해야 한다.


몹 사냥 → Gold 획득 → 마법열쇠 구입 → 신규지역 언락 → 더 많은 보상 주는 강한 몹 등장 → 처음부터 반복


이 순환고리는 플레이어가 갖고있는 능력치에 의해 진행 속도가 스스로 제어된다. 즉, 신규 지역의 난이도가 감당하기 부담스럽다면 유저 입장에서 굳이 급하게 언락하고 진입할 필요가 없기 때문이다.


자… 이제 기획자는 앞서 살펴본 시스템들간의 밸런싱을 어떻게 해야 할까? 언급된 모든 것들을 밸런싱 중심값인 HP와의 관계로 정리하고 서로간의 가치를 비교하기만 하면 된다.


예를 들어주께…
회복 스킬과 공격 스킬 2가지가 있다고 할 때, 기획자 입장에서 여러분은 어떤 게 더 좋은 스킬인지 알고 싶을 것이다. 어떻게 비교해야 할까? 간단하다! 공격 스킬을 통해 유저가 아낄 수 있을 것으로 기대되는 HP량 (역: 앞서 살펴봤듯, 강한 공격으로 몹을 빨리 죽이게 되면 그만큼 플레이어가 공격 받을 횟수가 줄어들게 되고 이는 곧 save되는 HP량으로 환산하는 것이 가능하다)과 회복 스킬을 통해 실제로 채워지는 HP량 중에 어떤 것이 더욱 큰지 비교하면 땡!


또 다른 예로, 어떤 칼과 갑빠가 있는데 어떤 것이 더 나은 것인지 판단하고 싶다면? 다시 말하지만 장착한 칼이 보유한 능력만큼 공격력이 향상되었을 것이고, 그로 인해 save될 HP량과 갑빠로 인해 보호되는 HP량을 계산하여 어떤 것이 더 큰지 비교하면 그만인 것이다.
(역: 사실 여기서는 개념상 이해를 위해 이렇게 설명했지만 사실 HP를 중심으로 각 attribute의 unit value 간의 상호 변환 mapping table 하나만 만들면 이 모든 것이 한큐에 끝난다. 잉여력이 도지면 번역 끝내고 example 엑셀 화일을 하나 만들어볼까 말까… >_< → update: 위에서 이미 봤지? 반만 약속 지켰다. ㅎㅎ)


물론, 실제로는 게임 상의 모든 부분들이 이처럼 정확하게 칼같이 밸런스된 상태가 유지되어야 하는 것은 아니다. 예를 들어, 유저들이 장단기 목적을 갖고 플레이를 지속할 수 있도록 나중에 배우는 스킬일수록 더욱 비용대비 효과적인 녀석들로 배치해 둘 수도 있을 것이며(역: 2렙만 더 올리면 MP는 조금 쓰는데 훨씬 강력한 사기 스킬을 배울 수 있구 그래 막), 반대로 유저들이 환장하고 앵벌할 수 있도록 가격 대비 성능은 떨어지겠만 의도적으로 조낸 비싼 희귀 장비를 만들어 팔 수도 있을 것이다.




또다른 예제 (Another Example)


이쯤에서 여러분은 이런 의구심을 가질 수도 있을 것이다. “이런 접근이 RPG같은 스탯 기반 게임에 유용하다는 것은 알겠는데, 혹시 다른 종류의 게임에도 적용 가능한겅가?” 대답은 “YES” 다. 전설적인 게임인 Super Mario Bros. 최초 버전을 함 디벼보자.


이 게임이 갖고 있는 시스템 자원들은 어떤 것들이 있을까? 일단 생명, 코인, 시간(카운트다운 타이머) 등이 있고, 숫자기반 스코어가 있네. 그 밖에 코인 블럭들(역: 박치기하거나 스톰핑하면 돈 튀어나오는 박스 말하는 듯), 몬스터들, 등등 그 밖에 상황에 따라 유저를 돕거나 방해하는 각종 오브젝트들이 있다. 이제 이녀석들간의 관계를 한번 살펴보자.


  • Coins
100 coins를 획득하면 추가 생명 하나를 얻을 수 있기 때문에 Coins 와 Lives 간에는 100-to-1 관계가 성립한다.
1 coin을 획득하면 200점을 얻기 때문에 Coins 와 Score 간에는 1-to-200 관계가 성립한다.
또한, Coins과 Coin Blocks 사이에도 관계가 있는데, 각각의 블락은  적당량의 코인을 담고있기 때문이다.


  • Time
각 스테이지를 마치게되면 남은 시간으로 time bonus를 받게 되는데, 이 때 Time 과 Score 간에는 100-to-1 관계가 성립한다.
Time과 Lives 간에는 역방향 관계가 존재하는데, 플레이 중 시간이 다 되면 죽기 때문이다.


  • Enemies
적 한마리를 죽이면 몹 종류에 따라서 100 ~ 1,000 점을 획득하게 되므로, Enemies와 Score간에도 관계가 성립한다.
Enemy가 플레이어의 생명을 뺏는 것도 가능하기 때문에 Enemies와 Lives 사이에는 역방향 관계가 성립한다. (특이 케이스로 특정 레벨에서 등장하는 enemy의 경우 내려찍기 콤보를 성공할 경우 추가 Live를 주기 때문에  Enemy와 Lives간에 +방향 관계가 존재하는 경우도 있다)


  • Lives
Lives와 나머지 모든 것들과의 관계는 조금 특별한데, 게임 중 죽어버리게 되면 Coin, Timer를 비롯하여 맵상의 몹들까지 모두 리셋되어 버리기 때문이다. 주목할 점은 100 Coins 을 획득할 경우 추가 생명을 얻을 수 있기 때문에 자칫 레벨당 골드 배치가 과도할 경우 어뷰징이 가능할 수 있는데, 다행히 오리지날 버전에서는 이런 스테이지가 존재하지 않는다. (반면 Super Mario 3 에는 존재한다)


  • Lives 와 Score 간의 관계
Lives와 Score 간의 직접적인 상관 관계는 없다. 그렇지만, 플레이 도중 죽게 되면 Score 획득에 기여할 수 있었던 모든 것들(시간, 코인 등)이 리셋되기 때문에 간접적으로 생명을 Score로 변환하는 것이 가능하다. 흥미로운 점은 Mario의 경우 다른 수 많은 고전 오락실 게임들처럼 높은 점수 획득을 통해 추가 생명을 얻는 시스템은 없기 때문에 Score → Lives 관계는 존재하지 않는다.



앞 서 열거한 관계들을 종이에 함 그려보자… Super Mario Bros.의 중심값은 바로 Score인 것을 확인할 수 있을 것이다. 존재하는 모든 값들이 Score와 연결되어 있다. 오래 전 오락실 게임들의 경우 대부분 무언가 ‘무찌르는 것' 보다는 ‘높은 점수 획득'이 게임의 ‘승리 조건' 이었다는 점을 상기한다면 합리적인 접근이었다고 할 수 있다.


자 이제 여러분이라면 이들 자원들을 이용하여 어떻게 밸런싱 할 것인가? 몇 가지 방법이 있다.


우선 top-down 접근인데, 중심값인 스코어를 이용하여 글로벌 밸런싱 컨트롤을 하는 것이다. 즉, 해당 스테이지에 할당할 점수를 조절함에 따라서 몬스터 마리수, 코인의 갯수, 스테이지에 할당된 timer등이 (어느정도)자동으로 조절되도록 하는 것이다. 물론 이런 방법이 가능하기 위해서는 일정 부분 사전 작업이 필요할 것이다.


또 다른 방법으로는 해당 스테이지에서 획득 가능 스코어가 원하는 값이 될때까지 코인 갯수, 몬스터 마리수, 타이머, 맵의 길이 등 각 요소들을 개별적으로 조절하는 bottom-up 접근도 가능할 것이다.


이를 통해 스테이지 별 total score 할당뿐만 아니라 게임상에서 이루어지는 다양한 게임 활동들(코인 획득, 몬스터 찍기, 시간 단축 등)이 각각 얼마나 score에 기여하도록 하는 것이 적당할 지 조절할 수 있게 될 것이다.


분명한 것은 여러분은 결국 게임에서 제공하는 자원(역: 공격력, 골드 등과 같은 밸런싱 자원)들을 중심으로 기획을 하게 되므로, 어떤 값을 추가/삭제 하거나 심지어는 ‘중심값'을 새로운 무언가 여러분이 이해하기 편한 것으로 대체하는 것도 얼마든지 가능하다. Mario 시리즈 같은 경우는 이러한 기획적 변경 과정을 지속적으로 해왔는데, 후속 버전들의 경우 Score 요소를 완전히 제거하고 모든 게임 자원을 Lives 중심으로 재편하였다.




수치 관계들간의 상호작용 (Interactions Between Relationships)


여러분이 밸런싱 자원 및 상관관계들을 이용하여 그들간의 연결 또는 순환루프를 만들려할 때, 이러한 관계들은 서로 영향을 주게된다. 그들은 서로 결합하여 보다 강력해지는 효과를 낼 수도 있으며, 혹은 상호작용을 통해 본래 갖고 있던 효과를 완전히 없애버리거나 부분적으로 감쇄시킬 수도 있다.


우리는 앞서 Mario를 통해 Lives 와 Coins 간에 이러한 관계가 성립함을 확인한 바 있다. 만약 어떤 스테이지에 200 Coins을 뿌려두었다면 100 Coins로 1 Life를 얻게되는 게임 룰에 의해 해당 스테이지의 경우 1 Life-to-200 Coins 관계가 성립하게 된다. 이에 따라 매 판 클리어 시 마다 1 Life → 2 Lives 로 변환되는 효과를 얻게 된다. (역: 결합을 통해 강화 되는 경우다)


또 다른 예로 PS2용으로 발매되었던 Baldur’s Gate: Dark Alliance 의 경우를 살펴보자. 이 게임의 경우 적을 물리칠 때마다 XP를 얻게되고 일정 수준 경험치가 모이면 레벨업을 한다. XP-to-Level 은 triangular 관계를 따르고 있는데, Level 1 → Level 2 필요 경험치는 1,000 XP, Level 2 → Level 3 필요 경험치는 3,000XP와 같은 형태이다.  
또한 레벨업을 할 때마다 특수능력 습득에 필요한 일정량의 Upgrade Point들을 받게 되는데, 이 역시 triangular 관계를 갖고 있다. 즉, Level 2 달성 시 1 point, Level 3 달성 시 3 points, Level 4 달성 시 6 points 같은 식이다.


정리하면, 앞서 설명한 2개의 관계는 서로 다음과 같이 연결되어 있다.


  • 관계 1: XP 획득 → 레벨업
  • 관계 2: 레벨업 → Upgrade Points 획득

    즉, XP 획득 → 레벨업 → Upgrade Points 획득


위 관계들의 시발점은 XP 획득이므로 실제로 우리가 살펴봐야 할 것은 결국 XP-to-Points 변환 비율에 관한 것이 되는데, 이 경우 2개의 관계 모두 triangular 형태를 갖고 있으므로 XP-to-Points는 1,000 XP 당 1 Upgrade Point 획득이라는 고정 비율이 성립되었다.
적어도 XP 와 Upgrade Points 관계에서는 당초 각자 갖고 있던 triangular 패턴이 사라져 버린 것이다. 물론, 레벨에 따라 Upgrade Points 획득량이 약간씩 변하기는 하지만 평균적으로 봤을 때, 획득하는 XP량에 따라 일정한 비율로 Upgrade Points를 얻게 된다.
(역: 같은 말이지만… triangular 와 triangular가 만났더니 둘 사이에는 identity 관계가 생성된 것이다. 아래 그림 참조)



<그림 6. 두개의 triangular가 상호작용하여 identity관계를 생성했다>



여기에 ‘시간' 요소를 개입시키면 어떻게 될까? 만약 플레이어가 똑같은 몹만 반복해서 잡는 경우라면 계속해서 같은 량의 XP만 획득하게 되므로 레벨업에 필요한 시간 역시도 triangular 패턴으로 증가하게 된다 (역: 위에서 언급한 ‘관계 1’ 이 triangular 증가하고 있기 때문). 반면, 여전히 Upgrade Point 1개를 얻는 데 필요한 시간은 앞서 살펴본 바와 같이 평균적으로 일정한 시간이 필요하게 된다. (역: XP to Upgrade Points의 비율은 레벨에 따라 변하지 않는 constant rate이라는 것을 앞에서 확인했지? → 그림 6 참조)


그런데, 실제로 대부분의 RPG류 게임들은 보다 강한 몬스터 즉, 고렙몹을 잡을수록 더 많은 XP를 얻을 수 있도록 만들어진다. 이 게임 역시도 마찬가지인데, 이로 인해 유저가 실제로 체감하는 레벨당 XP 필요량은 ‘관계 1’ 즉, 레벨당 필요 경험치량이 갖고 있는 triangular pattern의 증가 속도보다는 다소 떨어지게 된다. 즉, triangular pattern의 효과를 부분적으로 약화시킨 것이다. 다른 말로, 레벨이 증가함에 따라서 렙업 속도가 더뎌지는 것은 맞지만, 당초 ‘관계 1’이 갖고 있던 기울기 만큼 플레이 시간도 증가하는 것은 아니란 얘기이다.

(역: 이 얘기는 곧, 미친척하고 몹당 경험치 획득량의 증가 속도를 ‘관계 1’의 기울기보다 가파르게 만들어 버리면 렙업을 하면 할 수록 렙업 속도가 빨라지게되는 황당한 경우가 발생할 수도 있다는 거지… 얼핏, ‘총 맞은게 아니면 누가 그런식으로 밸런싱 하겠냐?’라고 반문할 수도 있을텐데…. 맞다. 그 사실을 인지하고 있다면 절대 그렇게 만들 일은 없겠지.


그런데 문제는, 위에서 예로 들은 레벨당 경험치 필요량의 관계가 아니더라도 게임 제작 상 조낸 다양한 수치들이 등장하게 되고, 얘들이 서로 복잡하게 라면 면발처럼 꼬이다 보면 어딘가에서 그런 관계가 생겨버렸는지 아닌지 자체를 인지하지 못할 수도 있다는 것이다. 결국 테스트 과정에서 그러한 문제가 발견되지 않았다면, 그 심각성에 따라 상용화 후 눈물을 머금고 ‘빽섭’ 또는 ‘하향패치'를 해야 하는 재앙을 맛볼 수도 있다.
암튼 기획자들은 밸런싱 초반 작업부터 자신이 다루는 값들과 관계들을 항상 도식화하고 그 전체적인 그림 및 각각의 영향력을 머리속에 넣어두는 습관을 들이는 것이 여러모로 좋겠다. 훗~ 나도 알아 그렇지만 아무 안한다는 거 ㅎㅎ)



자! 그럼 이녀석이 Upgrade Points와 어떻게 엮이는 지 함 살펴보자. XP-to-Point 비율은 일정하지만(역: 1000-to-1, 다른말로 1-to-0.001) 레벨에 따라 캐릭이 획득하는 단위 시간당 XP가 증가하기 때문에, 실제로 플레이어가 획득하는 단위 시간당 Upgrade Point 획득량 역시도 함께 증가하게 된다.


역주: 앞서 살펴봤듯, 고렙 몬스터는 저렙보다 경험치를 더 많이 주잖니? 그렇다면 몹 잡는 속도가 일정하다고 가정하면, 실제로 플레이어가 단위 시간당 획득하는 Upgrade Point량은 레벨이 오를 수록  증가한다는 얘기 되겠다. 물론, 레벨에 따른 몹 당 경험치량 상승 속도에 비례해서 증가하겠지.
이게 왜 중요하냐? 캐릭 레벨 상승에 따른 캐릭 능력치 성장과의 상관 관계 때문에 그런 거지. 아래 본문에서 설명이 이어지긴 하는데, 쉽게 말해 Upgrade Point획득 속도가 증가하는 것 대비 그 소모량이 적절하지 못하다면 캐릭이 과도한 속도로 빠르게 강해져서 10렙에 30렙 몹들을 녹이거나 또는 너무 부족해서 100렙인데도 70렙 지역에서 사냥할 수 밖에 없는 엿같은 상황이 발생할 수도 있다는 거지…. 따라서, Upgrade Point에 대한 적절한 제어장치(counteracting force)역시 배치되어야 하는 것이고... 뭐 결국 스킬 습득 또는 강화 시 필요한 Upgrade Point 필요량이 적절한 비율로 증가되어야 한다는 것이며, 이는 유저의 노가다량을 레벨 상승에 따라 어떻게 증가시킬 것인지에 대한 고민이 보다 거시적인 관점에서 선행되어야 한다는 얘기가 될 것이고….


결과적으로, XP 획득량 증가 속도를 변경함으로 인해서 레벨업 속도를 변경할 수 있을 뿐만 아니라 Upgrade Points 획득 속도까지 제어하는 것이 가능하다는 것인데 정리하면 다음과 같다.


  • 몹당 XP 획득량 증가 속도 > 레벨당 필요 경험치량 증가 속도
레벨이 오를 수록 렙업 속도가 더욱 빨라진다.


  • 몹당 XP 획득량 증가 속도 < 레벨당 필요 경험치량 증가 속도
초반엔 빠르게 렙업하다가 뒤로 갈 수록 점차 렙업 속도가 느려진다.
(게임 초반에 빠른 성취감을 제공하고 유저가 중독된 이후 부터는 점진적으로 플레이 시간을 늘리기 위해 대부분의 게임에서 취하고 있는 방식)


  • 몹당 XP 획득량 증가 속도 = 레벨당 필요 경험치량
(거의) 일정한 시간 간격으로 렙업한다.


이런 상황을 가정해 보자. 레벨이 오를 수록 점차 렙업에 더욱 많은 시간이 필요하도록 하는 건 좋은데, 아무리 길어도 렙업에 최대 1시간을 넘지 않도록 하려면 XP 관련 시스템을 어떻게 밸런싱 해야 할까? 간단하다. 만렙을 몇으로 할 지 결정한 후, 해당 레벨 도달에 필요한 경험치량을 약 1시간이 되도록 스케일 한 후 앞서 했던 과정을 역으로 하면 된다. (역: 개새… 뭐 당연한 말을 이렇게 심각하게 영어로 써놨어)


이러한 레벨링 시스템(역: 캐릭 능력치 성장과 관련된 대부분이 캐릭터 레벨에 종속된 경우)은 자칫 다음과 같은 극단적인 상황을 만들어 낼 수도 있다.


  • Over-Leveling
캐릭터 능력치 성장이 레벨 상승 속도에 미치지 못하는 경우이다. 즉, 동렙 몹을 사냥할 수 있을 정도의 능력치 성장이 함께 이루어지지 못해 지속적으로 저렙 지역에서 앵벌하게 만드는 상황이다. 이 경우는 레벨이 오르면 오를수록 (렙업을 위해)필요로 하는 경험치량마저 늘어나게 되므로 악순환의 고리를 더더욱 심화 시킨다 (역: 저렙 지역 전전하는 것을 벗어날 방법이 없다). 결국 캐릭이 도달 가능한 최대 레벨은 실제 게임에서 제공하는 만렙과 상관 없이 Upgrade Point에 의해 제한되는 상황이 발생하게 된다.


  • Under-Leveling
반대의 경우이다. 플레이어는 빠른 속도로 능력치는 강해졌지만, 상대적으로 레벨은 낮은 상태이다. 레벨 대비 강력하기 때문에 당연히 고렙 지역에서 사냥을 하려 할 것이고, 이 경우 자신 보다 고렙 몹을 잡을 수 있기 때문에 단위시간 당 훨씬 많은 경험치 획득이 가능해진다(역: 이는 기획자가 의도한 상황이 아니다). 결국 렙업하는 속도가 더욱 가속화되는 상황이 발생한다.


두 경우 모두 게임 시스템이 플레이어로 하여금 극단적인 상황에 놓이도록 만들고 있다. 각 레벨대에서 플레이어들이 어느정도의 능력을 가져야 하고, 어느 지역에서 어떤 몬스터를 상대해야 하는지 기획자가 사전에 정확히 인지하고 계획할 수 있다면, 이런 상황을 피할 수 있음은 물론이고 지속적으로 유저들의 도전 욕구가 유지되도록 하는 전투 밸런싱 역시 손쉽게 가능할 것이다.




서로다른 수치패턴(함수)들의 상호작용 (How Relationships Interact)


서로 다른 패턴의 함수들이 만나면 어떤 일이 벌어질까? 헷깔리지? 그래서 아래에 간단한 참조 가이드를 정리했으니 참고하시라!


  • 두 개의 선형 함수가 서로 결합할 때
걍 신경쓰지 말고 서로 곱해버리면 된다.
1 A → 2 B → 5 C 가 되는 경우를 가정해 보자. 결론은 자원 A와 C사이에는 1 to 10 변환 관계가 성립한다 (2 x 5).


  • 선형 함수와 증가 (triangular 또는 exponential) 함수가 결합할 때
증가함수에 선형함수의 값이 곱해진 형태가 된다. 당연히 결과물은 증가 함수(triangular 또는 exponential)의 속성이 유지된다.


  • 선형 함수가 증가 함수를 억제할 때
선형 함수가 충분히 크다면 아마도 초반에는(역: 선형 함수의 숫자 크기가 지수함수를 압도하는 동안에는) 선형 함수의 그래프가 유지될 것이다. 그러나 얼마 못가서 증가 함수의 값이 선형함수를 압도하게 된다. 언제 두 개의 그래프가 만나고 증가함수의 모양이 드러나게 될 지는 실제로 각 함수가 만들어내는 숫자의 크기에 따라 달라진다. 이 지점의 조절을 통해 유저들의 플레이 전략 변경을 유도할 수도 있다.


  • 두 개의 증가 함수가 결합할 때
졸라…  말할 것도 없이 더욱 더 가파른 증가속도를 가지는 증가 함수를 얻게 된다.


  • 두 개의 증가 함수가 서로를 억제할 때
각각의 함수가 어떤 모양을 갖고 있는가에 따라서 달라진다. triangular의 숫자가 엄청나게 크지 않는 한 일반적으로 triangular 함수가 지수함수를 counteracting하는 경우도 결과는 지수함수 형태가 된다. 두 개의 순수 triangular 함수와 같이 완전히 동일한 녀석들이 상호 억제하는 경우라면 결과값은 선형 함수 혹은 일치 함수의 형태를 갖게 된다.


<역주>
뭔 말인지는 알겠지만 그래도 좀 헷깔리지? 이해하기 쉽게 예제와 그림을 봐가며 확인해 보자. 졸라 친절하지?



  • 두 개의 선형 함수가 서로 합성될 때


일단 A, B, C를 각각 다음과 같이 치환해 보자.
A : 루비
B : 골드
C : 에너지 (그래 ‘하트’ 말야)


a. 관계 A-to-B: 1개의 루비는 골드 2개로 교환 가능하다.
b. 관계 B-to-C: 1개의 골드는 에너지 5개로 교환 가능하다.
c. 관계 A-to-C: 1개의 루비는 에너지 10개로 교환 가능하다.
<그림 7. Two linear relationships combine>




  • 선형 함수와 증가 (triangular 또는 exponential) 함수가 결합될 때


a. 관계 A-to-B : 스테이지 클리어 시 아낀 시간 1초당 bonus gold 증가량 (doubling)
b. 관계 B-to-C : 골드 1당 구입가능한 에너지량 (linear, 1-to-5)


결과(A-to-C)도 지수함수 형태를 유지하게되고, 아끼는 시간이 증가할 때마다 추가 획득 가능한 에너지량 역시 급격하게 증가한다.
<그림 8. 선형 관계가 증가관계와 결합할 때>



  • 선형 함수가 증가 함수를 억제할 때


a. 증가 함수 : 렙업 필요 경험치 증가량(지수함수다; 2 power n)
b. 선형 함수 : 몹당 경험치 증가량


즉, 렙업 필요 경험치가 지수함수로 증가하는 것을 몹당 경험치를 선형 증가 시켜서 렙업 노가다를 다소 완화시켜 보겠다는 얘기인데 어디 되는지 함 보자.


아래 테이블과 그림을 보면 알겠지만, 렙업위해 필요한 경험치량이 지수함수로 증가하는데, 몹당 경험치 증가 속도는 선형이다. 테이블에서 노란색으로 채워진 부분, 즉 그래프에서 ‘요기' 라고 표기된 부분부터 급격하게 사냥해야 할 몬스터 수가 증가하는 것을 확인할 수 있다. (= 렙업필요 경험치가 몹당 경험치 증가 속도를 ㅇ도하기 시작하는 곳이다)


이후 부터 몹당 경험치 증가량은 거의 무시해도 될 수준이 된다. 맨 우측  몬스터 마리수 증가율 컬럼을 보면 알겠지만 무한히 2에 수렴하는 로그함수를 그리기 때문에 몹당 경험치 증가량과 상관 없이 잡아야 할 몬스터의 마릿수는 (거의) 2의 n 승으로 조낸 빠르게 증가한다고 보면 된다. (렙업 필요 경험치가 2의 n 승으로 증가하고 있거등)
아래 예제에서는 지면 관계상 12레벨 정도 까지만 나타냈는데 저 추세라면 레벨 20만 되도 잡아야 하는 몬스터 마리수는 무려 약 7마리에서 1,048 마리로 늘어나게 된다.


음… 위의 예는 지수함수의 무서움?을 나타내기 위해서 좀 극단적으로 만든 것이긴 한데, 사실 ‘성장’요소를 갖는 모든 게임에서 정도의 차이만 있을 뿐 ‘노가다’는 피할 수 없는 것이기 때문에 아래 그림에서 2개의 그래프가 만나는 지점은 다음과 같은 관점에서 또다른  중요한 의미를 갖는다구 봐.


“본격적인 게임의 시작!”


다른 말로…


“본격적인 노가다의 시작!”


결국 이 지점을 정할 때에는 다음의 2가지가 함께 고려되어야 한다구 생각해.

  1. 1) 시점 선택
노가다의 압박을 받아들일 수 있는 준비가 된 사람은 누구일까? “오~ 괜찮네? 이 게임 해야겠다” 라고 마음 먹은 사람이거등… 그렇다면, 적어도 사람들이 할지 말지 간보고 있는 동안에 이 구간이 시작되는 것은 피하는 게 좋겠지. 그럼 간 보는 구간이 대체 몇렙 까지인거냐? 훗~ 나도 모르지…

이게 바로 서문에서 언급했던 Art의 영역에 해당하겠네. 이리저리 바꿔가며 실제 funnel 테스트결과를 까보기 전까지 가장 적절한 시점은 며느리도 모르지. ㅎㅎㅎ

그렇기는 해도 막연히 아무렇게나 정하고 테스트 하기 보다는 대략적인 guide를 잡아두고 시작해 본다면 예를들어 ‘Day-2 재방문 유저’를 기준으로 해보는 거지. 온갖 통계 발표자료들을 통해 우리가 익히 알고 있 듯, 둘 째날 Retention Rate은 사실 대단히 낮은데, 바꿔 생각하면 접을 사람은 첫날 대부분 접었다는 얘기로도 해석할 수 있거등 (요놈요놈 infographic 참고하시라!).
그렇다면, 첫 session 또는 첫 날 동안은 유저에게 가급적 매력적으로 예쁜 모습만 보여주는 게 현명한 거잖아? 그런 관점에서….

노가다의 시작 ⇒ 압박의 시작

이거 미팅 나가서 첨만난 여자 앞에서 코딱지 파고있는 꼴이거등...
둘 째날 게임에 재접하는(“이 게임 해야겠다” 또는 “좀 더 해볼까?” 라는 생각을 가진) 유저들의 비율을 최대한 높이기 위해서는 이 노가다의 시작점이 적어도 첫 째날, 최악의 경우에도 첫 게임 session동안 도달 가능한 레벨대에서 시작되는 것은 절대적으로 피하는 것이 바람직할 것이라는 얘기지. (물론 현질 통해 신속하게 도달하시는 감사한 고객님들은 제외 ㅎㅎ)

뭐 내 주관적 hypothesis니깐 아님 말구 ㅎㅎㅎ

  1. 2) 저항감 완화
사실 유저들이 우리게임을 하기로 마음먹었다고 해서 ‘노가다’가 즐거운 건 여전히 아니라구. 따라서, 해당 게임의 플레이 코어 (강력한 카드 획득, 강력한 장비 파밍 등)와는 별도로 이 시점에 맞춰 다음과 같이 적당한 보조 시스템 혹은 컨텐츠가 함께 등장한다면 유저들이 보다 저항감 없이 노가다를 받아들일 수 있겠지.

  • 직접적인 완화 장치
대표적인 것이 ‘자동 전투’ 되겠지. 무의미한 플레이에 유저의 활동을 강요하는 것은 노동 그 이상도 이하도 아닐 테니까. 아래 예제를 기준으로 본다면 10레벨에 ‘자동전투’ 기능이 ‘언락’ 된다면 best겠네…

  • 간접적인 완화 장치
‘자동전투’ 까지는 아니더라도 다른 유형 또는 좀 더 도전 욕구를 자극하는 플레이 목표를 제시해서 유저들이 단순 렙업이 아닌 다른 context의 목표를 위해 기꺼이 노가다를 감수하도록 할 수 있다면 그 역시 일정부분 저항감을 완화시킬 수 있겠지.
대표적으로 PvP, 길드 및 길드전, 특별 던전 등이 여기에 해당할 것이고.(물론 한방에 전체 컨텐츠 다 쏟아내면 처음 접한 유저에게는 초기 진입장벽으로 작용할 수도 있기 때문에 점진적으로 새로운 컨텐츠를 활용가능하도록 배치한 것도 중요한 하나의 이유가 될테고)




<그림 9. 선형 함수가 증가 함수를 억제할 때>



  • 두 개의 증가 함수가 결합될 때


a. 증가 함수 A: 레벨에 따라 잡아야 하는 몬스터 마리수 증가량
b. 증가 함수 B: 몹당 경험치 증가량
c.  결과: A x B = 렙업 위해 필요한 경험치 총량


결과 보면 알겠지만 불난 곳에 기름을 확 부어버렸다. 어마어마한 속도로 증가하게 된다.
우측 그래프 보면 알겠지만 A, B 함수의 그래프는 바닥에 붙어서 아예 보이지도 않는다. ㅎㅎㅎ


물론, 아래 예의 경우라면 커진 숫자(렙업 필요 경험치량) 자체가 문제인 것은 아니다. 그렇지만 2번째 테이블에서 ‘몹당 경험치' 를 ‘몹당 드랍 골드량' 으로 바꾸면 3번째 테이블 역시 ‘레벨당 유저가 획득할 것으로 기대되는 골드량’이 되는데, 이 경우는 각종 어뷰징 혹은 인플레이션에 노출될 가능성이 있어 자칫 컨트롤 불가한 골치아픈 상황이 발생할 수도 있겠다.



<그림 10. 두 개의 증가함수가 서로 결합할 때>



  • 증가함수를 증가함수로 억제할 때
두 가지 경우를 함 만들어 봤다.
Case A: 지수 함수를 지수함수로 억제
아래 예제의 경우 둘 다 증가 속도가 동일하기 때문에 결과 역시 identical relationship이 되었다.


Case B: 지수 함수를 triangular 함수로 억제
꺼떡 없다. 지수함수 형님을 뭘로 보고 triangular 따위가 어디서 개수작이냐!



<그림 11. 증가 함수를 증가 함수로 억제할 때>




만약 여러분이 현재 게임을 만드는 중이라면… (If You’re Working On a Game Now…)


혹시 지금 뭔가 게임 만들고 있는 중이신가? 그럼 일단 이거부터 해바바.


1. 여러분의 게임에서 사용되는 모든 자원들과 수치들을 각각 포스트잇에 적는다.
2. 큰 종이에 적당히 배치 시켜둔다.
3. 여러분의 게임상에서 서로간에 직접적인 관계를 맺고 있는 녀석들끼리 화살표로 연결한다.
4. 각각의 연결선이 어떤 종류의 관계를 갖고 있는지 화살표 옆에 적는다. (선형, triangular, exponential, 등)


  • 자원들이 순환 고리를 이루고 있는 것이 혹시 발견되냐? A → B → C → A  이런식으로 말이지. 만약, A로 향하는 화살표의 갯수가 A로 부터 시작된 화살표 갯수 보다 많다면 네놈은 방금 니가 만들고 있는 게임에 존재하는 ‘positive feedback loop’를 발견한 거란다.(역: 본문에서 쓰인 ‘positive feedback loop’의 의미는 무언가 반복될 수록 그 속도가 가속화되는 경우를 말하고 있다. 예컨데, 앞서도 예로 들었던 바와 같이 레벨이 오를 수록 캐릭이 강해지는 속도가 더욱 빨라지는 경우 같은 것이지. 따라서, 여기서 말하고자 하는 바는 이러한 positive feedback loop가 발견되었다면 그에 상응하는 적절한 억제장치 - 예를 들어 캐릭이 강해지는 속도를 완화하기 위해 레벨이 오를수록 잡아야 하는 몹수도 함께 증가하도록 하는 등 - 또한 고려되어 있는지 꼭 확인해 보라는 의미인 듯)


  • 나머지 모든 녀석들과 관계를 맺고 있는 ‘중심값(역: 앞서 들었던 예의 경우 Mario는 Score, Dragon Warriro는 HP가 해당됨)’이 확인 되는가? 그렇다면, 그 중심값은 ‘승리' 또는 ‘패배' 조건을 결정하는 결정자인가 혹은 상대적으로 큰 의미가 없는 엉뚱한 녀석이 선택되어 있는가? 또는 딱히 ‘중심값'이라고 할만한 녀석 자체가 발견되지 않고 서로 중구난방으로 연결되어 있지는 않은가? 그렇다면 자원(혹은 값들)간에 새로운 관계를 추가하는 등의 방법으로 ‘중심값'을 중심으로 관계들을 재정의 하는 것이 가능하겠는가? (역: RPG 혹은 simulation 장르 게임인데 ‘중심값'이 발견되지 않았다면 조땐거다. 각각 스탯이나 수치들의 valuation을 도대체 무슨 근거로 하고 있는 거냐? -_-; 전체적으로 살펴보고 스탯 별 가치 평가 및 relationship 재구성 반드시 필요하다)


일단 이런 방법으로 여러분의 게임이 갖고있는 자원(또는 값들)간의 관계를 다이어그램으로 만들어두고 나면, 이후 부터는 어떤 값을 어떻게 변경했을 때, 그 변경이 게임에 미칠 파급효과를 한눈에 예측할 수 있게 된다. 어떤 relationship하나의 수치 변환 비율을 수정해야 할 경우, 그와 관계를 맺고 있는 다른 녀석들도 어떻게 변화될 지 손쉽게 예측할 수 있으며, 나아가 이로인해 게임 전체에 어떤 영향이 미치게 될 것인지 상상하는 것까지 가능해지는 것이다.


만약 여러분이 만들고 있는 게임이 성장요소가 포함된 싱글플레이어 게임이라면, “Time”(실제로 유저가 게임 플레이에 소모해야 하는 시간) 역시도 여러분이 다루어야하는 ‘자원' 중 하나에 해당하는데 앞서 만들었던 다이어그램을 통해 유저가 단위 시간당 얻게되는 게임내 보상 및 능력치 획득량이 레벨이 올라감에 여러분의 의도대로 증가하는 지, 감소하는 지, 혹은 그대로 유지되는 지 그리고 그러한 변화량이 적절하게 의도된 대로 반영되고 있는 지도 반드시 확인해야 한다.




숙제 (Homework)


자 이제 배운 것을 써먹어 볼 차례다. 우선 ‘성장' 요소를 포함하고 있는 시중의 싱글 플레이어 게임들 중에 여러분에게 익숙한 것으로 하나 골라보자. ‘성장' 요소를 포함한 게임들로는 대략 Zelda, Diablo, Final Fantasy, WoW 등이 있겠다. 한가지 조언한다면 패미콤 시절에나 봤을 법한 게임들처럼 가급적 상대적으로 그 구조가 단순한 녀석을 선택하는 것이 좋다. 앞서 여러 예제들을 통해 살펴봤듯, 아주 단순한 게임이라 할지라도 생각보다 수치관계의 분석과정은 그리 만만한 것이 아니기 때문이다.


이들 게임은 공통적으로 유저가 플레이를 해 나감에 따라 새로운 스킬들 또는 추가 스탯을 얻는 형태로 나름의 성장 시스템을 갖고 있다. 플레이어가 성장함에 따라 적들 역시도 함께 강해져야 하는데, 단조로움을 피하기 위해서는 이는 단지 몬스터의 공격력만 강해지는 것만을 의미하는 것이 아니라 몬스터 특징 또는 그 조합에 따라 사용해야 하는 전략 또는 전술 난이도가 상승하는 것까지 포함해야 한다는 의미이다.


일단은 실제 분석에 앞서 다음 질문에 답해주기 바란다. “여러분이 선택한 분석 대상 게임이 갖고 있는 난이도 곡선은 어떤 형태로 기억되는가?” 처음엔 쉽다가 점진적으로 어려워지는 형태였나? 또는 아래 열거한 바와 같이 바람직하지 않은 케이스를 하나 혹은 그 이상 경험하게 했었는가?


  • 플레이 타임대비 캐릭 능력치 성장속도가 현저히 떨어져 더딘 레벨업이 심화되며, 결과적으로 오랜 시간동안 같은 자리에서 노가다를 반복 했어야 했다.


  • 특정 던전에서 급작스럽게 난이도가 급상승 했었다.


  • 던전 공략이 비정상적으로 쉬운 경우로 처음 신규 던전에 입장했을 때부터 몹들보다 내가 훨씬 강해서 별다른 공략이나 노가다 없이도 신속하게 쭉쭉 녹여버리곤 했다.


  • 그 게임이 갖는 최고 난이도 지점이 최종지역 보스가 아니라 쌩뚱맞게 중간 어디쯤인 경우. 도중에 만난 최고 난이도 지역을 클리어하고 나서는 이미 궁극의 무기, 용병, 스킬 등을 확보하고 있었기 때문에 이후 게임 엔딩까지 아무런 긴장감없이 클리어 해버릴 수 있었다.


여기 까지는 여러분의 기억과 직관에 근거해 해당 게임의 밸런스를 리뷰했다. 아마도 선택된 게임을 하면서 가장 기억에 남는 클리어 경험이나 지옥같았던 레벨 노가다의 추억이 즉시 떠올랐을 것이고 이를 기억해내는 데 소요된 시간은 대략 몇 초정도 였을 것이라 생각된다. 직관력을 키우는 것은 유익하다. 그러나 수학적 접근이 여러분이 지닌 직관을 support할 수 있다면 더욱 더 강력해질 것이다. 방금 여러분은 직관이 말하고 있는대로 대상 게임의 밸런스가 적절치 않게 이루어진 부분에 대해 각자 생각해 보았다. 이제부터 실제로 수치적 분석을 통해 선택된 게임에 대한 여러분의 느낌 혹은 직관이 정확했는지 각자 확인해 보도록 하자. 몇 가지 길잡이가 될만한 것을 소개 하겠다.


맨 먼저, 대상 게임의 전략 가이드, 공략집 혹은 FAQ 등 부터 확인해 보자. 이를 통해 그 게임이 어떤 수치들을 갖고 있는지 손쉽게 확인할 수 있을 것이다. 웹 검색을 하다보면 그 게임에서 사용되는 모든 숫자들과 자원들에 대해 놀라울 정도로 자세한 설명뿐만 아니라 그들이 게임상에서 각자 어떻게 상관 관계를 맺고 있는지 알려주는 자료를 찾을 수 있다.


다음으로, 해당 게임에서 사용되는 모든 자원들을 종이에 적어서 늘어놓자. 앞서 했던 바와 같이 각 자원들간의 관계를 화살표로 나타내고, 각각의 관계 유형을 라벨링 하자. 이 다이어그램이 완성되면 비로소 그 게임에서 어떤일이 벌어지고 있는지 파악할 준비가 된 것이다.


예를 들어, 특정 한 던전에서 유난히 빠르게 렙업을 하고 상대적으로 대단히 짧은 시간동안 여러분의 캐릭이 급격히 강해졌다고 느끼는 경우를 살펴보자. 그러한 경우 우선 레벨링 시스템을 살펴보는 것으로 시작하는 것이 좋을 것이다. 살펴보다 보면 아마도 전체적인 캐릭터 성장곡선 상에서 렙업 필요 경험치량이 유독 적은 레벨대역이 발견될 것이다. 이게 아니라면 전투 시스템을 살펴봐야 하는데, 아마도 해당 던전에 배치된 몬스터들의 몹당 경험치가  비정상적으로 많게 설정되어 있을 것이다.


또 다른 예로, 졸라 좋은 무기를 하나 획득한 뒤로 게임 난이도가 급작스럽게 전반적으로 낮아진 경우이다. 이런 경우라면 우선 전투시스템부터 살펴봐야 한다. 캐릭의 공격력 증가 그래프와 몬스터 몸빵 그래프를 함께 그린 후 문제의 장비를 장착시켰을 때 급격히 증가되는 캐릭 능력치가 얼마동안 유지되며 게임 난이도를 비정상적으로 낮춰버리는 지 확인해야 한다.


끝으로, 이러한 접근 방법을 응용하여 대상 게임의 밸런싱이 깨진 부분들을 발견할 수 있다면, 여러분은 어떤 숫자(들) 혹은 그래프의 모양을 바꿔야할 지 판단이 가능해 지며, 수정이 필요한 자원이 어떤 것인 지 알아내는 것 뿐만 아니라 얼마나 많이 바꿔야 할 지까지 판단할 수 있게 될 것이다.


다른사람이 만든 게임의 자료를 수집하고, 그 게임에서 사용되는 자원과 각 숫자들의 의미를 파악하는 것은 생각만큼 간단한 작업이 아니기 때문에 전체적인 분석이 이루어지려면 아마도 수 ~ 수십 시간이 필요할 것이다. 그러나, 이 과정을 여러분이 직접 해내고 나면, 앞으로 다른 게임들에서 사용된 자원과 그들 간의 관계를 분석하는 것이 훨씬 편하게 느껴질 뿐만 아니라 게임 밸런스라고 하는 것에 대한 높은 이해도를 바탕으로 더 나은 게임을 제작할 수 있을 것이다.



끄으읕!

(별로 필요할 것 같지는 않은데, 예제로 사용된 샘플 엑셀화일은 요기서 다운로드 받을 수 있다. 잇힝~)