MMORPG의 얍삽이를 없애는 방법론은 어떨까요?

fkiller의 이미지

제가 생각해보던 건데, 게임기획에는 강력한 수학적 검증론이 필요하지 않을까라는 부분입니다. 여러분의 의견은 어떠신가요? 탁상공론 같다거나 현실에 맞지 않다고 생각될 수도 있지만, 요즘 게임시장을 보다보면 우후죽순 생겨나는 신생게임의 극악 발란스나 경력있는 제작자 분들의 판단미스를 줄여줄 수 있는 강력한 이론적 바탕의 테스트 기법이 필요한 시점이 아닐까 싶어서요.
아래 글은 제 블로그에 끄적거렸던건데 그냥 올립니다.
어법변경못한점 양해해주세요.

---------------------------------------------------------------------

나는 모든 MMORPG를 해보는건 아니지만 게시판의 내용은 꼭 보는 편이다. 유저들이 어떠한 반응을 보이는지는 (대작이건 졸작이건 게시판 분위기나 내용은 비슷하지만) 매우 흥미로우며 그 게임이 시도한 새로운 요소나 세계관이 어떻게 어필하며 플레이에 영향을 주는지를 알 수 있기 때문이다. 하지만, 게시판에서 가장 공통적으로 많이 볼 수 있는 글은 바로 게임 발란스의 붕괴에 대한 문제이다. 초기 버전에 발생한 발란스 문제와 이를 보완하기 위한 패치로 인한 발란스 문제 등등.. 기획/운영능력이 많이 향상됐다고 해도 항상 나오는 문제들이다.

좀 단순화해보자. 무엇이 문제인가?

게임에는 다향한 요소가 존재함에도 불구하고(퀘스트나 버그로 인한 문제는 제외) 불균형의 원인은 대부분 숫자놀음의 실패에서 발생한다.

게임에서 사용되는 수는 보통 NLIP(Non-Linear Integer Problem)인 경우가 대부분이다. (만약 HP나 기타 속성치를 Float으로 만들었다면 LP(Linear Problem)) 일반적으로 가하는 제약..스킬의 렙업제한이나 스킬트리로 인한 Alternative Selection의 구조 같은 것은 수학적 측면으로 보면 Constraint(한계치)이다. 액션RPG는 아니라고 말할 수도 있으나, 가정할 수 있는 최고의 플레이 시 움직임을 Max로 유저의 실력에 따라 근접하게 된다. 그리고 타격공식, 속성의 조합은 최종적으로 적에게 데미지를 입히는 Objective Function이라 볼 수 있다.. MMORPG에는 아이템 생산이나 인첸트 등의 다른 Objective한 요소들이 있을 수 있지만 이것 역시 마찬가지 문제가 된다.

그렇다면 플레이어가 하고 있는 활동은 무엇일까?

일반적으로는 정해진 Constraint안에서 Max 수치를 향하여 성장하는게 일반적인 경우이다. 하지만, 스킬과 직업 등으로 인하여 도달할 수 있는 Max Point가 여러개이다. (조합으로 인하여 수만가지가 될 수 있다)


MMORPG의 모든 요소를 대입하려면 3차원도 모자란다.

그렇다면 발란스의 붕괴를 몰고오는 소위 얍삽이 빌드오더는 무엇일까?

캐릭터가 전투를 하게 되면 여러가지 요소에 의해 전투의 양상이 달라지지만 결국 중요한건 적을 얼마나 빨리 때리느냐 or 내가 얼마나 적게 맞느냐로 귀결된다. 결국 위의 조건들을 늘어놓고 Maximize Hit & Minimize Damage를 Optimizing Theory를 통해 얻었을때, 그 해가 1개이면 하나의 긍극의 얍삽이가 2개면 2개의 얍삽이가 탄생하는 것이다.


이 경우 x(4)로 가는 빌드오더는 얍삽이가 되는거다.

가장 좋은 구조는 Contraint 안에서 최고 성장을 한 경우 중에서 다수의 Maximize Hit & Minimize Damage가 나오는 것이다.


만일 w가 어떤 게임의 Optimized Point라면 기획자가 설계를 잘 한 것이다. 다수의 최대값이 존재하여 유저들은 다양한 방법으로 경쟁할 수 있게 된다.

좀더 심화해서 생각하면 유저가 들이는 시간 t 역시 끌어들일 수 있다. 시간대비 각 지점 별 유저의 능력치 변화 △Abilities를 비교하여 최단거리의 빌드 오더 역시 최소화할 수 있다.

현재 필드에 있질 않아 실제로 이러한 방법론을 쓰고 있는지 알기 힘들지만, 앞으로 보다 복잡해질 기획요소들을 생각하면 연구해볼 만한 분야이다.
----------------------------------------------------------------------
주) 위 그래프는 매우매우 단순화한 도식도에 불과합니다. 실제로 검증할려면 모든 게임 요소를 Constraint으로 만들어내야죠.

ydhoney의 이미지

흐흐~ gpg북 보는것도 정신없는데 이런걸 게시판에서 보니 눈이 막 돌아가요. @.@

serialx의 이미지

말씀하신 내용에 전적으로 동의합니다.

다만 변수가 수많은 MMORPG 시스템에서 최적화된 '해' 가 많도록 설계하는것은 매우 어렵지 않을까요?

수학적인 접근은 매우 신선해 보입니다. :)

namisiz의 이미지

산업공학 공부하는 입장에서 참 재미있는 것 같습니다.
연구할만한 가치있는 주제인 것 같기도 하구요.
다른 영역에서 이미 개발된 모델이나 알고리즘은 많으니까 모델링만 잘 하면 바로 적용 가능할 것 같기도 하고요.

제 생각에 WOW같은 시스템은 수학적인 어떤 모델이 있지 않다면 적당히 맞춰서 밸런싱을 하는건 불가능하다는 생각이 들고.. 우리나라의 대작 게임들도 어떤 형식으로든 수학적 모델을 쓰고 있지 않을까 생각이 듭니다.
비록 체계적인 모델링은 아니라 하더라도요.

세상이 좋아서 변수가 수만,수십만개라도 며칠 돌리면 답은 다 나오니까요.

fkiller의 이미지

좋은 의견들 감사합니다. 위 글을 쓴 이론적 토대는 작년에 들었던 Optimization Theory강의 내용에 기반한 것입니다. 거기서도 수십만개의 조건을 놓고 문제가 feasible(최적해가 존재)인지 infeasible(좀 다르지만 여러개의 최적해가 존재하는 개념)지를 판별하고 다양한 알고리즘(Continuous Improving Algorithm, Simplex 등등)을 이용하여 최적해의 조건을 추적할 수 있습니다.

일반적으로 이 이론은 해를 하나 또는 최소로 줄이는데 중점을 두지만 반대로 다양한 최대해가 나오는 것 또한 가능하죠. :)

아르아의 이미지

'가장 좋은 방법'을 'Maximize Hit & Minimize Damage'라 생각(가정?)하시고 글을 쓰신것 같습니다.
우선 Maximize Hit & Minimize Damage가 1개만 있어서는 안되는건 확실합니다.
모두들 그 방법으로만 할테니 재미가 없어지겠죠.
하지만 Maximize Hit & Minimize Damage가 여러개라고 문제가 해결되진 않습니다.
X1, X2, ..., X10이 Maximize Hit & Minimize Damage라고 치면
X1 = X2 = ... = X10이라는 이야기니 게임하는 입장에서는 그 열개가 다를게 없거든요.
즉 이름(겉모양)만 다를뿐 다 똑같단거죠.
이를 보고 '캐릭들이 개성이 없다'고 합니다.

또한가지, Maximize Hit & Minimize Damage를 논할라면 사실상
평균을 따질 수밖에 없습니다. 즉 어떤식으로 '평균'을 정의하든 아무튼
평균 타격치를 최대로 & 평균 데미지를 최소로 하게 된다는거지요.
하지만 100, 100 해서 평균 100인것과 150, 50해서 평균 100인것은
분명 차이를 주므로 구분해야 할 필요가 있습니다.

이를 통해서 Maximize Hit & Minimize Damage말고도
또다른 개념들도 도입해야만 한다는것을 알 수 있습니다.

그중 한가지는 상승효과입니다. 게임에 따라서
혼자 플레이할때는 별볼일 없는 6명이 모인 파티가
혼자 플레이할때 가장 잘나가던 6명을 모아놓은 파티보다 쎌 수가 있거든요.
이때문에 '어느것이 가장 좋느냐'하는 문제가 꽤 어렵게 됩니다.

또한가지는 천적관계입니다. (평균)Maximize Hit & Minimize Damage가 같더라도
가위바위보처럼 물고물리는 관계가 나올 수 있다는것이죠.
이런 관계가 존재할경우 '어느것이 가장 좋느냐'하는 문제는 사실상 별 의미가 없는 단계에까지 갑니다.

저는 이렇듯 오히려 '최선의 방법'이란것이 존재하지 않아야 게임이 더 재미있어 진다고 생각합니다.
또한 '전투'가 아니라 '경제'도 상당히 중요합니다.
경제시스템또한 균형이 맞고 붕괴되지 않아야만 하는데
이또한 흥미로운 문제라고 생각합니다

fkiller의 이미지

Quote:
'가장 좋은 방법'을 'Maximize Hit & Minimize Damage'라 생각(가정?)하시고 글을 쓰신것 같습니다.

네 MMORPG의 모든 분야를 예로 들자니 지면이 모자라서 일단 전투에 촛점을 맞췄습니다. 사실 이 이론이 주로 쓰이는 분야가 경제쪽이라 경제발란스 부분의 접근도 가능합니다.

Quote:
하지만 Maximize Hit & Minimize Damage가 여러개라고 문제가 해결되진 않습니다.
X1, X2, ..., X10이 Maximize Hit & Minimize Damage라고 치면
X1 = X2 = ... = X10이라는 이야기니 게임하는 입장에서는 그 열개가 다를게 없거든요.

이 부분은 음...설명하기가 쉽지 않은데 예를 들어보죠.
최종 데미지 = D(L(레벨),Sum(Ability(Each 능력치)),Sum(ItemAbility(Each 아이템)), RandomSeed)

L은 레벨에 따른 기본 데미지를 산출하는 함수, Ability는 각종 능력(직업특성, 육체/마법 공격력, 불/물 등의 속성, 등등등)을 통한 데미지, D는 위 4개의 파라미터를 통해 최종 데미지를 산출하는 함수라고 정의하죠.

만약 여러개의 최적조건이 발생한다는 얘기는 각 능력이 같다는게 아니라, RandomSeed를 배제하고(평균률로 계산하기 위하여) 다양한 속성 변화에 따라 최적의 전투가 가능한 캐릭터가 나올 수 있다는 겁니다.

여기서부터는 매우 복잡해지는데 System에 따라 저렙인 경우에도 특정한 수련을 통하여 최뎀에 도달하는 해가 발생할 수도 있습니다. 그렇기 때문에 기획자는 자신의 철학에 맞추어 최대 해가 발생하는 Constraint의 새로운 Constraint을 입혀야 합니다.

예를 들면 최대 뎀이 발생하는 해의 조건이,
레벨 > 90, 전사스킬 > 28 or 마법사스킬 > 29, 모든 능력치 > 5
이라면 렙90 이상에서 직업 스킬이 이 상태인 경우 최고의 캐릭터가 나오게 하겠다는 기획자의 구상이 반영된 수치가 되는거죠. 모든 능력치 > 5는 능력치 분배 올인을 막기 위해서 사용될 수 있을 만한 Constraint입니다. 지금 역시 모든 스텟을 예를 들지 않았기 때문에 단순화한 예제에 불과합니다.

쉽게말해서 같은건 데미지 뿐이고 모든 스텟이 다른 캐릭터가 나오는다는 거죠.

Quote:
또한가지, Maximize Hit & Minimize Damage를 논할라면 사실상 평균을 따질 수밖에 없습니다. 즉 어떤식으로 '평균'을 정의하든 아무튼 평균 타격치를 최대로 & 평균 데미지를 최소로 하게 된다는거지요.

데미지의 평균으로 계산해야하는게 맞습니다. RandomSeed는 시간에 따라 다르게 작용하기 때문에 결국 이길때 있고 질때 있어도 통계학적으론 빼고 계산하는게 맞는거죠. 다만 시스템 상 평균 데미지 외에 공격속도와 타격량 또는 맥뎀과 민뎀이 전투에 직접적인 영향(통계적으로 틀리게 나올 수 있는)이 있는 경우는 그것도 포함시켜 계산해주면 됩니다. 이런건 모두 기획자의 예상 속에서 돌아가는 것이니까요.

Quote:
또한가지는 천적관계입니다. (평균)Maximize Hit & Minimize Damage가 같더라도 가위바위보처럼 물고물리는 관계가 나올 수 있다는것이죠.

맞습니다. 상성 관계는 다양성을 증가시켜주는 좋은 요소중 하나죠. 하지만 상성관계 역시 공식과 로직이 포함된 함수를 통해 최종 해가 도출되기 때문에 같은 방식으로 진행하면 됩니다. (경제문제에서 발생하는 상성역시 이런식으로 해결하죠) 수학에서 얘기하자면 (선형 공식으로 설명못하는) 비선형이 발생하는거죠.

써놓고 보니 정리가 되는 부분도 있고 클리어하지 않는 부분도 있네요. :)
말씀하신대로 결국 중요한건 기획자의 아이디어와 기획입니다. 이런 방법론이 "재밋는" 공식을 만들어 주지는 못하죠. 다만 사람의 생각으로 할 수 없는 "구멍"을 찾아주고, 더 나아가 자신의 의도대로 게임이 진행 될 수 있을지를 시뮬레이션 해 주게 되는 거죠.

avelose의 이미지

전에 했던 게임중에 프리x트가 빌드트리를 멋지게 만들었던 것으로 기억합니다.
렙업과 스테이터스가 밀접한 관계를 이루고 있고 각 케릭터별 중요 상태정보 별로 우선순위를 두어서 사용자가 밸런스 붕괴를 막는 역활을 했습니다.
밸런스를 붕괴하기 위해서는 엄청난 노력이 필요했던 게임이였습니다.[다만 문제는 기본적인 렙업 트리는 상당히 좋았다고 생각하지만 여타의 아이템이니 스킬등이 기본 빌드트리와 엇갈려서 사용자가 공식을 만들고 게임을 하게 만드는 단점이 존재했습니다. 예를 들어 초반에 빠르게 경험치를 쌓을 때 가장 힘들게 올려야하는 스테이터스를 올려 주는 등의 문제가 있었습니다.]

대충 형태를 보여드리자면

0       dex       str      
|--------+--+-------+---+--|
            int        wiz

같은 형태로 경험치가 dex에 있을 때 렙업 버튼을 누르게 되면 dex에 가산되며 렙이 오르는 형태로 되어 있었죠.

밸런스를 깨려면 깨라. 다만 그 만큼 너는 노력해야 한다식의 이론은 참 좋았습니다. 사용자가 그만큼 노력하여 얻는 밸런스 붕괴[이건 붕괴라고 보기 힘든 경우로 보입니다.]는 타당하는게 현재의 저의 지론이죠.

'현실은 수학으로 표현할 수 없다.'
'수학은 거짓의 학문이다.'
'난 수학이 정말 싫다.'