겨울팥죽 여름빙수
article thumbnail

 어떤 게임을 하든 게임이 재미 있으려면, 캐릭터 간의 상성, 적절한 보상, 장비의 적정 가격 등 밸런스가 잘 맞아야 한다.

 예를 들어, 아래와 같은 능력치의 단검이 있을 때, 왜 100G(골드)일까??

고급 단검

 

- 공격력 100

 

- 초당공격횟수 1.4

 

- 가격 100G 

 

이제 이 질문의 대한 논리적 답을 찾아보려고 한다.

 

게임을 밸런스를 잘 잡기 위해 여러 방법들이 있는데, 그 중 dps를 기준으로 수치를 통일 시키는 것에 대해 생각해 보려고 한다.

 

 

 

 

 

 dps는 [damage per second]의 약자로 , 초당 데미지, 즉 1초의 데미지가 얼마인지에 대한 값이다. 캐릭터 A, B가 맞대결하고 있다고 하자.

밸런스가 잘 된 경우, 사용자는 어떤 캐릭터가 이길지 예측할 수 없어야 한다. 만약 캐릭터 A가 능력치가 월등히 좋다면, 사용자는 A가 좋다는 것을 쉽게 파악하고, 대부분의 사용자가 A캐릭터를 선택해 사용할 것이다. 하지만 둘의 능력치가 미묘하게 다르지만 비슷해 보인다면, 자신의 취향에 따라 캐릭터를 골고루 선택 해 사용하게 된다. 이는 게임 내 다양한 전략을 의미하고, 사용자는 게임이 좀 더 다양한 컨텐츠를 준다고 느낄 수 있다. 즉 캐릭터 A, B의 dps는 같아야 한다.

 

 

캐릭터 A는 1초에 한번씩 공격하고, 데미지가 100이라고 하자. 

캐릭터 A

 

- 초당 공격 횟수 : 1

 

-  공격력 : 100

이 경우, 캐리턱 A의 공격dps

공격 dps = (초당공격횟수)*(공격력) = 1*100 = 100

이 된다.

 

 

만약 크리티컬 확률이 20%이고, 크리티컬 데미지 시, 2배의 데미지가 들어간다고 해보자.

캐릭터 A

- 초당 공격 횟수 : 1

-  공격력 : 100

- 크리티컬 확률 : 20%

- 크리티컬 데미지 : 공격력의 2배

이 경우 공격 dps는

공격 dps = (초당공격횟수)*(공격력+크리티컬확률*(크리티컬 일 경우 추가 데미지)) = 1*(100 + 0.2*100) = 120

이 된다.

 

 

이런 식으로 방어력 관통 확률, 이동속도, 사거리 등의 능력치가 추가 될 수록 공식은 복잡해 진다. dps공식은 정확한 수학이라기 보단 논리에 가깝다. 위 공격력, 크리티컬, 공격횟수 같은 능력치는 비교적 정확한 dps 공식 및 값을 유추할 수 있다. 

 

하지만 이동속도, 사거리 이런 능력치는 유저의 컨트롤과 그 상황에 따라 dps가 달라질 수 있는데, 이런 것들의 정확한 공식을 만들어 내는 것은 사실상 불가능하다.

 

 

정확한 공식과 값을 뽑을 수 없다면 어떻게 해야할까?

 

 

 나는 이런 경우, 논리적인 이유를 적당히 넣은 공식을 만들어 낸 후, 여러 테스트(시뮬레이션) 후 값을 조정한다.  즉, (논리적 공식) + (테스트 후 나만의 감) 을 적용한다. 보통 기획자 분들이 감 밸런스 라고 하는 부분이다.

 

 

 처음부터 감으로 넣고 테스트 후 조정하면 되지 않을까?

 

사실 대충 적당히 값을 넣은 후, 여러 번의 시뮬레이션을 돌려, 그래프 모양을 찾고, 그 모양과 비슷한 수학 공식을 찾아 적용하는 방법도 있다고 한다. 즉 [선 테스트 -> 후 공식] 방법이다.

 하지만 혼자 이 방법으로 개발하기 하기에는 조금 힘들다 판단 되었다. 그래서 [선 공식 -> 후 테스트]방법으로 개발하고 있다.

 

 

 

 위에 [공격 dps]라는 용어를 사용했다. 굳이 dps를 [공격 dps]라고 말한 이유는, HP(체력), 방어력, 생명력흡수 등과 같은 능력치들은 공격력이 없다. 하지만 이러한 요소들도 dps라는 단위로 변환해야 한다. 위 요소들의 dps를 나는 [방어 dps]라고 칭했다. 

 

예를 들어, hp 1,000은 dps가 몇 일까? 

이 값을 유추하기 위해서는 몇 가지 가정해야 할 것이 있다.

 

1. 캐릭터 A, B가 칼을 휘두르며, 동시에 공격을 시작했다고 했을 때, 밸런스가 잘 된 경우(맞다이), 두 캐릭터는 동시에 죽어야 한다.

2. 두 캐릭터가 죽기까지 걸리는 시간이 일정해야 한다. 즉 기준이 되는 대결시간이 있다. (나 같은 경우 대략 10초로 설정했다.)

3. 기준이 되는 캐릭터 능력치가 있다(기준 캐릭터 능력치).

 

 예를 들어, 두 캐릭터가 서로 동시에 죽이는데 10초가 걸린다고 해보자. 즉 대결시간은 10초이다. HP가 1000인 경우, 서로의 [공격 dps]가 100이어야 10초가 된다.

 

대결시간 = (HP)/(공격dps)

10 = (1000)/(100) = (1100)/(110) = (1200)/(120) ....

 

HP값이 커질 수록 [공격 dps]값도 커진다. 즉 HP와 dps는 비례한다.

HP의 dps = (HP)/(기준시간)

으로 표현 할 수 있다.

여기서 기준이 되는 캐릭터의 HP가 1,000이라고 하면, 기준 캐릭터의 공격 dps는 100이 된고

 

 굳이 1,000을 고른 이유는 그냥 내 게임의 캐릭터 hp값이 1000일 때 적당해 보여서 이다. 요즘 캐릭터 hp가 몇 만 ~ 몇 조까지 되는 경우가 있는데, 중요한 건 기준이 되는 캐릭터, 즉 평균적인 캐릭터의 값을 잘 정해야 한다는 것이다. 그 값을 정하는 것은 개발자의 감 또는 다른 게임을 참고 하면서 결정 될 것이다.(난 lol을 참고했다.)

 

 

위에서 본 것 처럼, 게임의 dps 공식을 구하기 위해서는 우선 기준이 필요하다. 그 순서로

 

1. 대결시간. 너무 길면 게임이 루즈해지고, 너무 짧으면 컨트롤 시 어렵게 느껴질 수 있다.

2. 기준 캐릭터의 HP. 이 값에 정해지면, 다른 능력치들이 값을 정할 수 있다.

 

 

 

profile

겨울팥죽 여름빙수

@여름빙수

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!