(스타크래프트2 의 밸런싱 공식이라고 한다.)

 

 

지금까지 너무 기획실패사례만 언급한것 같아서, 공유할만한 성공사례를 찾던중에 "밸런싱 성공사례" 를 찾을수 있었다. 일반적인 상식과는 다른 "역발상" 을 통해서 게임밸런스를 정상화 시킨 이례적인 성공사례인데 밸런싱작업 자체는 일반적인 사람들이 생각하는것과는 매우 다른 방식으로 이루어졌다.

 

 기획자가 밸런싱을 하는데 도통 밸런스가 잘 맞지 않았다. 기획자가 밸런싱경험도 없었고, STR,CON,DEX,INT,MEN 등등의 스탯을 연동하는 전투공식 경험도 전혀 없어서 애로사항이 많았다. 설상가상으로 기획자는 주로 PS3 나 PSP 같은 콘솔게임을 주로 좋아하지, 온라인게임에는 그다지 관심이 없었다. 게임의 밸런싱 상황은 크게 악화되어가고 있었다.

 

 게임내 밸런싱이 엉망으로 되어가는 상황에서 갑자기 운영툴과 컨텐츠작업을 하던 서버 프로그래머가, 자기가 밸런싱을 해볼수 있을것 같다면서 게임내 밸런싱을 자처했다. 원래는 멀티클라이언트를 띄워보면서 디버깅을 하다가 밸런싱 의견을 몇가지 제시하는 정도였는데, 예전부터 MMORPG 의 전투공식쪽에 경험이 약간 있어서 "밸런싱 할줄안다" 라고 말하는것이 아닌가?

 

 사실 처음에는 우려가 많았다. 서버 프로그래머가 밸런싱을 담당하는것은 정말로 어이없는 상황이였지만, 전에 경험도 약간 있었다고 하고, 말하는것을 보니 뭔가 믿는게 있어서 나서는것 같아서 서버 프로그래머에게 밸런싱을 맡기게 되었다.

 

 

 결과부터 말하지면 서버 프로그래머에게 밸런싱을 맡긴것은 최고의 선택이였고, 서버 프로그래머가 밸런싱을 담당한 이후로 게임내 밸런스는 매우 정교하고 안정적으로 변해갔다. 기획자에게 맡겼다면 정말로 힘들었을부분이 서버 프로그래머에게 맡겼기 때문에 정말로 쉽게 해결되었다.

 

 어떻게 서버 프로그래머가 기획자도 힘든 밸런싱을 완벽하게 할수 있었을까? 나는 이상하게 생각했지만 몇가지 비결이 있었다.

 


 

 

1. 운영팀과의 긴밀한 협력

 운영툴을 만드는 서버 프로그래머였기에 운영팀과 긴밀하게 협력하고 있었다. 운영툴에 원하는 데이터를 자동으로 리포팅하는 기능을 추가해서 데이터를 수집하였고, 운영팀과 소통할일이 많았기 때문에 밸런싱을 하는데 필요한 제반정보를 많이 가지고 있었다.

 

2. 기획자보다 더 풍부한 공식경험

 서버 컨텐츠 프로그래밍을 6년이상 해왔던 경험많은 서버 프로그래머였기 때문에 오히려 기획자보다 시스템기획에 대한 지식이 훨씬더 많았다. MMORPG 에서 사용되는 다양한 데미지 공식을 알고 있었고, 오히려 기획자보다 더 다양한 공식을 보여주었다.

 

Damage = Attack - Defense 같은 간단한 공식에서부터 Damage = Attack * (Attack * AttackFactor / Defense * DefenseAttribute ) * ( AttackerLevel / MonsterLevel ) * WeightRatio + BonusDamage + ClassAdjustment + BuffModifier + PassiveModifier; 와 같은 여러가지 복잡한 데미지 공식을 알고 있었다. 여러가지 MMORPG 게임을 개발하면서 얻은 다양하고 복잡한 공식들을 알고 있었는데, 이러한 지식은 웬만한 기획자를 능가하는 것이였다.

 

3. 로그파일분석 능력.

로그파일 분석능력이 기획자보다 뛰어났다. 밸런싱 작업은 방대한 통계분석이 수반되는데, 이러한 로그파일을 분석해서 이러한 통계작업을 해야하는데, 기획자중에서는 로그파일을 파싱해서 원하는 데이터를 추출하고, 가공해서 원하는 통계값을 뽑는것이 힘들다. 하지만 프로그래머에게는 매우 쉬운일이다.

 

 서버 프로그래머이니, 서버에서 로그파일을 가져와서 원하는 밸런싱 데이터모델을 만드는것은 정말로 쉬운일이였다. 만약에 로그파일에 원하는 정보가 없을경우 바로 서버코드에 추가하여 밸런싱에 반드시 필요한 정보를 로그파일을 남기도록 하였다.

 

이러한 작업은 서버 프로그래머가 아닌 기획자는 꿈도 못꾸는 작업들이다.

 

 


 

서버 프로그래머가 밸런싱을 하는 모습을 보고 가장 충격적이였던 부분은 기획자는 상상하기도 힘든 복잡한 문제를 프로그래머라는 능력을 사용해서 손쉽게 해결하는 그 과정이였다.

 

a. 워리어 1레벨부터 100레벨까지의 캐릭터가 STR,DEX,CON,INT,MEN 을 다양하게 찍었을때의 데미지 분포곡선이 어떻게 나타나는가?

 

b. "전설의 레이드몹" 을 66레벨 캐릭터가 공격한다고 할때, 40이상의 데미지를 줄수 있는 아이템은 어떤것들이 있는가?

 

c. 100레벨의 캐릭터가 1레벨 단검부터 100레벨 단검까지 다양한 아이템으로 공격할때 데미지가 어떻게 분포하는가?

 

d. 1레벨부터 100레벨까지의 캐릭터가, 1레벨부터 100레벨까지의 아이템을 차고, 1레벨부터 레이드몹까지 다양한 몬스터를 공격할때 나타나는 데미지 분포 패턴,

 

f. 특정 몬스터에게 60이상의 데미지를 가할수 있는 STR 과 아이템 조합 경우의 수.

 

이러한 문제들은 기획자가 풀기 위해서는 엄청난 노가다를 해야할것이다. 하지만 프로그래머는 쉽게 해낸다. 게임서버에 있는 캐릭터와 아이템테이블 시스템 소스코드를 뜯어내서 모듈화 시킨다음에, 테스트용 프로그램을 만들어, 수치 시뮬레이션을 돌려버린것이다.

 

기획자라면 2~3개월동안 노가다하면서 감으로 맞출 문제를 프로그래머는 간단하게 코딩 몇번으로 답을 찾아낸다. 정말로 놀라운 일이다.

 

 


 

서버 프로그래머가 밸런싱을 하는 모습은 이상하게 보일수도 있지만 결과적으로 말하자면 매우 성공적이였다. 기획자가 밸런싱을 할때는 밸런싱이 그야말로 "물넣고 소금넣고" 의 반복이였다. 어느 특정 스킬이 강하다고 생각되면 하향패치 하고, 유저들의 반응을 보고, 다시 조정하고 혹은 잘 사용되지 않는 스킬이 있으면 상향패치 하고, 유저들의 반응을 보고.

 

 밸런싱작업을 할때마다 유저들의 불만이 터져나오고, 적절한 밸런싱 모델이 찾을때까지 기획자는 이렇게 해보고, 저렇게 해보는 "감으로 숫자맞추기" 의 반복이였다. 손님에게 요리를 해주는데, 싱거우면 소금넣고, 짜면 물넣는 격이였다. 하지만 달리 방법이 없었다. 한방에 정확한 밸런싱모델이 안나오는데 무슨 방법이 있겠는가? 이리저리 쑤셔보는수밖에 없다.

 

 한가지 재미있는 점은 서버 프로그래머는 "게시판" 을 주된 밸런싱데이터로 생각하지 않았다. 유저들의 의견에 휘둘리다 보면 오히려 밸런싱이 쏠릴수 있다면서 자신만의 굳은 밸런싱 모델을 지켜나갔다. 이것이 기획자와 서버 프로그래머의 차이였다.

 

 

 한가지 안타까운점은 서버 프로그래머가 밸런싱자체는 양호한 수준으로 끌어 올렸지만, 이미 때는 늦었다. 유저들이 다 떠나간다음에 제대로된 밸런싱이 나왔지만 소 잃고 외양간 고친격이였다.

 

 애초에 처음부터 서버프로그래머가 밸런싱을 했다면, 이런일은 발생하지 않았을것이다. 지금 생각하면 아쉬움이 많이 남는다.

 

 서버 프로그래머가 밸런싱을 한다면 뭔가 이상하게 생각하는사람들이 많을것이다. 하지만 게임개발에 있어서 절대적인 법칙은 없다. 서버 프로그래머가 기획자보다 밸런싱을 더 잘할수 있다면 서버 프로그래머가 하는것이 더 좋을수 있다.

 

 실제로 나는 서버 프로그래머가 기획자보다 훨씬더 밸런싱을 잘하는것을 경험했고, 그것이 단순한 요행이 아니라, 프로그래머만이 가질수 있는 탄탄한 기반하에 이루어졌다는것을 알수 있었다.

 

 밸런싱은 기획자의 업무라고 굳게 믿는사람이 있다면 한번 생각을 바꾸는것이 어떨까? 비록 게임은 망했지만 내가 언급할수 있는 몇 안되는 "성공사례" 중 하나이다.

 


// 이분 블로그에 들어가보면 다양한 기획성공실패사례가 있는데... 내용을 보면 대체 어떤 정말 기획자복을 못받으신분 같다.

// 나도 한때는 기획자였고 지금 개발을 배우고 있지만 손님에게 요리를 해주는데, 싱거우면 소금넣고, 짜면 물넣는 격이였다. 도대체 어떤 기획자인데 일을 저런식으로 처리하는지 같이 일하면 암걸릴거 같은 기분이 들지도 모르겠다. 아니 기획 신입이라도 저런짓은 안한다. 내가 안했으니까.

// 나도 게임시작 컨셉을 정하기 위한 시장조사에 대해서는 회의적이다. 사람들이 캐쥬얼 게임많이하니 캐쥬얼게임 만들자 MMORPG시장이 현재 성장중이니 우리도 MMORPG를 만들자 라는 소리는 헛소리라고 생각한다. 일단 들어보고 재밌어보이면 찬성해야 한다고 생각하니까.

// 하지만 하나의 컨셉과 게임의 대한 세부내용이 나온상태에서는 절대적인 통계에 의지한 개발작업이 필요하다고 생각한다.

// 밸런스란 무엇인가? 게임시스템에 의해서 생성된 수치들을 통해서만 맞출수 있는거다. 여기에서 수치가 공격력 방어력 하나인가?

// 유저의 위치, 3차원 게임이라면 그에 맞는 거리. 시전시간 DPS 단순히 스킬의 컨셉에 의한 효과만이 아닌 스킬매커니즘에 따른 사용시의 용의함. 이런것들이 정해지고 이 또한 팩터로 맞춰져야 한다. 이런거다. 1분이 걸릴 전투에서 20초동안 주문을 외우고 한방에 상대의 MAXHP의 절반에 달하는 데미지를 주는 스킬이 있다고 치자. 1분이니 두번만 쓰면 무조건 그 유저는 이긴다. 하지만 여기에 캐스팅을 끊을수 있는 기술이 있다면? 혹은 입고있는 장비에 의해서 캐스팅시간이 길어지거나 짧아진다면? 버프에 의해서 공격력이나 방어력 혹은 캐릭터가 이동하면서 캐스팅을 할수 있다면? 스킬은 타겟팅인가 아니면 투사체를 확인하고 회피할수 있나? 등등의 수많은 변수고 단순한 데미지 공식만이 아닌 전체적인 내용적 조율이 필요하다.

// 위의 내용들은 컨트롤적인 내용이니 밸런스적으로 맞추기 힘들다고? 아니다. 움직이는 거리 스킬의 상성등도 결국에는 수치다.

// 게임은 결국 어떠한 값을 저장하고 그 저장된 값을 조작하여 동작하는 것이다.

// 밸런스는 그 값의 통계를 통해서 맞추는거다. 그 이상이하도 아니다. 절묘한 밸런스? 넘사벽의 컨트롤? 수치화 할 수 없다 예상할 수 없다? 한마디로 이야기하면 그렇지 않다.

// 즉 밸런스의 실패란 수치를 오판하는데서 오는 것이다(밸런스를 위한 항목이 모두 준비되어 있다면 언제든 밸런스는 조정이 가능하다 준비해 주는건 기획자와 프로그래머가 항상 협의해야 한다)

 

결론을 말하자면 모든 영향요소는 밸런스에 고려되어야 한다.

그것에 대해서 오판할 수 있다. 

 

예를 들자면 이런거다 인간의 반사신경으로 80% 정도의 적중률을 가질것으로 보이는 논타겟팅 스킬이라 공격력을 일반적인 데미지의 20% 가량 상승시켰다.

하지만 예상보다 스킬은 맞추기 쉬웠고 프로들의 경기에서는 95%가량의 적중률을 보였다.

일반인들도 90%는 적중시킨다.

어라 생각한것보다 데미지 팩터가 10%의 오차가 생겼다.

이에 의해서 약간의 데미지를 하향시켜서 밸런스를 맞춘다.

혹은 속력을 좀 늦춰서 더 피하기 쉽게 만든다. 공격력을 하향시킬까? 아니면 투사체의 속력을 하향시킬까는 혹은 판정을 좀 좁힐까? 이 모든게 밸런싱 담당자의 몫이다.

인간의 반사신경이나 투사체의 속력 유저의 실력 등의 통계가 밸런스에 영향을 미치는 것이다.

하지만 이미고려된 항목이라면 그때는 팩터만 변경해주면 된다. 오판한 수치에 대한 수정이 밸런스를 맞추는 것이다.

 

하지만 애초에 고려되지 않은 사항이라면? 투사체의 속력이나 유저의 실력 일반적인 통계가 항목에 고려되지 않았다면?

거기서부터 이미 밸런스시 고려해야할 항목에서부터 모든 요소(사거리, 데미지 공식, 방어, 유저의 컨트롤(반사신경, 판단력), 시야, 상대와의 조합등등등 고려될 수 있는 모든 요소!)를 감안하지 않은 시점에서부터 이미 기획자의 실책이라고 볼 수 있다.

Posted by JJOREG