본문 바로가기
대학생활/수업

게임밸런스및시뮬레이션 3주차 - 성장 밸런스 & 시뮬레이터

by se.jeon 2023. 9. 11.
728x90
반응형

게임의 이상적인 성장 곡선은 무엇일까?

 

아이템과 같은 경우는 복불복이 있기도 하지만, 성장은 그렇지 않다.

1레벨에서 2레벨로, 레벨이 올라간다는 것에 대한 기본적인 쾌감이 있다.

 

3가지 타입 중 무엇이 가장 좋을까?

제곱증가의 명확한 장점은 초반 진입 장벽이다. 게임의 재미를 빠르게 보는 방식.

초반에는 필요한 경험치가 적어 쉽게 플레이 할 수 있다.

초반에는 진입 장벽이 낮고, 후반에는 노가다를 견딜 힘이 있는 유저들이 있는 만큼 필요치가 늘어난다.

 

 

성장 밸런스에서 가장 중요한 것은 무엇일까?

기준, 목표에 대한 부분은 성장 밸런스에서도 예외는 아니다.

대조해서 볼 수 있는 기준이 없으면 값 자체가 공허하고, 의미가 없어진다. 기준값과 목표값이 중요하다.

 

 

성장 밸런스 시뮬레이터

1레벨 몬스터의 경험치는 몇이 되어야 하고,

13레벨 몬스터의 경험치는 몇이 되어야 할까?

 

잡는 데에 드는 시간의 차이가 있음에도 보상이 같다면 아무도 13레벨 몬스터를 잡으려고 하지 않는다.

 

- 레벨 차이가 13배니까, 1레벨 몬스터 경험치를 입력하고 13배 늘려주는 것은 어떨까요?

> 사냥 시 획득 경험치 100, 1,300.

기준이 생긴 것. 25레벨의 경우 2,500.

 

몬스터의 경험치는 그 자체로 의미를 갖기 어렵다.

경험치를 얼마나 모아야 레벨업을 하는지에 대한 부분이 빠져 있기 때문이다.

 

 

1레벨에서 2레벨이 되려면 얼마의 경험치가 필요한가?

13레벨에서 14레벨이 되려면 얼마의 경험치가 필요한가?

 

1레벨 > 2레벨 : 1000 - 보코블린 10마리

13레벨 > 14레벨 : 20000 - 리잘포스 15.3마리

 

 

보코블린을 잡을 때 시간이 얼마나 걸리는가?

1레벨에서 2레벨이 되는 시간은? : 보코블린을 10마리 잡는 시간.

이는 전투 밸런스와 연결되게 된다.

 

전투 시간 8초 + (적을 찾는)색적 시간 4초

뛰어가는 데에 걸리는 시간까지 계산하면 12초, 10번 한다고 하면 120초.

총 2분의 시간이 소요된다는 접근이 가능하다.

 

 

1레벨에서 2레벨이 되는데, 2분이면 너무 긴 게 아닐까?

1분 10초 (70초) 정도로 맞춰본다면?

- 기준은 바뀌지 않고, 목표만 바뀌는 것.

 

12 + 12 + 12 + 12 + 12 + 12 = 6마리(5.8마리) 사냥에 72초가 소요됨.

보코블린 5.8마리 = EXP : 580 = 1레벨에서 2레벨이 되는 데에 필요한 경험치

기준을 통해서 목표를 설정해서 값을 재조정 해 주어야 한다.

 

 

이제 13레벨에서 14레벨이 되는 시간은?

전투 시간 12초 + 색적 시간 4초라고 가정했을 때, 16초가 소요된다.

16초를 16(15.3마리)회 반복하게 되면 4분 26초가 소요된다.

 

13레벨에서 14레벨이 되는데 4분 25초는 너무 짧은 게 아닐까?

13분 정도로 바꿔본다면?

48.75마리를 잡아야 된다. 총 63,700이라는 경험치가 필요함.

 

한쪽을 고정시켜서 기준을 세우지 않으면 잴 수가 없다.

밸런스에서 중요한 포인트

1. 기준을 세운다

- 각 몬스터를 사냥 시 획득하는 EXP의 양 (A)

- 각 몬스터를 사냥 시 걸리는 시간 (B)

2. 목표를 정한다.

- 레벨업에 필요한 총 목표 시간 (C)

 

레벨업에 필요한 EXP 계산식 : C / B * A

기준이 되는 것을 결정하고 대응 관계를 만들면 다른 값들이 굴비 엮듯이 딸려오게 된다.

성장 밸런스 시뮬레이터 - 응용

RPG 게임에서 전투, 사냥만이 아니라 메인 퀘스트만 쭉 진행해도 만렙이 되는 게임은?

성장 밸런스와 연결되어 있다.

만렙까지 필요한 경험치의 총량을 계산하고, 총량 기준 대비 퀘스트 하나하나의 배분을 해 준다.

전체 총량을 기준으로 70~80%만 받더라도 대단히 높게 설정된 것이다.

나머지는 전투 노가다로 키워야 한다.

성장 밸런스 시뮬레이터 - 대상 게임 예시

- 캐주얼 게임

- PvP 형태

- 하스스톤

- 오버워치

- 칼바람

- 카트라이더

성장 밸런스 시뮬레이터 - 개념 정리

매 게임을 플레이했을 때 받는 경험치나 게임 재화.

승리한 유저와 진 유저가 있을 때, 진 유저에게 보상을 줄 때에는 신중해야 한다.

 

첫번째로, 매크로 때문.

레퍼런스의 매치가 중요한 게임들은 게임 플레이 경험 자체가 흐트러지게 된다.

플레이어적인 마인드로는 져도 열심히 했기에 보상을 줘야 하지만, 모든 유저가 그렇게 행동하지는 않는다.

 

이를 막기 위한 시스템

- 신고 시스템 (어뷰징, 매크로) : 관리 비용이 많이 든다.

- 보상을 한시적으로 준다 (한 게임에 3번 이상 불가능)

한국과 외국의 게임 인식이 다르기 때문에 문화가 다른 경향이 있다.

 

레벨을 기반으로 한 접근

- 초보 구간

- 라이트 구간

- 준코어 구간

- 하드코어 구간

레벨 곡선 안에 그룹을 만들어놓고 나열 해 본다.

성장 밸런스 시뮬레이터 - 경험치 획득량

EXP의 기준을 한 게임 당 획득하는 EXP로 설정

- 승리/ 패배시 > 승률 > 평균 EXP

 

승리 EX와 패배 EXP와의 관계

승리 EXP와 패배 EXP의 격차가 크면 클수록, 승률에 따른 성장 격차가 강화된다.

 

유저의 레벨을 매칭의 중요한 포인트로 가져간다면?

레벨이 매칭에 영향을 준다는 전제로 승률이 높은 유저는 빨리 성장하고,

상대적으로 많이 패배하는 유저는 더 빠르게 잘하는 유저와 만나게 된다.

 

비슷하게 보상을 받게 되어 같이 올라가면서 끊임없이 고통받는 순환을 끊을 수 있음.

비슷하게 보상을 받게 되면 승리하는 그룹에게도, 패배하는 그룹에게도 좋지 않음.

기본적으로 승률이 높으면, 승률에 대한 부심이 생기게 된다.

적당한 패배를 경험해야 스트레스가 많지 않다.

 

Lose 유저에게도 EXp를 줘야 할까?

패배 시에도 불구하고 이득이 있을 경우 어뷰징에 취약할 수 있다. (물론 재화가 더 심한 경향)

최소 제공량에 대한 고민도 필요하다 너무 낮은 단위로 값을 써버리면 밸런스를 하는 것이 오히려 어려워진다.

 

경기에 패배한 유저에게 EXP를 1씩 준다면,

경기를 패배하는 것 보다 상대적으로 못한 액션에 EXP를 주는 것에 어려움을 겪을 수 있다.

 

경험치 획득량

- EXP 10씩 주고, 레벨업을 위해 100의 EXP를 요구하는 것 : 10보다 낮은 보상이 1~9까지 9단계이다.
- EXP 100씩 주고, 레벨업을 위해 1,000의 EXP를 요구하는 것 : 100보다 낮은 보상이 1~99까지 99단계이다.

위 둘은 개념적으로 같으면서도, 미묘하게 다르다.

 

파워라는 스탯이 있다고 가정 해 보자.

[ A 스탯 ]

최대 = 100

범위 = 1~100

최소 제공값 = 1

1의 밸런스적 가치 = 1

 

[ B 스탯 ]

최대 = 1000

범위 = 1~1000

최소 제공값 = 1

1의 밸런스적 가치 = 0.1

실습 진행

 

 

 

 

승리 시 획득 EXP와 패배 시 획득 EXP를 다르게 세팅할 수 있도록 설계하자

1. 값을 변경하며 확인할 영역을 표시하자

2. 평균 EXP 구간은 계산식으로 값이 나오도록 하자

3. 계산식 = 승리 EXP * 승률% + 패배 EXP (1- 승률%)

 

시뮬레이터 포트폴리오를 제작 할 때는 색상이 있는 곳만 값 변경이 가능함을 알려주면 좋다.

더불어, 고정값은 건드리지 못하도록 장치를 해 주는 것이 좋다.

성장 밸런스 시뮬레이터 - 목표 기간 설정

하루에 얼마나, 몇 일 동안, 얼마나 충실하게?

하루 게임 수 > 목표일 > 충실도 > 목표 게임

 

하루에 2시간으로 기준을 잡아보자.

10분의 플레이시간을 가진 게임으로 2시간의 플레이타임을 뽑아내려면...

- 50분 플레이하면 10분 휴식은 국룰.

- 2달을 잡으면, 2달 내에 만렙 유저들이 즐길 컨텐츠가 있어야 한다.

- 보수적으로 개발 일정까지 고려하지 않으면 어려움을 겪을 수 있다.

 

 

 

행/열 고정 기능 설명

- $A1 : A행 고정

- A$1 : 1열 고정

- $A$1 : A행과 1열 모두 고정

 

 

총 4개 구간으로 나누어 컨트롤한다면

성장 밸런스 시뮬레이터 - 레벨 비중 설정

구간에 할당된 경험치를 레벨마다 배분 해준다.

 

 

현업에서 보게되는 데이터는 위처럼 나누는 것이 아니라, 아래처럼 테이블 형식으로 되어있을 것.

 

 

3가지로 접근 해 볼 수 있다.

- 임의로

- 동일하게

- 가중치로

%값을 사용하려고 할 때는 값 타입을 반드시 신경 쓸 것.

 

 

엑셀 함수 - ROUND 함수 정리

=함수이름(number, number_digits)

1. ROUND : 반올림 - number digits까지 표시

2. ROUNDUP : 올림 - number digits까지 표시

3. ROUNDDOWN : 내림 - number digits까지 표시

 

 

차트를 생성하여 시각적으로 확인 해 보기

 

 

필요 게임수 및 필요일수

A그룹과 B그룹으로 나누어 비교

- 승률

- 하루 게임수

 

 

경험치의 곡선을 어떻게 만들 것인가?

어차피 총량을 정해두었으니, 초반에는 쉽고 후반에는 어렵게 만들자.

- 제곱값(POWER 함수 or 연산자 ^)을 활용 해 본다.

- 제곱근(SQRT 함수)을 활용 해 본다.

- 두 식을 조절하여 적절하게 조절 해 보자.

실습 진행

MMORPG의 경험치 테이블을 만들어본다면..

1. 각 레벨마다 레벨업을 위해 잡아야 하는 동레벨의 몬스터가 몇 마리인지 생각 해보자.

2. 레벨업 경험치량을 정하고 몬스터에게 배분하거나 몬스터의 경험치량을 정하고 레벨업 경험치를 계산해보자.

3. 특정 값을 입력하여 계산식을 통한 결과값을, 차트를 통해 직관적으로 확인할 수 있는 시뮬레이터 형태로 만들어보자.

* 특정값(인자)를 무엇으로 사용할지 고민이 필요하다.

 

 

728x90
반응형