SlideShare ist ein Scribd-Unternehmen logo
1 von 24
확률의 구현법
미친고양이 이택승
다루지 않는 것
 가챠 기획
 가챠 BM
다루는 것
 확률 시스템 플로우
 각각의 시스템의 특징
 그것이 유저에게 주는 감정
이게 다 뽑기 때문이에요.
이게 다 뽑기 때문이라고, XX야!
이해를 위한 기본 지식
 시스템 설계
 DB와 서버의 차이
시작해 볼까요?
컴퓨터가 과연 랜덤을 알까요?
 모릅니다.
 일반적인 언어가 제공하는 랜덤 함수들은 ‘시간’ 등을 시드값으로 삼아,
독립시행되는 랜덤값을 뽑아주는 것
일반적인 확률 구현
 1 ~ 100, 혹은 1 ~ 10000 사이에서 한 값을 랜덤함수로 추출
 추출한 값이 기획쪽에서 설정한 값보다 낮을 경우, 랜덤 성공
랜덤 값 추출
(1 ~ 10000)
테이블에 정의된 값보다
낮은가?
성공 처리
실패 처리
낙차 확률
구간 확률
보정 확률
묶음 확률
낙차 확률
낙차확률
 A의 확률이 실패 시 B의 확률을 계산하는 구현방식
 A만 독립시행, B 이후는 종속시행
 B 이후부터는 테이블에 표시된 확률과 실제 확률이 다르다.
랜덤 값 추출
(1 ~ 10000)
테이블에 정의된 값보다
낮은가?
A
성공 처리
랜덤 값 추출
(1 ~ 10000)
테이블에 정의된 값보다
낮은가?
B
성공 처리
랜덤 값 추출
(1 ~ 10000)
낙차확률
 일하는 입장에서는 테이블에 기록된 값이 실제 값이라 생각하기 마련인데, 실
제로는 다르니 혼동을 일으키기 쉬움
 B 의 실제 확률 계산법
 ‘테이블에 적힌 B확률’ * (1-’A 성공확률’)
 C는 또…..
 매번 확률을 수정할 때마다 실제 확률도 확인해야 하니, 작업이 번거로움
 개인적으로는 선호하지 않습니다.
구간 확률
구간확률
 나올 수 있는 가짓수의 확률을 모두 더한 후, 나온 랜덤값이 어느 구간에 위치
하느냐를 판단하여 해당 구간의 결과값을 리턴하는 방식
 독립시행
 한국 가챠 등에서 가장 기본적으로 쓰이는 확률 구현
구간별 확률을
모두 더함
랜덤 값 추출
(1 ~ Max
구간 확률)
추출된 값이
위치한 구간에
따라 결과
결정
구간확률
 전투에서의 사용 예
확률 구간 판정
1~15% 회피
16~90% 타격 파이프라인
91~100% 크리티컬 파이프라인
보정 확률
보정확률
 실패한 경우 다음 시행 때 테이블에 지정된 값의 확률 가중치를 더해 성공 확률
을 올리는 구현방법
 강화나 퀘스트 아이템 드랍 등에서 자주 사용
성공확률 계산
성공 처리
랜덤 값 추출
(1 ~ 10000)
성공확률 = 테이블에 기록된 확률
+ DB에 저장된 확률 가중치
성공확률보다 낮은가?
실패 처리
확률 가중치
저장
확률 가중치 = DB에 저장된 확률 가중치
+ 테이블에 저장된 보정 확률
확률 가중치
초기화
보정확률
체험 그 외 기타
User DB 계속 실패를 하더라도 언젠가는 성공할
수 있다는 것에 대한 안정감
DB 부담 약간 있음
Server DB 실패의 결과물을 언젠가 서버의 누군가
는 먹을 거라는 점에서 굉장한 북불복
과 물욕을 일으킴
일정 이상의 실패를 브로
드캐스팅하는 경우 효과
증가
 확률 가중치를 User DB에 저장할 것인지, Server DB에 저장할 것인지 혹은 정
보를 어느 정도 공개할 것인지에 따라 시스템 상세는 달라진다.
묶음 확률
묶음 확률
 각 아이템 별로 얻을 수 있는 개수를 정해놓은 후, 획득 시점마다 얻은 아이템
을 기록하여 다음 확률 계산에서 제거하는 방식
 대표적인 종속시행 확률
 가장 정확한 확률
 일본에서 주로 사용(가챠)
획득 가능 상품 = 테이블에 기록된 상품 개수
- DB에 저장된 획득한 상품 개수
획득 가능 상
품 계산
랜덤 값 추출
(1 ~ Max
상품 개수)
추출된 값이
위치한 구간에
따라 상품
지급
모든 상품이 지급되었나?
획득 상품 저
장 DB 초기화
획득 상품 저
장 DB 기록
묶음확률
체험 그 외 기타
User DB 1인 대상 한정으로 가장 정확한 확률을
구현 가능
DB 부담 가장 큼
Server DB 어떻게 보면 매직 더 개더링 등 오프라
인 뽑기 상품 구성 방법
플레이어에게 상품 노출 시 조건부 물
욕 센서 부여 가능
단 당첨이 먼저 노출되어 있을 경우 물
욕 센서 감소
기본적으로 ‘당첨/꽝’이
인정되어야 효과가 큰 만
큼 ‘꽝'이 없어야 하는
한국/일본의 확률 자율
규제제도와 가장 안 맞는
구현
확률 시스템 구성 노하우
묶음 확률의 변형
 묶음 확률을 보여주되 당첨 상품이 나올 경우 묶음 확률 관련 DB를 초기화하는
방식
 당첨 상품이 나왔음을 보여줬을 때 가챠 의지가 약해지는 부작용을 해소 가능
 하지만 ‘꽝’이 없어야 하는 일본/한국의 자율규제 원칙과 충돌하는 부분이 있음
 특히 실제 확률이 얼마나 되는지 계산하기 어려워짐
가챠를 구성할 때 원칙
 ‘낙차 확률'이나 ‘보정 확률‘, ‘당첨 시 초기화되는 묶음 확률’ 등으로 가챠 시스
템을 구성할 경우 실제 확률을 고시하기에 어려움이 있음
 내가 통계에 자신이 있는 것이 아니면 회사에서 공지하는 확률과 실제 확률이 달라
질 가능성이 높음
(유명 원화가 부부의 스타트업으로 유명했던 모 게임의 사례)
 시스템은 최대한 단순하게 구성한 후 유저에게 주는 보너스 등은 ‘마일리지’ 등의, 확
률과 별개로 독립된 시스템을 통해 제공하는 것이 깔끔함
최근 중국 가챠 시스템 중 하나의 사례
분석
 규칙
 가챠에서 나올 아이템을 100개까지 미리 보여준다.
 가챠를 실행할 경우 스택 방식으로 미리 보여준 아이템이 뽑힌다.
 플레이어는 원할 때 이 리스트를 게임 내 현금재화(ex.보석)를 내고 초기화할 수 있다.
 내부 규칙 추정
 큰 규칙은 1단계: 묶음확률, 2단계: 구간확률로 추정된다.
 묶음확률 규칙에 따라 100개 중에 등급 별로 몇개씩 있을 것인지 정해진 후, 등급 내
실제 드랍 아이템은 구간확률 규칙에 따라 정해지는 방식으로 추정
 그렇게 정해진 100개의 아이템을 개인 DB에 저장한 후 UI를 통해 노출하는 방식

Weitere ähnliche Inhalte

Was ist angesagt?

게임 기획 튜토리얼 (2015 개정판)
게임 기획 튜토리얼 (2015 개정판)게임 기획 튜토리얼 (2015 개정판)
게임 기획 튜토리얼 (2015 개정판)Lee Sangkyoon (Kay)
 
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정강 민우
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 
게임제작개론 : #4 게임 밸런싱
게임제작개론 : #4 게임 밸런싱게임제작개론 : #4 게임 밸런싱
게임제작개론 : #4 게임 밸런싱Seungmo Koo
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018devCAT Studio, NEXON
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012devCAT Studio, NEXON
 
랜덤다이스_라이브 게임 분석_강인중.pdf
랜덤다이스_라이브 게임 분석_강인중.pdf랜덤다이스_라이브 게임 분석_강인중.pdf
랜덤다이스_라이브 게임 분석_강인중.pdfingin1
 
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리강 민우
 
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부Eunseok Yi
 
NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준영준 박
 
레벨디자인 특강 이동훈
레벨디자인 특강 이동훈레벨디자인 특강 이동훈
레벨디자인 특강 이동훈Donghun Lee
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법Chris Ohk
 
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기강 민우
 
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규ChangKyu Song
 
NDC 2015 삼시세끼 빌드만들기
NDC 2015 삼시세끼 빌드만들기NDC 2015 삼시세끼 빌드만들기
NDC 2015 삼시세끼 빌드만들기Hyunsuk Ahn
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들Jubok Kim
 
위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점Ryan Park
 
프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법Lee Sangkyoon (Kay)
 
어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?Lee Sangkyoon (Kay)
 

Was ist angesagt? (20)

게임 기획 튜토리얼 (2015 개정판)
게임 기획 튜토리얼 (2015 개정판)게임 기획 튜토리얼 (2015 개정판)
게임 기획 튜토리얼 (2015 개정판)
 
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정
[IGC 2017] 넥슨코리아 심재근 - 시스템 기획자에 대한 기본 지식과 준비과정
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
게임제작개론 : #4 게임 밸런싱
게임제작개론 : #4 게임 밸런싱게임제작개론 : #4 게임 밸런싱
게임제작개론 : #4 게임 밸런싱
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
 
랜덤다이스_라이브 게임 분석_강인중.pdf
랜덤다이스_라이브 게임 분석_강인중.pdf랜덤다이스_라이브 게임 분석_강인중.pdf
랜덤다이스_라이브 게임 분석_강인중.pdf
 
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
 
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부
 
NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준
 
레벨디자인 특강 이동훈
레벨디자인 특강 이동훈레벨디자인 특강 이동훈
레벨디자인 특강 이동훈
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법
 
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
 
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
 
NDC 2015 삼시세끼 빌드만들기
NDC 2015 삼시세끼 빌드만들기NDC 2015 삼시세끼 빌드만들기
NDC 2015 삼시세끼 빌드만들기
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들
 
위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점
 
프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법
 
어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?
 

Ähnlich wie 확률의 구현법

Open domain dialogue Chatbot(잡담봇 삽질기)
Open domain dialogue Chatbot(잡담봇 삽질기)Open domain dialogue Chatbot(잡담봇 삽질기)
Open domain dialogue Chatbot(잡담봇 삽질기)NAVER Engineering
 
파이썬으로 나만의 강화학습 환경 만들기
파이썬으로 나만의 강화학습 환경 만들기파이썬으로 나만의 강화학습 환경 만들기
파이썬으로 나만의 강화학습 환경 만들기정주 김
 
[NDC 2011] 게임 개발자를 위한 데이터분석의 도입
[NDC 2011] 게임 개발자를 위한 데이터분석의 도입[NDC 2011] 게임 개발자를 위한 데이터분석의 도입
[NDC 2011] 게임 개발자를 위한 데이터분석의 도입Hoon Park
 
리텐션의 산출과 활용
리텐션의 산출과 활용리텐션의 산출과 활용
리텐션의 산출과 활용Chanman Jo
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조Hyunjik Bae
 
[IGC 2016] 고정환 액션감성을_밸런스하다
[IGC 2016] 고정환 액션감성을_밸런스하다[IGC 2016] 고정환 액션감성을_밸런스하다
[IGC 2016] 고정환 액션감성을_밸런스하다Jeonghwan Ko
 
[Python] Controllable rock-paper-scissors game
[Python] Controllable rock-paper-scissors game[Python] Controllable rock-paper-scissors game
[Python] Controllable rock-paper-scissors gameKim Heejin
 
머신러닝으로 쏟아지는 유저 CS 답변하기 DEVIEW 2017
머신러닝으로 쏟아지는 유저 CS 답변하기 DEVIEW 2017머신러닝으로 쏟아지는 유저 CS 답변하기 DEVIEW 2017
머신러닝으로 쏟아지는 유저 CS 답변하기 DEVIEW 2017Donghwa Kim
 
애니팡의 성공메커니즘
애니팡의 성공메커니즘애니팡의 성공메커니즘
애니팡의 성공메커니즘StellaYun
 
02. naive bayes classifier revision
02. naive bayes classifier   revision02. naive bayes classifier   revision
02. naive bayes classifier revisionJeonghun Yoon
 

Ähnlich wie 확률의 구현법 (10)

Open domain dialogue Chatbot(잡담봇 삽질기)
Open domain dialogue Chatbot(잡담봇 삽질기)Open domain dialogue Chatbot(잡담봇 삽질기)
Open domain dialogue Chatbot(잡담봇 삽질기)
 
파이썬으로 나만의 강화학습 환경 만들기
파이썬으로 나만의 강화학습 환경 만들기파이썬으로 나만의 강화학습 환경 만들기
파이썬으로 나만의 강화학습 환경 만들기
 
[NDC 2011] 게임 개발자를 위한 데이터분석의 도입
[NDC 2011] 게임 개발자를 위한 데이터분석의 도입[NDC 2011] 게임 개발자를 위한 데이터분석의 도입
[NDC 2011] 게임 개발자를 위한 데이터분석의 도입
 
리텐션의 산출과 활용
리텐션의 산출과 활용리텐션의 산출과 활용
리텐션의 산출과 활용
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조
 
[IGC 2016] 고정환 액션감성을_밸런스하다
[IGC 2016] 고정환 액션감성을_밸런스하다[IGC 2016] 고정환 액션감성을_밸런스하다
[IGC 2016] 고정환 액션감성을_밸런스하다
 
[Python] Controllable rock-paper-scissors game
[Python] Controllable rock-paper-scissors game[Python] Controllable rock-paper-scissors game
[Python] Controllable rock-paper-scissors game
 
머신러닝으로 쏟아지는 유저 CS 답변하기 DEVIEW 2017
머신러닝으로 쏟아지는 유저 CS 답변하기 DEVIEW 2017머신러닝으로 쏟아지는 유저 CS 답변하기 DEVIEW 2017
머신러닝으로 쏟아지는 유저 CS 답변하기 DEVIEW 2017
 
애니팡의 성공메커니즘
애니팡의 성공메커니즘애니팡의 성공메커니즘
애니팡의 성공메커니즘
 
02. naive bayes classifier revision
02. naive bayes classifier   revision02. naive bayes classifier   revision
02. naive bayes classifier revision
 

확률의 구현법

  • 2. 다루지 않는 것  가챠 기획  가챠 BM
  • 3. 다루는 것  확률 시스템 플로우  각각의 시스템의 특징  그것이 유저에게 주는 감정 이게 다 뽑기 때문이에요. 이게 다 뽑기 때문이라고, XX야!
  • 4. 이해를 위한 기본 지식  시스템 설계  DB와 서버의 차이
  • 6. 컴퓨터가 과연 랜덤을 알까요?  모릅니다.  일반적인 언어가 제공하는 랜덤 함수들은 ‘시간’ 등을 시드값으로 삼아, 독립시행되는 랜덤값을 뽑아주는 것
  • 7. 일반적인 확률 구현  1 ~ 100, 혹은 1 ~ 10000 사이에서 한 값을 랜덤함수로 추출  추출한 값이 기획쪽에서 설정한 값보다 낮을 경우, 랜덤 성공 랜덤 값 추출 (1 ~ 10000) 테이블에 정의된 값보다 낮은가? 성공 처리 실패 처리
  • 8. 낙차 확률 구간 확률 보정 확률 묶음 확률
  • 10. 낙차확률  A의 확률이 실패 시 B의 확률을 계산하는 구현방식  A만 독립시행, B 이후는 종속시행  B 이후부터는 테이블에 표시된 확률과 실제 확률이 다르다. 랜덤 값 추출 (1 ~ 10000) 테이블에 정의된 값보다 낮은가? A 성공 처리 랜덤 값 추출 (1 ~ 10000) 테이블에 정의된 값보다 낮은가? B 성공 처리 랜덤 값 추출 (1 ~ 10000)
  • 11. 낙차확률  일하는 입장에서는 테이블에 기록된 값이 실제 값이라 생각하기 마련인데, 실 제로는 다르니 혼동을 일으키기 쉬움  B 의 실제 확률 계산법  ‘테이블에 적힌 B확률’ * (1-’A 성공확률’)  C는 또…..  매번 확률을 수정할 때마다 실제 확률도 확인해야 하니, 작업이 번거로움  개인적으로는 선호하지 않습니다.
  • 13. 구간확률  나올 수 있는 가짓수의 확률을 모두 더한 후, 나온 랜덤값이 어느 구간에 위치 하느냐를 판단하여 해당 구간의 결과값을 리턴하는 방식  독립시행  한국 가챠 등에서 가장 기본적으로 쓰이는 확률 구현 구간별 확률을 모두 더함 랜덤 값 추출 (1 ~ Max 구간 확률) 추출된 값이 위치한 구간에 따라 결과 결정
  • 14. 구간확률  전투에서의 사용 예 확률 구간 판정 1~15% 회피 16~90% 타격 파이프라인 91~100% 크리티컬 파이프라인
  • 16. 보정확률  실패한 경우 다음 시행 때 테이블에 지정된 값의 확률 가중치를 더해 성공 확률 을 올리는 구현방법  강화나 퀘스트 아이템 드랍 등에서 자주 사용 성공확률 계산 성공 처리 랜덤 값 추출 (1 ~ 10000) 성공확률 = 테이블에 기록된 확률 + DB에 저장된 확률 가중치 성공확률보다 낮은가? 실패 처리 확률 가중치 저장 확률 가중치 = DB에 저장된 확률 가중치 + 테이블에 저장된 보정 확률 확률 가중치 초기화
  • 17. 보정확률 체험 그 외 기타 User DB 계속 실패를 하더라도 언젠가는 성공할 수 있다는 것에 대한 안정감 DB 부담 약간 있음 Server DB 실패의 결과물을 언젠가 서버의 누군가 는 먹을 거라는 점에서 굉장한 북불복 과 물욕을 일으킴 일정 이상의 실패를 브로 드캐스팅하는 경우 효과 증가  확률 가중치를 User DB에 저장할 것인지, Server DB에 저장할 것인지 혹은 정 보를 어느 정도 공개할 것인지에 따라 시스템 상세는 달라진다.
  • 19. 묶음 확률  각 아이템 별로 얻을 수 있는 개수를 정해놓은 후, 획득 시점마다 얻은 아이템 을 기록하여 다음 확률 계산에서 제거하는 방식  대표적인 종속시행 확률  가장 정확한 확률  일본에서 주로 사용(가챠) 획득 가능 상품 = 테이블에 기록된 상품 개수 - DB에 저장된 획득한 상품 개수 획득 가능 상 품 계산 랜덤 값 추출 (1 ~ Max 상품 개수) 추출된 값이 위치한 구간에 따라 상품 지급 모든 상품이 지급되었나? 획득 상품 저 장 DB 초기화 획득 상품 저 장 DB 기록
  • 20. 묶음확률 체험 그 외 기타 User DB 1인 대상 한정으로 가장 정확한 확률을 구현 가능 DB 부담 가장 큼 Server DB 어떻게 보면 매직 더 개더링 등 오프라 인 뽑기 상품 구성 방법 플레이어에게 상품 노출 시 조건부 물 욕 센서 부여 가능 단 당첨이 먼저 노출되어 있을 경우 물 욕 센서 감소 기본적으로 ‘당첨/꽝’이 인정되어야 효과가 큰 만 큼 ‘꽝'이 없어야 하는 한국/일본의 확률 자율 규제제도와 가장 안 맞는 구현
  • 22. 묶음 확률의 변형  묶음 확률을 보여주되 당첨 상품이 나올 경우 묶음 확률 관련 DB를 초기화하는 방식  당첨 상품이 나왔음을 보여줬을 때 가챠 의지가 약해지는 부작용을 해소 가능  하지만 ‘꽝’이 없어야 하는 일본/한국의 자율규제 원칙과 충돌하는 부분이 있음  특히 실제 확률이 얼마나 되는지 계산하기 어려워짐
  • 23. 가챠를 구성할 때 원칙  ‘낙차 확률'이나 ‘보정 확률‘, ‘당첨 시 초기화되는 묶음 확률’ 등으로 가챠 시스 템을 구성할 경우 실제 확률을 고시하기에 어려움이 있음  내가 통계에 자신이 있는 것이 아니면 회사에서 공지하는 확률과 실제 확률이 달라 질 가능성이 높음 (유명 원화가 부부의 스타트업으로 유명했던 모 게임의 사례)  시스템은 최대한 단순하게 구성한 후 유저에게 주는 보너스 등은 ‘마일리지’ 등의, 확 률과 별개로 독립된 시스템을 통해 제공하는 것이 깔끔함
  • 24. 최근 중국 가챠 시스템 중 하나의 사례 분석  규칙  가챠에서 나올 아이템을 100개까지 미리 보여준다.  가챠를 실행할 경우 스택 방식으로 미리 보여준 아이템이 뽑힌다.  플레이어는 원할 때 이 리스트를 게임 내 현금재화(ex.보석)를 내고 초기화할 수 있다.  내부 규칙 추정  큰 규칙은 1단계: 묶음확률, 2단계: 구간확률로 추정된다.  묶음확률 규칙에 따라 100개 중에 등급 별로 몇개씩 있을 것인지 정해진 후, 등급 내 실제 드랍 아이템은 구간확률 규칙에 따라 정해지는 방식으로 추정  그렇게 정해진 100개의 아이템을 개인 DB에 저장한 후 UI를 통해 노출하는 방식