NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
1. 한 그루 한 그루 심지 않아도 돼요.
생태학에 기반한 <야생의 땅: 듀랑고>의 절차적 생성 생태계
넥슨 코리아 왓스튜디오
강 임 성
2. 저작물 인용
저작권법 제35조의 3 ‘공정이용' 조항에 따라 교육과 연구 목적으로 이용하고 있습니다.
혹시 문제가 있을 경우, imseongkang@nexon.co.kr 로 연락 주시면 적절한 조치를
취하겠습니다.
스크린샷 안내
발표에 쓰인 모든 게임 스크린샷 및 영상은 개발 중인 테스트 버전의 것으로서, 실제 출
시 버전과는 다를 수 있습니다.
3. 차례
4. 결론 및 요약
1. 발표자 소개 및 프로젝트 소개
2. 식생 시뮬레이터 개발 과정 돌아보기
3. 동물 무리에 대한 얘기들
18. 그래서 듀랑고 개발팀에선 절차적 생성에 많은 공을 들입니다.
위키피디아 Procedural generation 항목 중에서 발췌
컨텐츠를 수동으로 만드는 것이 아니라 알고리즘
으로 생성하는 것. 처음엔 그래픽 텍스처나 메쉬
등에 주로 쓰였으나, 이후 사운드, 음성 합성, 게임
월드/던전/레벨 생성 등으로 적용 분야가 넓어짐.
최근엔 영화의 군중 장면 CG 등에서도 쓰이는 중
19. 유저 수만큼 다양한 섬을 만들자!
<야생의 땅: 듀랑고>의 절차적인 섬 생성 기법
NDC 2014, 진선웅
25. Day 1 14:45-15:10 박주은 물리 기반 렌더링 지난 1년간의 경험
아티스트!? 프로그래머?? 동상이몽은 이제 그만
15:20-16:10 강임성 한 그루 한 그루 심지 않아도 돼요.
생태학에 기반한 <야생의 땅: 듀랑고>의 절차적 생성 생태계
17:40-18:30 변수민 <야생의 땅: 듀랑고>의 식물 생태계를 담당하는
21세기 정원사의 OpenCL 경험담
사람들을 만나보세요.
지금 여기 →
26. Day 2 09:50-10:40 이광영 모바일 게임에 밀도 높은 MMO 전투를 허하라
<야생의 땅: 듀랑고> 전투 시스템 개발 일지
13:00-13:50 이은석 Pay-to-Skip
게임 속 로봇 경제와 내몰리는 인간
14:10-15:00 양승명 <야생의 땅: 듀랑고>의 시뮬레이션 MMO 샌드박스
만들기
사람들을 만나보세요.
27. Day 3 11:00-11:25 김찬웅 그룹웨어에 새 에너지를
Chromium 엔진을 이용한 웹 기반 기술 도입기
11:35-12:00 안미루 개방과 소통으로 자유롭고 창의적인 조직 만들기
14:10-15:00 이정수 가죽이 서 말이라도 꿰어야 장화
<야생의 땅: 듀랑고>의 아이템과 제작 시스템 변천사
15:20-16:10 류지원 복잡계로서의 게임
<야생의 땅: 듀랑고> 속의 복잡계
사람들을 만나보세요.
34. 한대
온대
열대
벽지형
벽지형
1. World Gen
• 대륙/섬의 형태를 결정
• 강, 호수의 모양과 분포를 결정
• 벽지형의 모양과 분포를 결정
• 타일 별 군계, 고도, 습도 정보를 결정
2. 식생 시뮬레이터
• 월드젠에서 넘겨준 정보에 맞춰 나무와 암석을 심음
• 나무와 암석의 종류와 분포를 결정
• 특정 주기마다 나무와 암석을 추가로 심거나 제거
세계의 생성
35. 한대
온대
열대
벽지형
벽지형
1. World Gen
• 대륙/섬의 형태를 결정
• 강, 호수의 모양과 분포를 결정
• 벽지형의 모양과 분포를 결정
• 타일 별 군계, 고도, 습도 정보를 결정
2. 식생 시뮬레이터
• 월드젠에서 넘겨준 정보에 맞춰 나무와 암석을 심음
• 나무와 암석의 종류와 분포를 결정
• 특정 주기마다 나무와 암석을 추가로 심거나 제거
3. 동물 제어기
• 동물을 배치하고 행동 패턴을 결정
• 해당 타일의 식생 정보에 맞는 동물을 배치
세계의 생성
37. 기존 식생 시뮬레이터의 로직
1.특정 땅 타일의 군계 정보를 확인해서
강
온대림
타이가
초원
설원
38. 기존 식생 시뮬레이터의 로직
1.특정 땅 타일의 군계 정보를 확인해서
강
온대림
타이가
초원
설원
2. 해당 군계의 나무/관목/풀/돌 분포 확률과
39. 기존 식생 시뮬레이터의 로직
3. 각 식물의 출현 확률로 심을 대상을 선정
1.특정 땅 타일의 군계 정보를 확인해서
강
온대림
타이가
초원
설원
2. 해당 군계의 나무/관목/풀/돌 분포 확률과
40. 기존 식생 시뮬레이터의 로직
3. 각 식물의 출현 확률로 심을 대상을 선정
1.특정 땅 타일의 군계 정보를 확인해서
강
온대림
타이가
초원
설원
이름
전나무
id
엔티티id
밀집도
70
출현군계
타이가
출현확률
0.2
2. 해당 군계의 나무/관목/풀/돌 분포 확률과
53. 그동안 쌓인 요구조건들도 많습...
원하는 자연물을 쉽게
찾을 수 있어야 돼요!
진행에 필수적인 자원
은 곳곳에 있어야
하고요! 그리고...
54. 그동안 쌓인 요구조건들도 많습...
원하는 자연물을 쉽게
찾을 수 있어야 돼요!
진행에 필수적인 자원
은 곳곳에 있어야
하고요! 그리고...
속도도 개선해야 해요. 지금
너무 느려서 한 번 돌릴 때마다
아주 그냥 속이...
55. 그동안 쌓인 요구조건들도 많습...
원하는 자연물을 쉽게
찾을 수 있어야 돼요!
진행에 필수적인 자원
은 곳곳에 있어야
하고요! 그리고...
속도도 개선해야 해요. 지금
너무 느려서 한 번 돌릴 때마다
아주 그냥 속이...
군계 별로 애셋들 색조
모두 맞춰놨어요! 너무
휑하거나 너무 빽빽하지
않게 해주세요! 벽지형
도 이제 들어갈
건데..
56. 그동안 쌓인 요구조건들도 많습...
열심히 만들게요!
많이 고칠게요!!
원하는 자연물을 쉽게
찾을 수 있어야 돼요!
진행에 필수적인 자원
은 곳곳에 있어야
하고요! 그리고...
속도도 개선해야 해요. 지금
너무 느려서 한 번 돌릴 때마다
아주 그냥 속이...
군계 별로 애셋들 색조
모두 맞춰놨어요! 너무
휑하거나 너무 빽빽하지
않게 해주세요! 벽지형
도 이제 들어갈
건데..
90. from Schulze et al., 2002
1 작은 풀, 2 관목, 3 커다란 나무
그런 역동성을 개체 단위의 시뮬레이터에선 어떻게 구현할까?
91. from Schulze et al., 2002
1 작은 풀, 2 관목, 3 커다란 나무
그런 역동성을 개체 단위의 시뮬레이터에선 어떻게 구현할까?
92. from Schulze et al., 2002
1 작은 풀, 2 관목, 3 커다란 나무
그런 역동성을 개체 단위의 시뮬레이터에선 어떻게 구현할까?
A. 작은 풀부터 먼저 심고
B. 작은 풀 많아지면 관목을 심고
C. 관목 많아지면 커다란 나무를 심되
D. 나무 아래의 관목과 풀을 없애면?
93. from Schulze et al., 2002
1 작은 풀, 2 관목, 3 커다란 나무
그런 역동성을 개체 단위의 시뮬레이터에선 어떻게 구현할까?
A. 작은 풀부터 먼저 심고
B. 작은 풀 많아지면 관목을 심고
C. 관목 많아지면 커다란 나무를 심되
D. 나무 아래의 관목과 풀을 없애면?
이거 어떻게든 될 거 같기도???
98. 1. 플레이어의 위화감을 줄인다: 식생의 점이적 변화
2. 플레이어가 환경을 자연스럽게 받아들이게 만든다: 모자이크, 패치, 코리더 등의 형태
새로운 식생 시뮬레이터의 비전
99. 1. 플레이어의 위화감을 줄인다: 식생의 점이적 변화
2. 플레이어가 환경을 자연스럽게 받아들이게 만든다: 모자이크, 패치, 코리더 등의 형태
3. 플레이어가 필요한 자원의 위치를 직관적으로 찾을 수 있게 만든다: (예) 갈대는 물가에.
새로운 식생 시뮬레이터의 비전
100. 1. 플레이어의 위화감을 줄인다: 식생의 점이적 변화
2. 플레이어가 환경을 자연스럽게 받아들이게 만든다: 모자이크, 패치, 코리더 등의 형태
3. 플레이어가 필요한 자원의 위치를 직관적으로 찾을 수 있게 만든다: (예) 갈대는 물가에.
4. 플레이어의 행동에 따라 식생이 역동적으로 반응할 기반을 만든다.
새로운 식생 시뮬레이터의 비전
101. 1. 플레이어의 위화감을 줄인다: 식생의 점이적 변화
2. 플레이어가 환경을 자연스럽게 받아들이게 만든다: 모자이크, 패치, 코리더 등의 형태
3. 플레이어가 필요한 자원의 위치를 직관적으로 찾을 수 있게 만든다: (예) 갈대는 물가에.
4. 플레이어의 행동에 따라 식생이 역동적으로 반응할 기반을 만든다.
새로운 식생 시뮬레이터의 비전
102. 1. 플레이어의 위화감을 줄인다: 식생의 점이적 변화
2. 플레이어가 환경을 자연스럽게 받아들이게 만든다: 모자이크, 패치, 코리더 등의 형태
3. 플레이어가 필요한 자원의 위치를 직관적으로 찾을 수 있게 만든다: (예) 갈대는 물가에.
4. 플레이어의 행동에 따라 식생이 역동적으로 반응할 기반을 만든다.
새로운 식생 시뮬레이터의 비전
104. from Schulze et al., 2002
개별 식물 분포에 영향 주는
스트레스 요인
식생이 군계를 넘나들면서 점이적으로 변화하게 만들려면
105. from Schulze et al., 2002
개별 식물 분포에 영향 주는
스트레스 요인
생물적 요소
비생물적 요소
식생이 군계를 넘나들면서 점이적으로 변화하게 만들려면
106. from Schulze et al., 2002
개별 식물 분포에 영향 주는
스트레스 요인
생물적 요소
비생물적 요소
병충해
뜯어 먹힘
다른 식물과 경쟁
식생이 군계를 넘나들면서 점이적으로 변화하게 만들려면
107. from Schulze et al., 2002
개별 식물 분포에 영향 주는
스트레스 요인
생물적 요소
비생물적 요소
병충해
뜯어 먹힘
다른 식물과 경쟁
온도 더위
추위
식생이 군계를 넘나들면서 점이적으로 변화하게 만들려면
108. from Schulze et al., 2002
개별 식물 분포에 영향 주는
스트레스 요인
생물적 요소
비생물적 요소
병충해
뜯어 먹힘
다른 식물과 경쟁
물 가뭄
홍수
온도 더위
추위
식생이 군계를 넘나들면서 점이적으로 변화하게 만들려면
109. from Schulze et al., 2002
개별 식물 분포에 영향 주는
스트레스 요인
생물적 요소
비생물적 요소
병충해
뜯어 먹힘
다른 식물과 경쟁
빛 빛
물 가뭄
홍수
온도 더위
추위
식생이 군계를 넘나들면서 점이적으로 변화하게 만들려면
110. from Schulze et al., 2002
개별 식물 분포에 영향 주는
스트레스 요인
생물적 요소
비생물적 요소
병충해
뜯어 먹힘
다른 식물과 경쟁
빛 빛
화학적 미네랄 부족/과다
오염물질(중금속, 살충제)
물 가뭄
홍수
온도 더위
추위
식생이 군계를 넘나들면서 점이적으로 변화하게 만들려면
111. from Schulze et al., 2002
개별 식물 분포에 영향 주는
스트레스 요인
생물적 요소
비생물적 요소
병충해
뜯어 먹힘
다른 식물과 경쟁
빛 빛
화학적 미네랄 부족/과다
오염물질(중금속, 살충제)
기계적 바람
토양 이동
물에 잠김
물 가뭄
홍수
온도 더위
추위
식생이 군계를 넘나들면서 점이적으로 변화하게 만들려면
112. from Schulze et al., 2002
개별 식물 분포에 영향 주는
스트레스 요인
생물적 요소
비생물적 요소
병충해
뜯어 먹힘
다른 식물과 경쟁
온도
물
빛
화학적
기계적
더위
추위
가뭄
홍수
미네랄 부족/과다
오염물질(중금속, 살충제)
바람
토양 이동
물에 잠김
빛
식생이 군계를 넘나들면서 점이적으로 변화하게 만들려면
그중 플레이어가 게임 공간에서
인지가능한 것들
113. from Schulze et al., 2002
개별 식물 분포에 영향 주는
스트레스 요인
생물적 요소
비생물적 요소
병충해
뜯어 먹힘
다른 식물과 경쟁
온도
물
빛
화학적
기계적
더위
추위
가뭄
홍수
미네랄 부족/과다
오염물질(중금속, 살충제)
바람
토양 이동
물에 잠김
빛
식생이 군계를 넘나들면서 점이적으로 변화하게 만들려면
그중 플레이어가 게임 공간에서
인지가능한 것들
시뮬레이터에서는
이렇게 사용하기로...
뜯어 먹힘
덩치 크면 경쟁에서 이김
염도 높음/낮음
온도
물
덩치
114. 디자인한 로직을 한 장 요약하면
식생이 심겨져 있는 타일
생존 범위가 정해진 식물들
115. 디자인한 로직을 한 장 요약하면
타일의 환경 특성을 확인
1
식생이 심겨져 있는 타일
생존 범위가 정해진 식물들
116. 디자인한 로직을 한 장 요약하면
타일의 환경 특성을 확인
1
그 특성에 맞는 식물을
그 타일에 넣어보고2
식생이 심겨져 있는 타일
생존 범위가 정해진 식물들
117. 디자인한 로직을 한 장 요약하면
타일의 환경 특성을 확인
1
주변의 덩치 큰 식물들이
얼마나 있는지 계산(!)해서
출현/생존 조건에 맞나 판단.
3
그 특성에 맞는 식물을
그 타일에 넣어보고2
식생이 심겨져 있는 타일
생존 범위가 정해진 식물들
118. 디자인한 로직을 한 장 요약하면
타일의 환경 특성을 확인
1
주변의 덩치 큰 식물들이
얼마나 있는지 계산(!)해서
출현/생존 조건에 맞나 판단.
3
그 특성에 맞는 식물을
그 타일에 넣어보고2
(덩치 큰 식물로 단순화함)
4 조건에 맞는 식물이 여럿이면
경쟁에서 이긴 식물을 심음
식생이 심겨져 있는 타일
생존 범위가 정해진 식물들
119. 디자인한 로직을 한 장 요약하면
타일의 환경 특성을 확인
1
주변의 덩치 큰 식물들이
얼마나 있는지 계산(!)해서
출현/생존 조건에 맞나 판단.
3
그 특성에 맞는 식물을
그 타일에 넣어보고2
5 땅에 식물 심을 때마다
모든 타일에서 이를 반복
(덩치 큰 식물로 단순화함)
4 조건에 맞는 식물이 여럿이면
경쟁에서 이긴 식물을 심음
식생이 심겨져 있는 타일
생존 범위가 정해진 식물들
120. 문제: 다음 그림의 A, B, C처럼 임의의 타일에 대해, 반경 N타일 안의 숫자 총합을 구하는 방법은?
30 500
200 250 30 500
250 700
30 A?
700 850 50 250
500 B?
500 400
500 250
C? 700 500
50 30
연산량이 무지막지..
121. 문제: 다음 그림의 A, B, C처럼 임의의 타일에 대해, 반경 N타일 안의 숫자 총합을 구하는 방법은?
30 500
200 250 30 500
250 700
30 A?
700 850 50 250
500 B?
500 400
500 250
C? 700 500
50 30
(조건 1) N은 1, 3, 5, 7, ... 식물 종류마다 다름.
연산량이 무지막지..
122. 문제: 다음 그림의 A, B, C처럼 임의의 타일에 대해, 반경 N타일 안의 숫자 총합을 구하는 방법은?
30 500
200 250 30 500
250 700
30 A?
700 850 50 250
500 B?
500 400
500 250
C? 700 500
50 30
(조건 1) N은 1, 3, 5, 7, ... 식물 종류마다 다름.
(조건 2) 시뮬레이션 한 번 돌 때마다 재계산해야 함.
연산량이 무지막지..
123. 문제: 다음 그림의 A, B, C처럼 임의의 타일에 대해, 반경 N타일 안의 숫자 총합을 구하는 방법은?
30 500
200 250 30 500
250 700
30 A?
700 850 50 250
500 B?
500 400
500 250
C? 700 500
50 30
(조건 1) N은 1, 3, 5, 7, ... 식물 종류마다 다름.
(조건 2) 시뮬레이션 한 번 돌 때마다 재계산해야 함.
(조건 3) 빨라야 한다. 2048x2048 타일 기준으로 십수 초 쯤?
연산량이 무지막지..
124. 문제: 다음 그림의 A, B, C처럼 임의의 타일에 대해, 반경 N타일 안의 숫자 총합을 구하는 방법은?
30 500
200 250 30 500
250 700
30 A?
700 850 50 250
500 B?
500 400
500 250
C? 700 500
50 30
(조건 1) N은 1, 3, 5, 7, ... 식물 종류마다 다름.
(조건 2) 시뮬레이션 한 번 돌 때마다 재계산해야 함.
(조건 3) 빨라야 한다. 2048x2048 타일 기준으로 십수 초 쯤?
연산량이 무지막지..
133. 식물의 덩치(바이오매스)와 출현 조건과 소멸 조건을 정해주자.
1. 수십 종의 모든 식물을 크기 별로 줄 세우고
2. 풀, 나무 등에 따라 덩치 값을 정하고
134. 식물의 덩치(바이오매스)와 출현 조건과 소멸 조건을 정해주자.
70
150
1,200
180
350
600
1. 수십 종의 모든 식물을 크기 별로 줄 세우고
2. 풀, 나무 등에 따라 덩치 값을 정하고
135. 식물의 덩치(바이오매스)와 출현 조건과 소멸 조건을 정해주자.
70
150
1,200
180
350
600
1. 수십 종의 모든 식물을 크기 별로 줄 세우고
2. 풀, 나무 등에 따라 덩치 값을 정하고
3. 반경 몇 m만큼 다른 식물들 눈치(?)를 볼 것이며
136. 식물의 덩치(바이오매스)와 출현 조건과 소멸 조건을 정해주자.
70
150
1,200
180
350
600
1. 수십 종의 모든 식물을 크기 별로 줄 세우고
2. 풀, 나무 등에 따라 덩치 값을 정하고
3. 반경 몇 m만큼 다른 식물들 눈치(?)를 볼 것이며
4. 출현/소멸 조건은 어떻게 되는지 결정
137. 식물의 덩치(바이오매스)와 출현 조건과 소멸 조건을 정해주자.
말로는 간단한데 제대로 된 숫자 맞춰주기 위해서 굉장히 여러 번 손을 댔었네요.
70
150
1,200
180
350
600
1. 수십 종의 모든 식물을 크기 별로 줄 세우고
2. 풀, 나무 등에 따라 덩치 값을 정하고
3. 반경 몇 m만큼 다른 식물들 눈치(?)를 볼 것이며
4. 출현/소멸 조건은 어떻게 되는지 결정
164. 으으. 식물에서 군계 정보를 없앴
더니... 온도를 정확히 맞추면 될
수도 있어요.
이거 너무 이상하지 않아요?
165. 으으. 식물에서 군계 정보를 없앴
더니... 온도를 정확히 맞추면 될
수도 있어요.
이거 너무 이상하지 않아요?
음.. 그걸로는 완벽하게 제어하
지 못할 것 같은데.. 식생 점이
적으로 만들면서도 스프라이트
맞출 수 있지 않을까요?
166. 으으. 식물에서 군계 정보를 없앴
더니... 온도를 정확히 맞추면 될
수도 있어요.
이거 너무 이상하지 않아요?
음.. 그걸로는 완벽하게 제어하
지 못할 것 같은데.. 식생 점이
적으로 만들면서도 스프라이트
맞출 수 있지 않을까요?
음~ 그럼 식물 별로 군계를 화이
트리스트/블랙리스트 형태로 관
리해볼게요.
167. 으으. 식물에서 군계 정보를 없앴
더니... 온도를 정확히 맞추면 될
수도 있어요.
이거 너무 이상하지 않아요?
음.. 그걸로는 완벽하게 제어하
지 못할 것 같은데.. 식생 점이
적으로 만들면서도 스프라이트
맞출 수 있지 않을까요?
음~ 그럼 식물 별로 군계를 화이
트리스트/블랙리스트 형태로 관
리해볼게요.
177. 갈대가 해변에 자라면 안 될 것 같아요.
이렇게 해안선 기준으로 거리를 측정해
서 ‘염도’ 속성을 넣어주세요. 갈대는 염
도가 0, 1인 곳엔 못 나오는 거죠.
178. 갈대가 해변에 자라면 안 될 것 같아요.
이렇게 해안선 기준으로 거리를 측정해
서 ‘염도’ 속성을 넣어주세요. 갈대는 염
도가 0, 1인 곳엔 못 나오는 거죠.
염도 높음
179. 갈대가 해변에 자라면 안 될 것 같아요.
이렇게 해안선 기준으로 거리를 측정해
서 ‘염도’ 속성을 넣어주세요. 갈대는 염
도가 0, 1인 곳엔 못 나오는 거죠.
염도 높음
염도 낮음
180. 갈대가 해변에 자라면 안 될 것 같아요.
이렇게 해안선 기준으로 거리를 측정해
서 ‘염도’ 속성을 넣어주세요. 갈대는 염
도가 0, 1인 곳엔 못 나오는 거죠.
염도 높음
염도 낮음
음~ 해변에서의 거리를 새로 측
정하기보단.. 우리 물 처리하는
것에 디스턴스 필드라는 걸 쓰는
데 그걸 활용하면 어떨까요?
181. 갈대가 해변에 자라면 안 될 것 같아요.
이렇게 해안선 기준으로 거리를 측정해
서 ‘염도’ 속성을 넣어주세요. 갈대는 염
도가 0, 1인 곳엔 못 나오는 거죠.
염도 높음
염도 낮음
음~ 해변에서의 거리를 새로 측
정하기보단.. 우리 물 처리하는
것에 디스턴스 필드라는 걸 쓰는
데 그걸 활용하면 어떨까요?
디스턴스 필드? 그게 뭐죠?
200. 으아, 그랬더니 소철류도
너무 빽빽하게 생기네요.
얘넨 이러면 안 되는데..
음, 생기는 위치는 지금처럼 자연스럽
되, 어떤 건 좀 더 많이 생기고, 어떤
건 좀 덜 생겨야 하는군요... 잠시만요.
201. 멀티 스테이지를 도입하자.
스테이지에 속한 애들끼리만 서로 경쟁
해요. 1스테이지에 식물이 10종이고, 2
스테이지에 식물이 20종이면, 1스테이
지 식물 각각은 2스테이지 식물들보다
대충 2배 더 많이 생길 수 있겠네요!
202. 멀티 스테이지를 도입하자.
스테이지에 속한 애들끼리만 서로 경쟁
해요. 1스테이지에 식물이 10종이고, 2
스테이지에 식물이 20종이면, 1스테이
지 식물 각각은 2스테이지 식물들보다
대충 2배 더 많이 생길 수 있겠네요!
오, 일단 한 번 볼게요!
203. 스테이지
2
덩치
850
온도
-40~-11
습도
5~70 바다 df
0~100
호수 df
0~255
강 df
0~100
벽지형 df
0~90
반경
3타일
생성/소멸
300~9000
출현 군계
온대림
툰드라
이름
전나무
id
엔티티id
스테이지 1엔 갈대나 돌처럼 많이 심겨야 하는 것들만 있어.
넌 스테이지 2에서 다른 식물들과 섞여서 심기도록 해.
206. 1. 플레이어의 위화감을 줄인다: 식생의 점이적 변화
2. 플레이어가 환경을 자연스럽게 받아들이게 만든다: 모자이크, 패치, 코리더 등의 형태
3. 플레이어가 필요한 자원의 위치를 직관적으로 찾을 수 있게 만든다: (예) 갈대는 물가에.
4. 플레이어의 행동에 따라 식생이 역동적으로 반응할 기반을 만든다.
새로운 식생 시뮬레이터의 비전
253. 무리를 구성하는 건 상대적으로 쉽습니다.
http://upload.wikimedia.org/wikipedia/commons/
9/93/Herd_of_Elephants.jpg
https://www.flickr.com/photos/ekilby/
12033414114/
http://upload.wikimedia.org/wikipedia/commons/
e/eb/Mother_and_Baby_Ducks_(5828496140).jpg
http://upload.wikimedia.org/wikipedia/commons/
0/06/Falkland_Islands_Penguins_41.jpg
254. 무리를 구성하는 건 상대적으로 쉽습니다.
http://upload.wikimedia.org/wikipedia/commons/
9/93/Herd_of_Elephants.jpg
https://www.flickr.com/photos/ekilby/
12033414114/
http://upload.wikimedia.org/wikipedia/commons/
e/eb/Mother_and_Baby_Ducks_(5828496140).jpg
http://upload.wikimedia.org/wikipedia/commons/
0/06/Falkland_Islands_Penguins_41.jpg
펭귄 x 10
255. 무리를 구성하는 건 상대적으로 쉽습니다.
http://upload.wikimedia.org/wikipedia/commons/
9/93/Herd_of_Elephants.jpg
https://www.flickr.com/photos/ekilby/
12033414114/
http://upload.wikimedia.org/wikipedia/commons/
e/eb/Mother_and_Baby_Ducks_(5828496140).jpg
http://upload.wikimedia.org/wikipedia/commons/
0/06/Falkland_Islands_Penguins_41.jpg
펭귄 x 10
어미오리 x 1
새끼오리 x 6
256. 무리를 구성하는 건 상대적으로 쉽습니다.
http://upload.wikimedia.org/wikipedia/commons/
9/93/Herd_of_Elephants.jpg
https://www.flickr.com/photos/ekilby/
12033414114/
http://upload.wikimedia.org/wikipedia/commons/
e/eb/Mother_and_Baby_Ducks_(5828496140).jpg
http://upload.wikimedia.org/wikipedia/commons/
0/06/Falkland_Islands_Penguins_41.jpg
펭귄 x 10
어미오리 x 1
새끼오리 x 6
우두머리 늑대 x 1
추종자 늑대 x 4
257. 무리를 구성하는 건 상대적으로 쉽습니다.
http://upload.wikimedia.org/wikipedia/commons/
9/93/Herd_of_Elephants.jpg
https://www.flickr.com/photos/ekilby/
12033414114/
http://upload.wikimedia.org/wikipedia/commons/
e/eb/Mother_and_Baby_Ducks_(5828496140).jpg
http://upload.wikimedia.org/wikipedia/commons/
0/06/Falkland_Islands_Penguins_41.jpg
펭귄 x 10
어미오리 x 1
새끼오리 x 6
우두머리 늑대 x 1
추종자 늑대 x 4
수컷 코끼리 x 1
암컷 코끼리 x 3
새끼 코끼리 x 1
258. 짜잔, 나와랏, 무리 id “#&*&(%”
화면 안에 보이는 건 다섯 마리 뿐이지만,
어미 트리케라톱스 x 14
새끼 트리케라톱스 x 6
277. 무리 전체의 욕구는 무리 AI가 정해서 알려준다.
무리 AI
하나의 동물 무리
남서쪽 방향 10m인 곳에 가서
5분 동안 물을 마시도록 해라.
278. 무리 전체의 욕구는 무리 AI가 정해서 알려준다.
무리 AI
하나의 동물 무리
남서쪽 방향 10m인 곳에 가서
5분 동안 물을 마시도록 해라.
욕구를 정하고 해당 행동 지시
279. 무리 전체의 욕구는 무리 AI가 정해서 알려준다.
무리 AI
하나의 동물 무리
남서쪽 방향 10m인 곳에 가서
5분 동안 물을 마시도록 해라.네, 그러겠습니다!
욕구를 정하고 해당 행동 지시
280. 무리 전체의 욕구는 무리 AI가 정해서 알려준다.
무리 AI
하나의 동물 무리
남서쪽 방향 10m인 곳에 가서
5분 동안 물을 마시도록 해라.네, 그러겠습니다!
욕구를 정하고 해당 행동 지시
281. 무리 전체의 욕구는 무리 AI가 정해서 알려준다.
무리 AI
하나의 동물 무리
남서쪽 방향 10m인 곳에 가서
5분 동안 물을 마시도록 해라.네, 그러겠습니다!
우린 아무 생각이 없다.
욕구를 정하고 해당 행동 지시
282. 개체는 주변 인식과 행동만. 판단은 무리 AI가 하고 개체는 그 명령을 따른다.
무리 AI
하나의 동물 무리
283. 개체는 주변 인식과 행동만. 판단은 무리 AI가 하고 개체는 그 명령을 따른다.
무리 AI
하나의 동물 무리
284. 개체는 주변 인식과 행동만. 판단은 무리 AI가 하고 개체는 그 명령을 따른다.
무리 AI
하나의 동물 무리
전방에 플레이어가
나타났지 말입니다.
285. 개체는 주변 인식과 행동만. 판단은 무리 AI가 하고 개체는 그 명령을 따른다.
무리 AI
하나의 동물 무리
전방에 플레이어가
나타났지 말입니다.
상황 보고
286. 개체는 주변 인식과 행동만. 판단은 무리 AI가 하고 개체는 그 명령을 따른다.
무리 AI
하나의 동물 무리
위험하지 않다.
일단 계속 물 마시러 가라.
전방에 플레이어가
나타났지 말입니다.
상황 보고
287. 개체는 주변 인식과 행동만. 판단은 무리 AI가 하고 개체는 그 명령을 따른다.
무리 AI
하나의 동물 무리
위험하지 않다.
일단 계속 물 마시러 가라.
전방에 플레이어가
나타났지 말입니다.
상황 보고
판단 & 행동 지시
288. 개체는 주변 인식과 행동만. 판단은 무리 AI가 하고 개체는 그 명령을 따른다.
무리 AI
하나의 동물 무리
위험하지 않다.
일단 계속 물 마시러 가라.
전방에 플레이어가
나타났지 말입니다.
우린 뇌가 없지. 으허허 아하하
상황 보고
판단 & 행동 지시
289. 개체는 주변 인식과 행동만. 판단은 무리 AI가 하고 개체는 그 명령을 따른다.
무리 AI
하나의 동물 무리
위험하지 않다.
일단 계속 물 마시러 가라.
전방에 플레이어가
나타났지 말입니다.
우린 뇌가 없지. 으허허 아하하
상황 보고
판단 & 행동 지시
위험한 정도는 어떻게 판단을??
290. 1972년 Krukk이 조사한 바에 따르면,
하이에나는 사냥감에 따라 무리 숫자를 맞춰 나간다고... Manning and Dawkins, 2012
291. 1972년 Krukk이 조사한 바에 따르면,
하이에나는 사냥감에 따라 무리 숫자를 맞춰 나간다고... Manning and Dawkins, 2012
http://upload.wikimedia.org/wikipedia/commons/
8/8e/Hyenas_at_stolen_impala_kill.jpg
평균 1.2마리 vs 어린 가젤
292. 1972년 Krukk이 조사한 바에 따르면,
하이에나는 사냥감에 따라 무리 숫자를 맞춰 나간다고... Manning and Dawkins, 2012
http://upload.wikimedia.org/wikipedia/commons/
8/8e/Hyenas_at_stolen_impala_kill.jpg
평균 1.2마리 vs 어린 가젤
https://www.flickr.com/photos/arnolouise/
449171240/
평균 2.5마리 vs 큰 영양
293. 1972년 Krukk이 조사한 바에 따르면,
하이에나는 사냥감에 따라 무리 숫자를 맞춰 나간다고... Manning and Dawkins, 2012
http://upload.wikimedia.org/wikipedia/commons/
8/8e/Hyenas_at_stolen_impala_kill.jpg
평균 1.2마리 vs 어린 가젤
https://www.flickr.com/photos/arnolouise/
449171240/
평균 2.5마리 vs 큰 영양
http://www.hyaenidae.org/uploads/images/hyenas/
spotted_groupinwater.jpg
평균 10.8마리 vs 얼룩말
294. 먹잇감인 얼룩말들도 그 사실을 알고 있다.
http://upload.wikimedia.org/wikipedia/
commons/8/83/Zebra_Botswana_edit02.jpg
https://www.flickr.com/photos/vidyo/9819211574/
http://pt.wikipedia.org/wiki/Zebra
295. 먹잇감인 얼룩말들도 그 사실을 알고 있다.
http://upload.wikimedia.org/wikipedia/
commons/8/83/Zebra_Botswana_edit02.jpg
https://www.flickr.com/photos/vidyo/9819211574/
http://pt.wikipedia.org/wiki/Zebra
296. 먹잇감인 얼룩말들도 그 사실을 알고 있다.
http://upload.wikimedia.org/wikipedia/
commons/8/83/Zebra_Botswana_edit02.jpg
https://www.flickr.com/photos/vidyo/9819211574/
http://pt.wikipedia.org/wiki/Zebra
336. 어떤 환경을 놀이터 삼아
다른 사람들과 그곳에서만 할 수 있는
특별한 뭔가를 하는 재미도 있지 않을까요?
http://upload.wikimedia.org/wikipedia/commons/1/16/
Gold_Coast_summer,_Burleigh_Heads_Beach.jpg
341. * 시뮬레이션이 ‘즐거운 놀이터’가 되려면 플레이어의 멘탈 모델을 만족해야 합니다.
* 듀랑고는 높은 표현 수준에 맞춰 생태계 시뮬레이션을 풍성/정교하게 만들고 있습니다.
요약
342. * 시뮬레이션이 ‘즐거운 놀이터’가 되려면 플레이어의 멘탈 모델을 만족해야 합니다.
* 듀랑고는 높은 표현 수준에 맞춰 생태계 시뮬레이션을 풍성/정교하게 만들고 있습니다.
* 모사하려는 현실의 구성 원리를 이해하면, 시뮬레이션을 만드는 데에 큰 도움이 됩니다.
요약
343. * 시뮬레이션이 ‘즐거운 놀이터’가 되려면 플레이어의 멘탈 모델을 만족해야 합니다.
* 듀랑고는 높은 표현 수준에 맞춰 생태계 시뮬레이션을 풍성/정교하게 만들고 있습니다.
* 모사하려는 현실의 구성 원리를 이해하면, 시뮬레이션을 만드는 데에 큰 도움이 됩니다.
* 기능을 구현할 때에는 ‘비전 공유-빠른 프로토타이핑-반복 개선’이 가장 중요합니다.
요약
344. * 시뮬레이션이 ‘즐거운 놀이터’가 되려면 플레이어의 멘탈 모델을 만족해야 합니다.
* 듀랑고는 높은 표현 수준에 맞춰 생태계 시뮬레이션을 풍성/정교하게 만들고 있습니다.
* 모사하려는 현실의 구성 원리를 이해하면, 시뮬레이션을 만드는 데에 큰 도움이 됩니다.
* 기능을 구현할 때에는 ‘비전 공유-빠른 프로토타이핑-반복 개선’이 가장 중요합니다.
* 가장 좋은 해법은 동료들에게서 나옵니다. 그러니 상황을 항상 공유하세요.
요약
345. 참고문헌
Hugh Dingle, 2014
Migration: the biology of life on the move
Aubrey Manning and Stamp Dawkins, 2012
An introduction to animal behaviour
Franco Pedrotti, 2013
Plant and vegetation mapping
David A. Perry, Ram Oren, and Stephen C. Hart, 2008
Forest ecosystems
Ernst-Detlef Schulze, Erwin Beck, and Klaus Muller-Hohenstein, 2005
Plant ecology