1 장 . 기본적인 RPG 전투 설계의 개념
2 장 . 시간 개념의 기준 잡기
3 장 . 레벨 설계
4 장 . 온라인 RPG에서의 레벨 설계
5 장 . ?===================================
1 장 기본적인 RPG 전투 설계의 개념
먼저, 전투의 뼈대를 설계하는 작업이다. 전투 방식에 따라 어떤 파라메터들이 필요한지 알게 될
것이다. 우선, 통상적인 RPG 전투는 다음과 같은 기본 요소들로 구성되어 있다.
1. 공격
2.
방어
3. 회피/명중률
상당히 단순하다. 본인이 플레이해 본 RPG에서는 HP(혹은 생명력)이 0이 되면 캐릭터가
죽거나 실신하다는 컨셉에서 벗어나는 것을 떠올릴 수 없다!
'프론트 미션'과 같은 약간 특이한 경우의 게임도 몇 있다. 이 게임에서
등장하는 반쳐(게임에서 캐릭터가 타고 다니는 로봇으로 게임을 이끄는 실체가 된다)에는 HP가 5 부분에 나뉘어 할당된다. 양팔, 양다리, 그리고
몸통.. 양다리에 데미지를 받으면 이동력에 지장을 받으며, 양팔에 데미지를 받으면 공격에 지장이 생긴다. 마지막으로 바디에 데미지를 받아 바디
HP가 0이 되면 전투불능상태에 빠져 그 반쳐는 패배한 것으로 간주된다. 그러나, 이 게임에서도 결국 약간의 변화만 주었을 뿐 근본적인 RPG
전투 시스템의 패러다임은 그대로이다.
(개인적으로 생각하기에, 개체의 생명력으로 이렇게 수치적으로 가감하여 계산하는 것은 단순할
뿐만 아니라 굉장히 서구적인 사고방식이다. 어떻게 생명을 수치 하나로 결정할 수 있단 말인가? 이에 대해 본인은 좀 더 생명 자체의 이해에서
바탕한 게임 시스템의 혁신적 진화를 기대하고 있다.)
얘기가 옆으로 빗나갔는데, 다시 본론으로 돌아와서 통상적인(혹은 정상적인)
RPG 전투 시스템을 만들기 위해서는 아주 기본적인 다음의 공식을 이해해야 한다.
< 전투기본공식
>
A'sHP := A'sHP - ( B'sATT - A'sDEF ) * HitRate
이것이 지금껏 RPG
계에서 계속해서 사용하고 있는 기본 공식이다. 이 공식은 아주 기본적인 개념을 수식적으로 표현해주고 있다. '상대방(B)이 나(A)에게 공격을
했을 때 나의 방어력으로 어느 정도는 커버하고 상대방의 공격력에 따라 데미지를 입는다. 운이 좋으면 적게 맞을 수도 있고 운이 나쁘면 가볍게
쳐도 크게 맞는다.'라는 생각이다. 위 기본 공식은 아래와 같이 약간의 변형을 줄 수도 있다.
A'sHP := A'sHP -
(B'sATT * HitRate) + A'sDEF
ATT 는 공격력, DEF는 방어력이다. HitRate는 명중률을 의미하며,
크리티컬 데미지나 빗나감 등을 처리할 때 이용할 수 있다. 통상 디폴트는 1 이다. 위의 식을 자세히 보면, 오류가 생길 소지가 있다는 것을 알
수 있을 것이다. 정확한 처리는 다음과 같은 정도로 해 줄 수 있다.
if B'sATT > A'sDEF then A'sHP
:= A'sHP - ( B'sATT - A'sDEF ) * HitRate
else A'sHP := A'sHP -
1
즉, 상대방(B)의 공격력 보다 나(A)의 방어력이 세다면 나의 HP가 1 정도의 데미지만 입도록 하였다.
위의
설정의 경우, 가장 기본적인 네 가지 요소 HP, ATT, DEF, HitRate 만을 가지고 계산하였지만, 실제 게임을 디자일할 때에는 재미를
위해 좀 더 다양한 변수들을 통하여 계산이 되도록 설정할 필요가 있다.
가령 예를 들어, ATT와 DEF를 다음과 같은 간접적인
방식으로 도출되게 만들 수 있다.
ATT = (LV/10) + (STR/2) + (SumWeaponPwr) +
LUK
DEF = (LV/10) + (STR/2) + (SumEquipmentDef) + DEX
위에 만들어준 공식을
살펴보자면 LV(레벨)과 STR(힘), SumWeaponPwr(무기의 파워합), SumEquipmentDef(장비의 방어력합),
LUK(행운치), DEX(민첩성) 등의 파라메터가 나온다. 물론, 이러한 파라메터가 많이 들어갈수록 게임의 벨런싱은 더욱 골치아프게 될 것이다.
하지만, 누구나 불 보듯 빤한 게임 플레이를 한다면... 금새 질리고 말 것이다. 그리고, 그런 것이라면 누구나 다 만들 수 있다고 생각할
것이다. 그러므로, 게임 디자이너는 플레이어의 머리를 꼬기 위하여(쉽게 눈치 채지 못하게 하기 위하여..) 일반적인 범인으로서는 생각할 수 없는
수치 노가다를 해야만 하지 않겠는가?
전투에는 대게 다음과 같은 추가 룰이 선택적으로 들어가는 것 같다.
- Level 요소 : 같은 공격력이라도 LV이 높은 자가 우세하다
- 시간 요소 : 공격에 걸리는 시간에 따라 우선권, 회피가
결정되며, 동일한 시간 안에 여러번 공격할 수도 있고, 한 번도 공격하지 못할 수도 있다.
- 속성 요소 : 같은 공격이라도 공격자와 피해자 간의 상성 관계에 따라 데미지가 더욱 커질 수도 있고 작아질 수도 있다.
ATT = (P1) *+ (P2) *+ (P3).. *+ (Pn) *+ (LvRate) *+
(AtbRate) < * TimeRate >
DEF = (P1') *+ (P2') *+ (P3').. *+ (Pn')
*+ (LvRate) *+ (AtbRate) < * TimeRate >
'*+'는 곱하거나 더할 수 있다는 것이다.
곱한다면 전체 능력 및 % 상승, 혹은 하락을 가져오며, 더한다면 전체 능력의 일부 상승이나 하락을 가져온다. 곱했을 경우 게임 전반에 걸쳐
수치적 영향의 크며 조정이 힘들기 때문에 더하는 계산을 해주고 벨런싱 노가다를 많이 하는 편이 좀 더 안전하다고 볼 수
있다.
LvRate 는 레벨적용율이며, P1..Pn 은 임의의 능력치/내부 파라메터 변수를 나타낸다. AtbRate는 속성적용율을
나타낸다. TimeRate는 시간적용율이며, 한 번의 기준 시간에 얼마만큼의 공격을 할 수 있는가를 나타낸다. TimeRate는 전투
분석기(테스터)에서 사용하고 후에 때어내므로, <> 안에 넣었다. 시간에 대하여서는 다음 회에 다시 얘기하도록
하자.
이제, 이러한 궁리 끝에 나온 기본적인 공식을 적용하여, 전투 분석기를 만들어야 한다. 전투 분석기는 실제의 게임에서 전투가
어떻게 치루어지는가를 알려줄 중요한 정보들을 제공해 줄 것이며, 게임 디자이너는 이 툴을 이용하여 레벨 벨런싱을 먼저 할 수 있을 것이다. 전투
분석기에서는 가상의 캐릭터들을 만들어 한 번의 전투에 걸리는 시간을 산출해야 하며, 얼만큼의 휴식을 취해야 할른지, 얼마 후에 레벨업이 있는지,
레벨업 후 어떤 변화를 가지는지를 모두 수치적으로 처리할 수 있을 것이다. 물론, 플레이어가 실제 게임에서 느끼는 것과는 많이 다른 느낌일
테지만... 마치, 2차 대전 중 전략실에서 어디어디엔 군함을 놓고 어디어디엔 탱크부대를 진격시키고 하는 워게임과 실제의 총알이 빗발치고 폭음이
난무하는 전장과는 다르다고 보아야 할 것이다.
komusin: 앞부분에 얘기하신
[생명 자체의 이해에서
바탕한 게임 시스템의 혁신적 진화]
에 대해서두 나름대루 가지신 생각을 듣구싶네여^^;
그내용은 아이디어란으루 가야 대나용^^?
[09/11-13:18]
rosencross: komusin님, 지금으로선 그 idea를 구체적으로 밝히기는 어렵지만, 제
생각을
말씀드릴께요. 인간은 몸,마음,영혼(혹은 의식/정신)으로 구성되
어 있습니다. 대부분의 게임에서는 '몸'의 상태만을 수치적으로
표현하
여, 죽었느냐,살았느냐,얼마나 살았느냐하고 판단합니다. 물론, 대부분
의 게임의 재미를 끌어내기 위해 그 정도의 설정만 있어도
충분하다고 생
각합니다. 게임은 게임일 뿐이니까요... 그러나, 전 좀 다른 것을 꿈 꾸어
보고 있습니다. [09/11-21:24]