게임과 확률의 관계는 꽤 밀접하다. 과거 PC게임이 없던 시절에도 사람들은 RPG를 즐겼다. D&D라고도 불리는 이 게임은 사람들이 테이블에 둘러앉아 판타지 소설에 나오는 직업들(전사, 마법사, 성직자등등)을 각자 맡아 진행자가 들려주는 이야기의 모험을 즐기는 게임이다.
이 게임을 진행시키는 가장 중요한 요소는 주사위이다. (D&D에서 사용되는 주사위는 6면체 말고도 8면체부터 21면체까지 다양하다.)
주사위를 굴려 나온 숫자에 따라 전투가 진행되고 이야기의 흐름에 적절한 방해도 받고 하는 것이다. (적절한 방해와 장애물은 이야기에 몰입하는데 매우 중요하다.)
이러한 주사위 확률 룰은 그 뒤 D&D가 PC의 RPG게임으로 변하면서도 계속 유지되어 오고 있는 중요한 요소이다.
확률은 매우 중요한 게임 요소이다. 그리고 게임 외적으로도 중요한 요소이기도 하다.
그렇다면 이러한 확률은 어떻게 테스트를 할까?
테스터에게 이런 과제가 주어졌다.
“고블린 사냥을 성공 했을 시 ‘고블린의 귀’ 아이템이 1/10 확률로 받게 되어 있다. 고블린의 귀가 1/10 확률로 받을 수 있는지 확인해 달라.”
테스터는 고블린을 10번 사냥했고 ‘고블린의 귀’ 아이템은 안타깝게도(?) 3개가 나왔다.
그렇다면 테스트 결과는 실패한 것일까?
아니다. 확률에 대한 코드는 정상적으로 동작했고. 그 결과. ‘고블린의 귀’ 아이템은 나오거나. 나오지 않는 결과가 나온 것이다.
확률 코드에 대해 좀 더 구체적인 결과를 얻고 싶다면 1/10 과 1/100 확률이 나오는 테스트를 할 것이 아니라 1/10, 10/10 에 대한 확률을 테스트 하는 것이 좋을 것이다.
위와 같은 테스트 통해 테스터는 다음과 같은 결과를 얻을 수 있다.
1/10 – 1,2번의 당첨
10/10 – 10번의 당첨
경계값을 좀 더 고려하고 싶다면 9/10을 추가 할수도 있다. 받을 때보다 못 받는 경우가 더 적어야 정상이다.
그리고 테스터는 확률 코드가 정상임을 확인 할 수 있다.
아마도 확률의 이런 부분에 대해 “아니 그럼 이 희귀템이 정말 서버 통틀어 하나 정도면 나와야 하는데 확률을 못 믿으면 어떻 하나요?” 라고 생각 할 수도 있다.
정말 서버 통틀어 하나만 나와야 하는 희귀 아이템이고 제약에 대한 부분이 필요하다면 확률 외에 해당 아이템이 한번 이라도 나오면 그 뒤로는 나오지 않는 조건이 코드에 추가되어야 한다.
나는 실제로 그런 상황을 본 적이 있다. 이벤트로 확률에 의해 당첨되는 아이템이 확률에만 의존하여 기획자의 의도와 다르게 생각했던 수량보다 더 나간 것이다. 아마도 수량의 제약까지 있었으면 문제는 발생하지 않았을 것이다.
한번 확률만 있어도 되는 경우와 확률과 제약이 같이 있어야 하는 경우를 나눠 보았다.
확률만 있어도 되는 경우
전투 시의 확률 (공격율,방어율,회피율)
파티 플레이 시 루팅 확률
루팅되는 아이템이 밸런스상 기획자의 제약 안에 있지 않아도 되는 경우
확률과 제약이 같이 있어야 하는 경우
이벤트 시 당첨되는 상품 수량이 제한되어 있을 경우
루팅되는 아이템이 밸런스 상 기획자의 제약 안에 있어야 하는 경우
P.S 디아블로 같은 게임은 유니크템이 떨어지는데 제한이 있지 않다. (디아2 말기 그 귀한 조던링이 뭉치로 돌아다녔다.) 결국 제한을 거느냐 마느냐도 해당 게임의 게임성에 따라서 기획자가 정할 일이다. 가정으로 서버 하나에서 모든 유저들이 최고의 무기를 가지기 위해 서로 싸우는 게임이 있고 그 무기가 조던링같이 루팅이 된다면 모든 유저들에게 해당 게임을 하는 목표가 사라지기 때문에 안 될 것이다.
P.S2 아이구 오랫만에 글을 쓰네요. 최근에 게임 오픈 시키고 주말 모니터링차 회사 나와서 겸사겸사 글을 작성했습니다. 앞으로 시간이 나는대로 다시 글 올리도록 하겠습니다. :)
'QA' 카테고리의 다른 글
무료로 사용가능한 Testcase를 공유 합니다. (1) | 2013.05.20 |
---|---|
게이머 구분하기 (2) | 2013.03.04 |
당신의 버그 리포트에 꼭 들어가야 할 내용들 (5) | 2012.07.28 |
비쥬얼드 블리츠를 테스트해보자! (2) | 2012.07.03 |
게임 테스터 서바이벌 프로그램 "The Tester" (0) | 2012.05.02 |