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

게임데이터설계 11주차 - 가챠 시스템 심화

by se.jeon 2023. 5. 24.
728x90
반응형

가중치 랜덤에 대한 복습

- 문어발 8개 중에서 3개는 몇 %일까? 37.5%

- 8개를 100%를 볼 때, 3개는 몇 %인가?

각 해산물이 실제로 나올 확률은 얼마일까.

 

가중치

전체 중에서 몇 퍼센트를 기여하고 있는지를 의미한다.

 

클래시 로얄 게임의 시스템

각 상자는 어떻게 만들었을까?

실제로 이런 상자들을 만든다면 어떤 것을을 데이터에서 처리할 수 있을까?

 

클래시 로얄의 카드에는 다양한 정보가 들어있다.

실습을 위해 클래시 로얄의 카드를 추가.

 

클래시 로얄의 상자 시스템

1. 실버, 골드, 마법상자 등... 다양한 상자가 아레나에 따라 구성된다.

2. 골드를 랜덤하게 줄 수 있다. (최소, 최대값 설정 가능)
3. 제공되는 전체 카드 수가 정해져 있다.

4. 반드시 포함되는 카드를 설정할 수 있다. (등급과 장수 설정 가능/ 최대 3종류)
5. 상자를 열기 위해 필요한 시간이 있다. (10분 당 보석 1개 필요)

 

누가 주체가 될 것인가?

누구를 주체로 두느냐에 따라 데이터 테이블의 구조는 바뀔 수 있다.

- 카드를 주체로 둘 것인지

- 상자를 주체로 둘 것인지

 

관리 데이터를 최소화하되, 다양성을 놓쳐서는 안 된다.

데이터의 표현 방식은 다양하므로 한정하지 말고 넓게 생각해야 한다.

- 상자에서 나올 수 있는 패턴의 경우의 수는 얼마나 많을까?

- 무수한 경우의 수를 다 만든다면 엄청난 노가다 작업이 발생하게 될 것이다.

 

골드 상자의 경우 경우의 수가 엄청 다양해지지만, 겹치는 패턴으로 카드가 나오는 것을 확인할 수 있다.

계산식이 가지는 한계점이 데이터에서는 해소된다.

 

리스트로 하느냐 행으로 하느냐는 데이터를 어떻게 관리하느냐에 따라 달라진다.

 

구조를 만든 후에 그 구조를 활용하여 콘텐츠를 만드는 습관을 가져야 한다.

 

클래시 로얄의 가챠 시스템 흐름

1. 상자 오픈 > 2. 결과물의 패턴 결정 > 3. 결과물 카드 결정

1. 상자 오픈
- Chest Master의 Chest Code를 참조한다.

- Chest_Main_Type과 Chest_Sub_Type으로 상자의 종류를 확인한다.
2. 결과물의 패턴 결정
- Chest_Master의 Chest_Code를 Gacha_Master의 
Gacha_Code로 참조한다.
- 해당 Gacha_Code가 가진 Pattern_Index를 확인하고 Pattern_Rate 가중치 랜덤 방식을 통해 패턴을 뽑는다.
3. 결과물 카드 결정
- 선택된 패턴에 따라서 카드를 뽑는다.
- Card_Code를 참조하는 경우 해당 카드를 뽑으면 된다.
- Card_Grade를 참조하는 경우라면 어떻게 뽑아야 하지!? (각 카드의 확률은!?)

 

GetRate, 가중치 방식을 이용하여

공개되지 않게 하거나 두 배로 나오게 값을 유도할 수 있다.

 

게임에서는 아레나에 따른 해금 기능이 있다.

- 아레나 2에서는 아레나 3에 해금되는 골렘이 나오지 않도록 해야한다.

 

번개 상자의 경우

- 바뀌는 것 : 카드의 코드

- 바뀌지 않는 것 : 카드의 등급, 카드의 장수

 

프로그래머가 알아야 하는 정보가 무엇인지 정리해가며 데이터를 만들면 수월하다.

 

클래시 로얄에서 상자를 열다가 게임을 강제종료하면 어떻게 될까?

- 마지막 카드를 보여주기 이전에 종료된 경우, 게임을 실행하자마자 가챠 연출을 다시 실행 해 준다.

- 마지막 카드를 보여주고 난 이후 가챠 시스템이 종료된다.

- 서버에서 데이터를 받았기 때문에 강제종료를 한 시점에도 인벤토리에 이미 카드가 들어 가 있다.

- 클라이언트는 시각적으로 알려줄 뿐이다.

 

데이터 제작 실습 진행.

데이터는 몇 번씩 확인해도 반드시 실수가 나오게 되어있다.

꼼꼼하게 검증하는 훈련을 해야 한다.

728x90
반응형