SlideShare a Scribd company logo
1 of 66
Download to read offline
그럴듯한
랜덤 생성
컨텐츠 만들기
신규개발1본부 김용하
발표자 소개
프로그래머, 테크니컬 디렉터
KUF, 샤이닝로어
마비노기
마비노기 360
마비노기 영웅전
그 밖에 접힌 프로젝트 다수… orz
면접에서는 랜덤 문제를 반드시 출제하는 랜덤 애호가입니다
왜 랜덤 생성 컨텐츠가 필요한가
시작하기에 앞서…
컨텐츠 소모 속도가 너무 빠르다
한 탕 장사가 아님 | 플레이어님들은 자제하는 법이 없음 | 이 PT만 해도 10배속…
같은 컨텐츠를 반복 소모
같은 자극이 계속 반복되면
질린다 = 목표 상실
플레이어가 돌아오지 않는다
UU 감소
AI가 출동하면 어떨까?
AI가 컨텐츠를 만들어 준다면! | 아니, 제대로 된 AI가 있다면 그것만으로도 무한 컨텐츠…
하지만 현실적으로…
랜덤 던전
들어갈 때마다
던전 구조가 변경된다
랜덤 몹
몹 위치와 속성이 바뀜
랜덤 아이템
아이템 배리에이션이 무한
DIABLO 정도면 엄청 선방 | 컨텐츠 추가도 안하는데 5년간 10위권…
랜덤 생성 컨텐츠의 목표
기획자도 생각 못한 쌈박한 컨텐츠 만들기
- 10개 만들고 100개 처럼 보이도록 하기
- 새로운 자극이 계속 되는 것 같은 착각
할 수 없다는 것은 아니지만, 본 발표에서는 커버하지 않습니다
컨텐츠에 랜덤한 배리에이션을 주어
컨텐츠량의 수평적인 확장
Emerging이 아니라 Random !
본 PT에서 다루는 이슈
1. 재료를 어떻게 준비할 것인가
2. 그럴듯하게 보이기 위해 필요한 것
3. 케이스 스터디
캐릭터 생성기 | 퀘스트 생성기 | 던전 생성기
재료를 어떻게 준비할 것인가
랜덤 생성에 필요한 재료
이름 생성기를 만들어 봅시다
물론 이걸 랜덤 생성기라고 할 수는 없습니다 네.
그냥 미리 만들어둔 이름을 랜덤 출력
N = 8
파트를 나눕니다
컨텐츠의 수 =
<PART1 COUNT> x <PART2 COUNT> x …
N = 8x8 = 64
참 쉽죠 !
먼저 단순히 성과 이름으로 나눠 봤습니다
랜덤 생성의 기본
배리에이션을 더 늘리고 싶다면
1. 각 파트 재료의 개수를 늘린다
2. 파트를 더 나눈다
Divide & Conquer로 접근한다
이 편이 결과물의 완성도 저하를 최소화 하면서 파트를 나눠갈 수 있음
처음부터 ㄱ +ㅏ+ ㅇ ㅂ+ㅐ+ㄱ ㅎ+ㅗ+□ 로 나누면 골룸
이 얘기는 뒤에도 계속 나와요..
Data-Driven
각 파트를 쉽게 추가/삭제/수정할 수 있도록 설계
SQLITE 쓰세염
그래서 파트를 더 나눠 봅시다
N = 8x8x8 = 512 ?!
어라라… 미묘해졌습니다?
문제 1. 어색한 조합이 생긴다
문제 2. 파트 조합이 드러남
문제 3. 그냥 다양한 것 만으로는 감흥이 없다
파트를 나눌 수록 패턴의 반복이 쉽게 눈에 뜨인다
컨텐츠의 정합성이 깨짐
게임으로서의 재미를 창출하지 못했다
어떻게 그럴듯하게 보이게 할 것인가
재료를 적절히 정의 하고, 조합할 때 필요한 가이드 라인
파트 반복을 드러내지 않으려면
재료의 개수를 더 늘리면 되지
파트 재료가 8개니까 그렇지, 100개면 거의 안 겹치겠죠?
무식하지만 확실한 방법
반복을 느끼기 힘들도록 순서를 조작
Filtered Random을 사용합니다. 뒤에 설명
비쥬얼한 파트의 경우, 왕도가 있다
컬러 배리에이션, 크기 변경/회전, 데칼은 오프셋 변경…
전체 맥락을 해치지 않으면서 다르게 보이도록 함
순서를 조작하는 이유
정직하게 뽑으면 생각보다 반복이 많이 일어남
반복이 느껴지면 랜덤 체감률(?)이 떨어짐
인간은 동전을 20회 던졌을 때 14회 교대가 일어나는 것을
가장 무작위 하다고 느낀다
나왔었다는 것을 잊게 만든다
인지적으로 처리하는 기억 단위(Working Set)가 평균 7개 이므로,
이전 7번 이내에 출현했던 파트는 배제하는 것이 좋다
(물론 그러려면 재료 개수가 여덟 개 이상이어야 함)
Filtered Random
최근 7번 이내에 나왔던 파트를 또 뽑을 확률은 다음과 같다
재료 개수
20% 이하로 하려면 32개,
10% 이하는 70개의 재료가 필요 !
엄청 저효율 -_-
Filtered Random
최근 7번 이내에 나왔던 재료를 제거해서 재료가 반복될 확률을 떨어뜨린다
재료 개수
한 번 다시 뽑기만 해도 20개의 재료로
반복 확률을 10%까지 떨어뜨릴 수 있다
7번 이내에 나왔던 재료를 아예
배제하면 당연히 반복 확률은 0%
Not Filtered
Filtered (Working set = 4) Filtering이 체감 무작위성을 높이는 데는 절대적인 위력을 발휘한다
어색한 조합은 어떡할겨?
완결성이 있는 파트를 사용한다
미학적으로 문맥을 깨지 않는 선에서 파트를 나누는 것이 상책
예를 들어, 이름의 경우 성-이름까지만 나누는 것도 한 방법
조합 Rule을 만든다
a. 내재 파라메터를 이용해서 파트를 골라냄 -> 캐릭터 생성기
b. 각 파트를 결합하는 법칙을 적용 -> 퀘스트 생성기
기각 Rule을 만든다
이상한 넘을 골라내는 로직을 만드는건 상대적으로 쉽다능
Random Filter도 일종의 일반화된 기각 Rule
이게 가장 어려운 문제
지속적인 튜닝이 필요한 부분
조합할 파트 구분, 재료 작성
완결된 컨텐트의 프로토 작성
조합 Rule에 따라 컨텐트 생성
기각 ?
생성된 컨텐츠
TUNING
랜덤 생성기
제작 프로세스
YES
NO
랜덤 생성기 튜닝 가이드
기각 Rule을 찾아 본다
완성도가 낮은 결과물을 걸러낼 수 있는 방법이 있는가?
기각 Rule을 조합 Rule로 환원
기각할만한 결과를 사전에 배제할 수 있는 조합 방법이 있는가?
파트를 더 나누거나 합한다
결과물의 품질을 깨지 않으면서 더 잘게 나눌 수 있는 부분이 있는가?
반대로, 품질을 높이기 위해 배리에이션을 포기하고 파트를 합칠만한 부분이 있는가?
랜덤 생성 결과를 마음의 눈으로 바라 보며…
다양한 것 만으로는 부족하다
“대박” 이라는 느낌
특별한 능력치
더 예쁜 아이템 : 리블, 리화
희소성 있는 아이템
적당히 꽝을 넣어 둔다
게임으로서 성립하기 위해서는 랜덤에 가치를 부여해야 한다
랜덤 조합의 결과가 평등해서는 안된다
확률 테이블을 정의
랜덤 조합에 들어가는 모든 재료에 출현 확률을 지정한다
조합 결과에도 확률을 지정한다
ex) 특별한 조합을 부스트 하거나… 반대로, 일정 확률로 기각
Filtering에 따라 출현 확률이 영향을 받을 수 있으므로 주의
실제 생성기들을 살펴봅니다
이상의 과정에 따라 만들어진…
캐릭터 생성기 : 파트 정의
파트는 트리비얼하게 나눴습니다
컬러링 가능 파트 : 앞/뒤 머리카락, 얼굴형, 눈
컬러 고정 파트 : 눈썹, 입, 아이템 (복장), 이름
머리카락 파트 재료의 예
캐릭터 생성기 : 파트 파라메터
캐릭터를 정의하는
다섯개의 성격 축을 설정
기획 사양에 따라 정의
각 축은 직교성이 있어야 함
일관된 맥락을 가진 캐릭터를 만들어내고 싶다
캐릭터 생성기 : 파트 파라메터
파트마다 해당 파트가 어떤 성격의 캐릭터에 속할 수 있는지를 수치화
캐릭터 생성기 : 파트 조합
캐릭터의 성격을 입력으로 받아
입력된 성격에 해당되는 파트 Set을
Fuzzy 하게 추려내고, 해당 Set을 가지고 조합
INPUT
만들어진 캐릭터의 예
퀘스트 생성기 #1 : 착상
조합 Rule을 가지고 파트를 결합하는 예
일반적인 퀘스트의 구조는 단순
“XXX를 얻어와라”
“XXX를 얻으려면 YYY를 해야 한다” Cause / Effect
전제조건 – 행동 – 결과물 : 퀘스트 엔티티
전제조건을 결과물로 하는 다른 퀘스트를 연결!
Back-Tracking
이걸 조합 Rule로 하면 복수개의 퀘스트 엔티티를 조합할 수 있잖을까
퀘스트 생성기 #1 : 퀘스트 엔티티
전제조건 (Condition), 행동(Action), 결과 (Command)로 이루어짐
각각의 동작을 몇 가지 명령어(Own, Remove, FinishQuest…)로 기술
퀘스트 생성기 #1 : 동작 예
퀘스트 생성기 #1 : 문제점
단계가 멀어질 수록 인과관계가 옅어진다
퀘스트 생성기 #1 : 문제점
전체를 설명하는 텍스트,
맥락에 맞는 중간 텍스트 (대사)를 넣기 힘들다
파트를 너무 잘게 분해했음 orz
퀘스트 생성기 #2 : 착상
이벤트 삽입 방식
맥락이 있는 퀘스트 템플릿을 만들고
시작 조건, 종료 조건 및 주요 대사를 포함
이벤트가 들어갈 빈칸들을 배치해둔다
적절한 템플릿을 고르고 빈칸에 이벤트 생성
퀘스트 생성기 #2 : 구현
실용 수준의 퀘스트 구현이 가능했음
시작 조건, 종료 조건, 중간 정산 및 주요 대사를 포함
TODO : Nested 퀘스트
이벤트를 넣을 빈칸에 다시 퀘스트를 생성해 넣으면
좀 더 퀘스트 단계 수를 늘릴 수 있다
던전 생성기 #1 : 방 + 길
방을 랜덤하게 뿌려 놓고
방들의 출입구를 길로 잇는다
각 방에 프랍, 몬스터를 배치
Key – Lock 구조의 퍼즐
길 부분이 너무 명시적으로 드러남
가장 흔한 구조죠 네…
던전 생성기 #2 : 착상
타일을 배치할 GRID에 Main Path를 설정
Main Path 기준으로 관문을 설정
관문 사이에 Sub Path를 설정하고 타일링
퍼즐 및 이벤트 배치
모양을 좀 더 다양하게 해보고 싶어서 일반화된 타일을 사용
GRAPH 생성 타일 배치 Key-Lock 배치 이벤트 배치
던전 생성기 #2 : 생성 프로세스
GRAPH 생성 타일 배치 Key-Lock 배치 이벤트 배치
GRID 배열
타일 배치 Key-Lock 배치 이벤트 배치
Main Path 생성 (시작 / 끝)
난이도 조정 요소
Turning 횟수 : 4
전체 경로 : 16
GRAPH 생성
타일 배치 Key-Lock 배치 이벤트 배치
관문(Lock) 설정
GRAPH 생성
타일 배치 Key-Lock 배치 이벤트 배치
관문 사이 구간(Section) 을 확장
GRAPH 생성
타일 배치 Key-Lock 배치 이벤트 배치
관문 사이 구간(Section) 에 Sub-Path 생성
GRAPH 생성
GRAPH 생성 타일 배치 Key-Lock 배치 이벤트 배치
Tile 배치
GRAPH 생성 Key-Lock 배치 이벤트 배치
Tile 배치 – 연결 적합도 판단
타일 배치
GRAPH 생성 Key-Lock 배치 이벤트 배치
Tile 배치 – 최적 타일을 배치
타일 배치
GRAPH 생성 타일 배치 Key-Lock 배치 이벤트 배치
Lock 포인트에 대해
GRAPH 생성 타일 배치 이벤트 배치
Key를 배치할 수 있는 구간을 탐색
Key-Lock 배치
GRAPH 생성 타일 배치 이벤트 배치
Leaf 노드에 Key 배치
Key-Lock 배치
GRAPH 생성 타일 배치 Key-Lock 배치 이벤트 배치
타일의 각 Cell에 이벤트 배치
던전 생성기 #2 : 아쉬운 점
손으로 만든 것 만큼 예쁘게 나오지는 않음
타일을 여러 패턴 준비하기가 힘든 것도 난점 (102 패턴 사용)
파트를 너무 많이 쪼갰음
결국 나온 것은 맥락 없고 모양만 다양한 던전
길찾기 게임으로서는 의미가 있지만…
플레이어에게 스트레스를 주기 위한 맵이 되어선 곤란
던전 생성기 #3 Todo
중요한 것은 플레이어가 던전에서 어떤 다양한 경험을 하도록 하는가임
던전 템플릿을 만들고,
큰 단위의 Tile을 한 두 세트 준비
던전 Template에 이벤트를 랜덤하게 채워 넣음
랜드마크, 아이템 상자, 스폰되는 맵,
이쪽의 배리에이션을 정교하게 만드는 편이 만족도가 높을 것으로 생각됨
예) L4D의 AI 디렉터
결론
이상의 내용을 정리해 보겠습니다
지금까지 설명한 것
랜덤 생성에서의 일반적인 이슈와
해결에 필요한 접근 방법
구체적인 컨텐츠의 랜덤 생성 예
캐릭터 생성기, 퀘스트 생성기, 던전 생성기
교훈
1. 퀄리티는 핸드 크래프트한 컨텐츠가 최고 !
만들기도 훨씬 쉽고…
2. 하지만, 랜덤 생성도 쓸만 합니다
컨텐츠를 양적으로 부풀리는 데는 유효한 방법
R&D 코스트와 시행착오 과정을 감당할 수 있다면 시도해 보세요
3. 처음에 파트를 너무 분해하면 망
완성품에서부터 Divide & Conquer로 접근 하는 것이 안전
4. 랜덤함에 가치를 부여해야 한다
플레이어가 ‘대박이야’ 라고 느낄 수 있는 순간을 제공해라
Q & A

More Related Content

What's hot

윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현MinGeun Park
 
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리강 민우
 
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019devCAT Studio, NEXON
 
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부Eunseok Yi
 
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011devCAT Studio, NEXON
 
액션 게임 디자인
액션 게임 디자인액션 게임 디자인
액션 게임 디자인ByungChun2
 
정종필 팀장이됐어요(더저용량)
정종필 팀장이됐어요(더저용량)정종필 팀장이됐어요(더저용량)
정종필 팀장이됐어요(더저용량)JP Jung
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019devCAT Studio, NEXON
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기Yongha Kim
 
게임제작개론 : #8 게임 제작 프로세스
게임제작개론 : #8 게임 제작 프로세스게임제작개론 : #8 게임 제작 프로세스
게임제작개론 : #8 게임 제작 프로세스Seungmo Koo
 
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 1부
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 1부NDC 2010 이은석 - 마비노기 영웅전 포스트모템 1부
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 1부Eunseok Yi
 
AAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxAAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxTonyCms
 
기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까Han Je Sung
 
NDC 2014 이은석 - 온라인 게임의 창발적 플레이 디자인
NDC 2014 이은석 - 온라인 게임의 창발적 플레이 디자인NDC 2014 이은석 - 온라인 게임의 창발적 플레이 디자인
NDC 2014 이은석 - 온라인 게임의 창발적 플레이 디자인Eunseok Yi
 
게임회사 실무용어 완전정복! 쿡앱스 용어정리집
게임회사 실무용어 완전정복! 쿡앱스 용어정리집 게임회사 실무용어 완전정복! 쿡앱스 용어정리집
게임회사 실무용어 완전정복! 쿡앱스 용어정리집 CookApps
 
어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?Lee Sangkyoon (Kay)
 
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다Lee Dustin
 
NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준영준 박
 
[NDC_16] 캐릭터 한 달에 하나씩 업데이트 하기 : '최강의 군단' 스킬 개발 툴 포스트 모템과 차기작 '건파이트 맨션' 툴 프리뷰
[NDC_16] 캐릭터 한 달에 하나씩 업데이트 하기 : '최강의 군단' 스킬 개발 툴 포스트 모템과 차기작 '건파이트 맨션' 툴 프리뷰[NDC_16] 캐릭터 한 달에 하나씩 업데이트 하기 : '최강의 군단' 스킬 개발 툴 포스트 모템과 차기작 '건파이트 맨션' 툴 프리뷰
[NDC_16] 캐릭터 한 달에 하나씩 업데이트 하기 : '최강의 군단' 스킬 개발 툴 포스트 모템과 차기작 '건파이트 맨션' 툴 프리뷰승민 백
 

What's hot (20)

윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
 
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
[IGC 2017] 블루홀 최준혁 - '플레이어언노운스 배틀그라운드' DEV 스토리
 
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
 
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 2부
 
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
 
액션 게임 디자인
액션 게임 디자인액션 게임 디자인
액션 게임 디자인
 
정종필 팀장이됐어요(더저용량)
정종필 팀장이됐어요(더저용량)정종필 팀장이됐어요(더저용량)
정종필 팀장이됐어요(더저용량)
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기
 
게임제작개론 : #8 게임 제작 프로세스
게임제작개론 : #8 게임 제작 프로세스게임제작개론 : #8 게임 제작 프로세스
게임제작개론 : #8 게임 제작 프로세스
 
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 1부
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 1부NDC 2010 이은석 - 마비노기 영웅전 포스트모템 1부
NDC 2010 이은석 - 마비노기 영웅전 포스트모템 1부
 
AAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxAAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptx
 
기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까
 
NDC 2014 이은석 - 온라인 게임의 창발적 플레이 디자인
NDC 2014 이은석 - 온라인 게임의 창발적 플레이 디자인NDC 2014 이은석 - 온라인 게임의 창발적 플레이 디자인
NDC 2014 이은석 - 온라인 게임의 창발적 플레이 디자인
 
게임회사 실무용어 완전정복! 쿡앱스 용어정리집
게임회사 실무용어 완전정복! 쿡앱스 용어정리집 게임회사 실무용어 완전정복! 쿡앱스 용어정리집
게임회사 실무용어 완전정복! 쿡앱스 용어정리집
 
어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?
 
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
 
NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준
 
[NDC_16] 캐릭터 한 달에 하나씩 업데이트 하기 : '최강의 군단' 스킬 개발 툴 포스트 모템과 차기작 '건파이트 맨션' 툴 프리뷰
[NDC_16] 캐릭터 한 달에 하나씩 업데이트 하기 : '최강의 군단' 스킬 개발 툴 포스트 모템과 차기작 '건파이트 맨션' 툴 프리뷰[NDC_16] 캐릭터 한 달에 하나씩 업데이트 하기 : '최강의 군단' 스킬 개발 툴 포스트 모템과 차기작 '건파이트 맨션' 툴 프리뷰
[NDC_16] 캐릭터 한 달에 하나씩 업데이트 하기 : '최강의 군단' 스킬 개발 툴 포스트 모템과 차기작 '건파이트 맨션' 툴 프리뷰
 

Viewers also liked

[NDC 2014] 모에론
[NDC 2014] 모에론[NDC 2014] 모에론
[NDC 2014] 모에론Yongha Kim
 
[세미나] 특이점이 온다
[세미나] 특이점이 온다[세미나] 특이점이 온다
[세미나] 특이점이 온다Yongha Kim
 
기계학습 / 딥러닝이란 무엇인가
기계학습 / 딥러닝이란 무엇인가기계학습 / 딥러닝이란 무엇인가
기계학습 / 딥러닝이란 무엇인가Yongha Kim
 
[NDC 11] 게이머가 좋아하는 웹서비스 만들기
[NDC 11] 게이머가 좋아하는 웹서비스 만들기[NDC 11] 게이머가 좋아하는 웹서비스 만들기
[NDC 11] 게이머가 좋아하는 웹서비스 만들기Soojin Lim
 
[NDC 14] 게임 개발사에서 개발PM(팀장)의 역할과 책임-김영웅
[NDC 14] 게임 개발사에서 개발PM(팀장)의 역할과 책임-김영웅[NDC 14] 게임 개발사에서 개발PM(팀장)의 역할과 책임-김영웅
[NDC 14] 게임 개발사에서 개발PM(팀장)의 역할과 책임-김영웅Kloud Kim
 
Energy based models and boltzmann machines - v2.0
Energy based models and boltzmann machines - v2.0Energy based models and boltzmann machines - v2.0
Energy based models and boltzmann machines - v2.0Soowan Lee
 
Welcome to ruby!
Welcome to ruby!Welcome to ruby!
Welcome to ruby!성훈 김
 
[2C6]Everyplay_Big_Data
[2C6]Everyplay_Big_Data[2C6]Everyplay_Big_Data
[2C6]Everyplay_Big_DataNAVER D2
 
리듬게임 마지막 분석1
리듬게임 마지막 분석1리듬게임 마지막 분석1
리듬게임 마지막 분석1Lee Hansoo
 
캐주얼 게임 마케팅의 과거와 미래
캐주얼 게임 마케팅의 과거와 미래캐주얼 게임 마케팅의 과거와 미래
캐주얼 게임 마케팅의 과거와 미래Soon-Kwun Chung
 
[214]베이지안토픽모형 강병엽
[214]베이지안토픽모형 강병엽[214]베이지안토픽모형 강병엽
[214]베이지안토픽모형 강병엽NAVER D2
 
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가Hwanhee Kim
 
이원, 절차적 지형과 월드 머신, NDC2011
이원, 절차적 지형과 월드 머신, NDC2011이원, 절차적 지형과 월드 머신, NDC2011
이원, 절차적 지형과 월드 머신, NDC2011devCAT Studio, NEXON
 
카카오 플러스친구 (KAKAO AD PLATFORM)
카카오 플러스친구 (KAKAO AD PLATFORM)카카오 플러스친구 (KAKAO AD PLATFORM)
카카오 플러스친구 (KAKAO AD PLATFORM)Jaegook Lim
 
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들Jubok Kim
 
[D2대학생세미나]140분의 파이썬(실습)
[D2대학생세미나]140분의 파이썬(실습)[D2대학생세미나]140분의 파이썬(실습)
[D2대학생세미나]140분의 파이썬(실습)NAVER D2
 
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011devCAT Studio, NEXON
 

Viewers also liked (20)

[NDC 2014] 모에론
[NDC 2014] 모에론[NDC 2014] 모에론
[NDC 2014] 모에론
 
[세미나] 특이점이 온다
[세미나] 특이점이 온다[세미나] 특이점이 온다
[세미나] 특이점이 온다
 
기계학습 / 딥러닝이란 무엇인가
기계학습 / 딥러닝이란 무엇인가기계학습 / 딥러닝이란 무엇인가
기계학습 / 딥러닝이란 무엇인가
 
[NDC 11] 게이머가 좋아하는 웹서비스 만들기
[NDC 11] 게이머가 좋아하는 웹서비스 만들기[NDC 11] 게이머가 좋아하는 웹서비스 만들기
[NDC 11] 게이머가 좋아하는 웹서비스 만들기
 
[NDC 14] 게임 개발사에서 개발PM(팀장)의 역할과 책임-김영웅
[NDC 14] 게임 개발사에서 개발PM(팀장)의 역할과 책임-김영웅[NDC 14] 게임 개발사에서 개발PM(팀장)의 역할과 책임-김영웅
[NDC 14] 게임 개발사에서 개발PM(팀장)의 역할과 책임-김영웅
 
Energy based models and boltzmann machines - v2.0
Energy based models and boltzmann machines - v2.0Energy based models and boltzmann machines - v2.0
Energy based models and boltzmann machines - v2.0
 
Welcome to ruby!
Welcome to ruby!Welcome to ruby!
Welcome to ruby!
 
앱스토어 Overview
앱스토어 Overview앱스토어 Overview
앱스토어 Overview
 
[2C6]Everyplay_Big_Data
[2C6]Everyplay_Big_Data[2C6]Everyplay_Big_Data
[2C6]Everyplay_Big_Data
 
Haskell study 8
Haskell study 8Haskell study 8
Haskell study 8
 
리듬게임 마지막 분석1
리듬게임 마지막 분석1리듬게임 마지막 분석1
리듬게임 마지막 분석1
 
캐주얼 게임 마케팅의 과거와 미래
캐주얼 게임 마케팅의 과거와 미래캐주얼 게임 마케팅의 과거와 미래
캐주얼 게임 마케팅의 과거와 미래
 
[214]베이지안토픽모형 강병엽
[214]베이지안토픽모형 강병엽[214]베이지안토픽모형 강병엽
[214]베이지안토픽모형 강병엽
 
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가
 
이원, 절차적 지형과 월드 머신, NDC2011
이원, 절차적 지형과 월드 머신, NDC2011이원, 절차적 지형과 월드 머신, NDC2011
이원, 절차적 지형과 월드 머신, NDC2011
 
NDC 13 후기
NDC 13 후기NDC 13 후기
NDC 13 후기
 
카카오 플러스친구 (KAKAO AD PLATFORM)
카카오 플러스친구 (KAKAO AD PLATFORM)카카오 플러스친구 (KAKAO AD PLATFORM)
카카오 플러스친구 (KAKAO AD PLATFORM)
 
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들
 
[D2대학생세미나]140분의 파이썬(실습)
[D2대학생세미나]140분의 파이썬(실습)[D2대학생세미나]140분의 파이썬(실습)
[D2대학생세미나]140분의 파이썬(실습)
 
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
 

Similar to [NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기

그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기drandom
 
NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서
NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서
NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서영준 박
 
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?강 민우
 
[Dev rookie] 무엇을 하고 있습니까(13.05.11)
[Dev rookie] 무엇을 하고 있습니까(13.05.11)[Dev rookie] 무엇을 하고 있습니까(13.05.11)
[Dev rookie] 무엇을 하고 있습니까(13.05.11)해강
 
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들대원 김
 
[NDC2019] 전소현&장기은 - 시나리오 기획자는 대사만 잘쓰면 되는 거 아닌가요? ㅇㅅㅇ
[NDC2019] 전소현&장기은 - 시나리오 기획자는 대사만 잘쓰면 되는 거 아닌가요? ㅇㅅㅇ[NDC2019] 전소현&장기은 - 시나리오 기획자는 대사만 잘쓰면 되는 거 아닌가요? ㅇㅅㅇ
[NDC2019] 전소현&장기은 - 시나리오 기획자는 대사만 잘쓰면 되는 거 아닌가요? ㅇㅅㅇKieun Jang
 
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법ChangHyun Won
 
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011devCAT Studio, NEXON
 
인디게임 Busters - HIT postmortem
인디게임 Busters - HIT postmortem인디게임 Busters - HIT postmortem
인디게임 Busters - HIT postmortemChangHyun Won
 
두더지 정복자 포스트모템
두더지 정복자 포스트모템두더지 정복자 포스트모템
두더지 정복자 포스트모템snugdc
 
업적,칭호,타이틀 그게 뭐든간에...
업적,칭호,타이틀 그게 뭐든간에...업적,칭호,타이틀 그게 뭐든간에...
업적,칭호,타이틀 그게 뭐든간에...SeungYeon Jeong
 
명나리, 에버플래닛 만들던 이야기, 2013
명나리, 에버플래닛 만들던 이야기, 2013명나리, 에버플래닛 만들던 이야기, 2013
명나리, 에버플래닛 만들던 이야기, 2013나리 명
 
Unite2019 _ 학교에서 배우는 게임개발이란
Unite2019 _ 학교에서 배우는 게임개발이란Unite2019 _ 학교에서 배우는 게임개발이란
Unite2019 _ 학교에서 배우는 게임개발이란JP Jung
 
이희영, 온라인 게임에서 모바일 게임으로 이어지는 메타플레이 트렌드, NDC2017
이희영, 온라인 게임에서 모바일 게임으로 이어지는 메타플레이 트렌드, NDC2017이희영, 온라인 게임에서 모바일 게임으로 이어지는 메타플레이 트렌드, NDC2017
이희영, 온라인 게임에서 모바일 게임으로 이어지는 메타플레이 트렌드, NDC2017devCAT Studio, NEXON
 
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012devCAT Studio, NEXON
 
별의카비를통해본유저인터랙션의사례
별의카비를통해본유저인터랙션의사례별의카비를통해본유저인터랙션의사례
별의카비를통해본유저인터랙션의사례Ray Park
 
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)Kay Kim
 
인디게임 "The kitty story - 아기 고양이의 실종" 개발 포스트모템
인디게임 "The kitty story - 아기 고양이의 실종" 개발 포스트모템인디게임 "The kitty story - 아기 고양이의 실종" 개발 포스트모템
인디게임 "The kitty story - 아기 고양이의 실종" 개발 포스트모템ChangHyun Won
 
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회ChangHyun Won
 

Similar to [NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기 (20)

그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기
 
NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서
NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서
NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서
 
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
 
[Dev rookie] 무엇을 하고 있습니까(13.05.11)
[Dev rookie] 무엇을 하고 있습니까(13.05.11)[Dev rookie] 무엇을 하고 있습니까(13.05.11)
[Dev rookie] 무엇을 하고 있습니까(13.05.11)
 
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들
NDC17. "솔리테어: 덱다웃" 유니티 모바일 테스팅 기법들
 
[NDC2019] 전소현&장기은 - 시나리오 기획자는 대사만 잘쓰면 되는 거 아닌가요? ㅇㅅㅇ
[NDC2019] 전소현&장기은 - 시나리오 기획자는 대사만 잘쓰면 되는 거 아닌가요? ㅇㅅㅇ[NDC2019] 전소현&장기은 - 시나리오 기획자는 대사만 잘쓰면 되는 거 아닌가요? ㅇㅅㅇ
[NDC2019] 전소현&장기은 - 시나리오 기획자는 대사만 잘쓰면 되는 거 아닌가요? ㅇㅅㅇ
 
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
 
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
 
인디게임 Busters - HIT postmortem
인디게임 Busters - HIT postmortem인디게임 Busters - HIT postmortem
인디게임 Busters - HIT postmortem
 
두더지 정복자 포스트모템
두더지 정복자 포스트모템두더지 정복자 포스트모템
두더지 정복자 포스트모템
 
업적,칭호,타이틀 그게 뭐든간에...
업적,칭호,타이틀 그게 뭐든간에...업적,칭호,타이틀 그게 뭐든간에...
업적,칭호,타이틀 그게 뭐든간에...
 
명나리, 에버플래닛 만들던 이야기, 2013
명나리, 에버플래닛 만들던 이야기, 2013명나리, 에버플래닛 만들던 이야기, 2013
명나리, 에버플래닛 만들던 이야기, 2013
 
Unite2019 _ 학교에서 배우는 게임개발이란
Unite2019 _ 학교에서 배우는 게임개발이란Unite2019 _ 학교에서 배우는 게임개발이란
Unite2019 _ 학교에서 배우는 게임개발이란
 
이희영, 온라인 게임에서 모바일 게임으로 이어지는 메타플레이 트렌드, NDC2017
이희영, 온라인 게임에서 모바일 게임으로 이어지는 메타플레이 트렌드, NDC2017이희영, 온라인 게임에서 모바일 게임으로 이어지는 메타플레이 트렌드, NDC2017
이희영, 온라인 게임에서 모바일 게임으로 이어지는 메타플레이 트렌드, NDC2017
 
게임강연정리
게임강연정리게임강연정리
게임강연정리
 
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
최은영, 아티스트가 기획을 - 하이브리드의 길 Ver.1, NDC 2012
 
별의카비를통해본유저인터랙션의사례
별의카비를통해본유저인터랙션의사례별의카비를통해본유저인터랙션의사례
별의카비를통해본유저인터랙션의사례
 
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
 
인디게임 "The kitty story - 아기 고양이의 실종" 개발 포스트모템
인디게임 "The kitty story - 아기 고양이의 실종" 개발 포스트모템인디게임 "The kitty story - 아기 고양이의 실종" 개발 포스트모템
인디게임 "The kitty story - 아기 고양이의 실종" 개발 포스트모템
 
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
졸업작품을 앞둔 게임 기획/프로그래밍 전공 교류회
 

[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기

  • 2. 발표자 소개 프로그래머, 테크니컬 디렉터 KUF, 샤이닝로어 마비노기 마비노기 360 마비노기 영웅전 그 밖에 접힌 프로젝트 다수… orz 면접에서는 랜덤 문제를 반드시 출제하는 랜덤 애호가입니다
  • 3. 왜 랜덤 생성 컨텐츠가 필요한가 시작하기에 앞서…
  • 4. 컨텐츠 소모 속도가 너무 빠르다 한 탕 장사가 아님 | 플레이어님들은 자제하는 법이 없음 | 이 PT만 해도 10배속…
  • 5. 같은 컨텐츠를 반복 소모 같은 자극이 계속 반복되면 질린다 = 목표 상실 플레이어가 돌아오지 않는다 UU 감소
  • 6. AI가 출동하면 어떨까? AI가 컨텐츠를 만들어 준다면! | 아니, 제대로 된 AI가 있다면 그것만으로도 무한 컨텐츠…
  • 7. 하지만 현실적으로… 랜덤 던전 들어갈 때마다 던전 구조가 변경된다 랜덤 몹 몹 위치와 속성이 바뀜 랜덤 아이템 아이템 배리에이션이 무한 DIABLO 정도면 엄청 선방 | 컨텐츠 추가도 안하는데 5년간 10위권…
  • 8. 랜덤 생성 컨텐츠의 목표 기획자도 생각 못한 쌈박한 컨텐츠 만들기 - 10개 만들고 100개 처럼 보이도록 하기 - 새로운 자극이 계속 되는 것 같은 착각 할 수 없다는 것은 아니지만, 본 발표에서는 커버하지 않습니다 컨텐츠에 랜덤한 배리에이션을 주어 컨텐츠량의 수평적인 확장 Emerging이 아니라 Random !
  • 9. 본 PT에서 다루는 이슈 1. 재료를 어떻게 준비할 것인가 2. 그럴듯하게 보이기 위해 필요한 것 3. 케이스 스터디 캐릭터 생성기 | 퀘스트 생성기 | 던전 생성기
  • 10. 재료를 어떻게 준비할 것인가 랜덤 생성에 필요한 재료
  • 11. 이름 생성기를 만들어 봅시다 물론 이걸 랜덤 생성기라고 할 수는 없습니다 네. 그냥 미리 만들어둔 이름을 랜덤 출력 N = 8
  • 12. 파트를 나눕니다 컨텐츠의 수 = <PART1 COUNT> x <PART2 COUNT> x … N = 8x8 = 64 참 쉽죠 ! 먼저 단순히 성과 이름으로 나눠 봤습니다
  • 13. 랜덤 생성의 기본 배리에이션을 더 늘리고 싶다면 1. 각 파트 재료의 개수를 늘린다 2. 파트를 더 나눈다 Divide & Conquer로 접근한다 이 편이 결과물의 완성도 저하를 최소화 하면서 파트를 나눠갈 수 있음 처음부터 ㄱ +ㅏ+ ㅇ ㅂ+ㅐ+ㄱ ㅎ+ㅗ+□ 로 나누면 골룸 이 얘기는 뒤에도 계속 나와요.. Data-Driven 각 파트를 쉽게 추가/삭제/수정할 수 있도록 설계 SQLITE 쓰세염
  • 14. 그래서 파트를 더 나눠 봅시다 N = 8x8x8 = 512 ?! 어라라… 미묘해졌습니다?
  • 15. 문제 1. 어색한 조합이 생긴다 문제 2. 파트 조합이 드러남 문제 3. 그냥 다양한 것 만으로는 감흥이 없다 파트를 나눌 수록 패턴의 반복이 쉽게 눈에 뜨인다 컨텐츠의 정합성이 깨짐 게임으로서의 재미를 창출하지 못했다
  • 16. 어떻게 그럴듯하게 보이게 할 것인가 재료를 적절히 정의 하고, 조합할 때 필요한 가이드 라인
  • 17. 파트 반복을 드러내지 않으려면 재료의 개수를 더 늘리면 되지 파트 재료가 8개니까 그렇지, 100개면 거의 안 겹치겠죠? 무식하지만 확실한 방법 반복을 느끼기 힘들도록 순서를 조작 Filtered Random을 사용합니다. 뒤에 설명 비쥬얼한 파트의 경우, 왕도가 있다 컬러 배리에이션, 크기 변경/회전, 데칼은 오프셋 변경… 전체 맥락을 해치지 않으면서 다르게 보이도록 함
  • 18. 순서를 조작하는 이유 정직하게 뽑으면 생각보다 반복이 많이 일어남 반복이 느껴지면 랜덤 체감률(?)이 떨어짐 인간은 동전을 20회 던졌을 때 14회 교대가 일어나는 것을 가장 무작위 하다고 느낀다 나왔었다는 것을 잊게 만든다 인지적으로 처리하는 기억 단위(Working Set)가 평균 7개 이므로, 이전 7번 이내에 출현했던 파트는 배제하는 것이 좋다 (물론 그러려면 재료 개수가 여덟 개 이상이어야 함)
  • 19. Filtered Random 최근 7번 이내에 나왔던 파트를 또 뽑을 확률은 다음과 같다 재료 개수 20% 이하로 하려면 32개, 10% 이하는 70개의 재료가 필요 ! 엄청 저효율 -_-
  • 20. Filtered Random 최근 7번 이내에 나왔던 재료를 제거해서 재료가 반복될 확률을 떨어뜨린다 재료 개수 한 번 다시 뽑기만 해도 20개의 재료로 반복 확률을 10%까지 떨어뜨릴 수 있다 7번 이내에 나왔던 재료를 아예 배제하면 당연히 반복 확률은 0%
  • 21. Not Filtered Filtered (Working set = 4) Filtering이 체감 무작위성을 높이는 데는 절대적인 위력을 발휘한다
  • 22. 어색한 조합은 어떡할겨? 완결성이 있는 파트를 사용한다 미학적으로 문맥을 깨지 않는 선에서 파트를 나누는 것이 상책 예를 들어, 이름의 경우 성-이름까지만 나누는 것도 한 방법 조합 Rule을 만든다 a. 내재 파라메터를 이용해서 파트를 골라냄 -> 캐릭터 생성기 b. 각 파트를 결합하는 법칙을 적용 -> 퀘스트 생성기 기각 Rule을 만든다 이상한 넘을 골라내는 로직을 만드는건 상대적으로 쉽다능 Random Filter도 일종의 일반화된 기각 Rule 이게 가장 어려운 문제 지속적인 튜닝이 필요한 부분
  • 23. 조합할 파트 구분, 재료 작성 완결된 컨텐트의 프로토 작성 조합 Rule에 따라 컨텐트 생성 기각 ? 생성된 컨텐츠 TUNING 랜덤 생성기 제작 프로세스 YES NO
  • 24. 랜덤 생성기 튜닝 가이드 기각 Rule을 찾아 본다 완성도가 낮은 결과물을 걸러낼 수 있는 방법이 있는가? 기각 Rule을 조합 Rule로 환원 기각할만한 결과를 사전에 배제할 수 있는 조합 방법이 있는가? 파트를 더 나누거나 합한다 결과물의 품질을 깨지 않으면서 더 잘게 나눌 수 있는 부분이 있는가? 반대로, 품질을 높이기 위해 배리에이션을 포기하고 파트를 합칠만한 부분이 있는가? 랜덤 생성 결과를 마음의 눈으로 바라 보며…
  • 25. 다양한 것 만으로는 부족하다 “대박” 이라는 느낌 특별한 능력치 더 예쁜 아이템 : 리블, 리화 희소성 있는 아이템 적당히 꽝을 넣어 둔다 게임으로서 성립하기 위해서는 랜덤에 가치를 부여해야 한다 랜덤 조합의 결과가 평등해서는 안된다
  • 26. 확률 테이블을 정의 랜덤 조합에 들어가는 모든 재료에 출현 확률을 지정한다 조합 결과에도 확률을 지정한다 ex) 특별한 조합을 부스트 하거나… 반대로, 일정 확률로 기각 Filtering에 따라 출현 확률이 영향을 받을 수 있으므로 주의
  • 27. 실제 생성기들을 살펴봅니다 이상의 과정에 따라 만들어진…
  • 28. 캐릭터 생성기 : 파트 정의 파트는 트리비얼하게 나눴습니다 컬러링 가능 파트 : 앞/뒤 머리카락, 얼굴형, 눈 컬러 고정 파트 : 눈썹, 입, 아이템 (복장), 이름 머리카락 파트 재료의 예
  • 29. 캐릭터 생성기 : 파트 파라메터 캐릭터를 정의하는 다섯개의 성격 축을 설정 기획 사양에 따라 정의 각 축은 직교성이 있어야 함 일관된 맥락을 가진 캐릭터를 만들어내고 싶다
  • 30. 캐릭터 생성기 : 파트 파라메터 파트마다 해당 파트가 어떤 성격의 캐릭터에 속할 수 있는지를 수치화
  • 31. 캐릭터 생성기 : 파트 조합 캐릭터의 성격을 입력으로 받아 입력된 성격에 해당되는 파트 Set을 Fuzzy 하게 추려내고, 해당 Set을 가지고 조합 INPUT
  • 33. 퀘스트 생성기 #1 : 착상 조합 Rule을 가지고 파트를 결합하는 예 일반적인 퀘스트의 구조는 단순 “XXX를 얻어와라” “XXX를 얻으려면 YYY를 해야 한다” Cause / Effect 전제조건 – 행동 – 결과물 : 퀘스트 엔티티 전제조건을 결과물로 하는 다른 퀘스트를 연결! Back-Tracking 이걸 조합 Rule로 하면 복수개의 퀘스트 엔티티를 조합할 수 있잖을까
  • 34. 퀘스트 생성기 #1 : 퀘스트 엔티티 전제조건 (Condition), 행동(Action), 결과 (Command)로 이루어짐 각각의 동작을 몇 가지 명령어(Own, Remove, FinishQuest…)로 기술
  • 35. 퀘스트 생성기 #1 : 동작 예
  • 36.
  • 37.
  • 38. 퀘스트 생성기 #1 : 문제점 단계가 멀어질 수록 인과관계가 옅어진다
  • 39. 퀘스트 생성기 #1 : 문제점 전체를 설명하는 텍스트, 맥락에 맞는 중간 텍스트 (대사)를 넣기 힘들다 파트를 너무 잘게 분해했음 orz
  • 40. 퀘스트 생성기 #2 : 착상 이벤트 삽입 방식 맥락이 있는 퀘스트 템플릿을 만들고 시작 조건, 종료 조건 및 주요 대사를 포함 이벤트가 들어갈 빈칸들을 배치해둔다 적절한 템플릿을 고르고 빈칸에 이벤트 생성
  • 42.
  • 43. 실용 수준의 퀘스트 구현이 가능했음 시작 조건, 종료 조건, 중간 정산 및 주요 대사를 포함 TODO : Nested 퀘스트 이벤트를 넣을 빈칸에 다시 퀘스트를 생성해 넣으면 좀 더 퀘스트 단계 수를 늘릴 수 있다
  • 44. 던전 생성기 #1 : 방 + 길 방을 랜덤하게 뿌려 놓고 방들의 출입구를 길로 잇는다 각 방에 프랍, 몬스터를 배치 Key – Lock 구조의 퍼즐 길 부분이 너무 명시적으로 드러남 가장 흔한 구조죠 네…
  • 45. 던전 생성기 #2 : 착상 타일을 배치할 GRID에 Main Path를 설정 Main Path 기준으로 관문을 설정 관문 사이에 Sub Path를 설정하고 타일링 퍼즐 및 이벤트 배치 모양을 좀 더 다양하게 해보고 싶어서 일반화된 타일을 사용
  • 46. GRAPH 생성 타일 배치 Key-Lock 배치 이벤트 배치 던전 생성기 #2 : 생성 프로세스
  • 47. GRAPH 생성 타일 배치 Key-Lock 배치 이벤트 배치 GRID 배열
  • 48. 타일 배치 Key-Lock 배치 이벤트 배치 Main Path 생성 (시작 / 끝) 난이도 조정 요소 Turning 횟수 : 4 전체 경로 : 16 GRAPH 생성
  • 49. 타일 배치 Key-Lock 배치 이벤트 배치 관문(Lock) 설정 GRAPH 생성
  • 50. 타일 배치 Key-Lock 배치 이벤트 배치 관문 사이 구간(Section) 을 확장 GRAPH 생성
  • 51. 타일 배치 Key-Lock 배치 이벤트 배치 관문 사이 구간(Section) 에 Sub-Path 생성 GRAPH 생성
  • 52. GRAPH 생성 타일 배치 Key-Lock 배치 이벤트 배치 Tile 배치
  • 53. GRAPH 생성 Key-Lock 배치 이벤트 배치 Tile 배치 – 연결 적합도 판단 타일 배치
  • 54. GRAPH 생성 Key-Lock 배치 이벤트 배치 Tile 배치 – 최적 타일을 배치 타일 배치
  • 55. GRAPH 생성 타일 배치 Key-Lock 배치 이벤트 배치 Lock 포인트에 대해
  • 56. GRAPH 생성 타일 배치 이벤트 배치 Key를 배치할 수 있는 구간을 탐색 Key-Lock 배치
  • 57. GRAPH 생성 타일 배치 이벤트 배치 Leaf 노드에 Key 배치 Key-Lock 배치
  • 58. GRAPH 생성 타일 배치 Key-Lock 배치 이벤트 배치 타일의 각 Cell에 이벤트 배치
  • 59.
  • 60.
  • 61. 던전 생성기 #2 : 아쉬운 점 손으로 만든 것 만큼 예쁘게 나오지는 않음 타일을 여러 패턴 준비하기가 힘든 것도 난점 (102 패턴 사용) 파트를 너무 많이 쪼갰음 결국 나온 것은 맥락 없고 모양만 다양한 던전 길찾기 게임으로서는 의미가 있지만… 플레이어에게 스트레스를 주기 위한 맵이 되어선 곤란
  • 62. 던전 생성기 #3 Todo 중요한 것은 플레이어가 던전에서 어떤 다양한 경험을 하도록 하는가임 던전 템플릿을 만들고, 큰 단위의 Tile을 한 두 세트 준비 던전 Template에 이벤트를 랜덤하게 채워 넣음 랜드마크, 아이템 상자, 스폰되는 맵, 이쪽의 배리에이션을 정교하게 만드는 편이 만족도가 높을 것으로 생각됨 예) L4D의 AI 디렉터
  • 64. 지금까지 설명한 것 랜덤 생성에서의 일반적인 이슈와 해결에 필요한 접근 방법 구체적인 컨텐츠의 랜덤 생성 예 캐릭터 생성기, 퀘스트 생성기, 던전 생성기
  • 65. 교훈 1. 퀄리티는 핸드 크래프트한 컨텐츠가 최고 ! 만들기도 훨씬 쉽고… 2. 하지만, 랜덤 생성도 쓸만 합니다 컨텐츠를 양적으로 부풀리는 데는 유효한 방법 R&D 코스트와 시행착오 과정을 감당할 수 있다면 시도해 보세요 3. 처음에 파트를 너무 분해하면 망 완성품에서부터 Divide & Conquer로 접근 하는 것이 안전 4. 랜덤함에 가치를 부여해야 한다 플레이어가 ‘대박이야’ 라고 느낄 수 있는 순간을 제공해라
  • 66. Q & A