[NDC2015] '손바닥 화면에 구현한 자연 시뮬레이터', 듀랑고의 생태계 개발기

게임뉴스 | 강승진 기자 | 댓글: 36개 |



생존과 투쟁, 그리고 개척이라는 뚜렷한 목적은 있다. 하지만 목적 달성을 위한 과정에 정답은 없다. 단지 홀로 척박한 자연환경 속에서 어떻게 적응하고 반응하느냐에 따라 달라질 뿐이다.

이은석 디렉터의 신작 '야생의 땅: 듀랑고(이하 듀랑고)'는 그런 게임이다. 플레이어에 따라 자연이라는 정해지지 않은 요소를 가지고 전혀 다르게 즐길 수 있는 게임. 단지 정해진 규칙에 따라 랜덤하게 만들어지는 절차적 생성에 따라 이루어질 뿐이다.

기존 모바일 게임과는 전혀 다른 자유도를 앞세운 듀랑고가 공개된 지 1년이 지났다. 그동안 절차적 생성은 진화를 거듭했다. 지난해 장화까지 끓여 먹는 자유도를 앞세웠다면, 올해는 지형과 상황에 따라 모든 동식물의 분포 및 움직임을 아우르는 하나의 생태계 시뮬레이터로 성장했다.

지질학과 고생물학 전공이라는 조금은 독특한 이력을 가지고 강단에 오른 강임성 개발자. 그는 '생태학에 기반한 듀랑고의 절차적 생성 생태계'를 주제로 듀랑고의 살아 숨 쉬는 생태 시뮬레이션을 설명했다.





▲ '생태학에 기반한 듀랑고의 절차적 생성 생태계'를 주제로 강단에 오른 강임성 개발자

듀랑고 개발 중간에 투입된 만큼 강임성 개발자는 우선 프로젝트의 진행상황 파악에 나섰다.

듀랑고의 세계는 총 3단계로 만들어진다. 우선 정해진 규칙에 따라 대륙과 섬의 형태가 설정되고, 강, 호수의 모양과 분포 등 대략적인 지형이 생성된다. 그렇게 만들어진 지형 위에 나무와 암석을 종류별로 배열한다. 그 이후 동물들의 행동 패턴을 분석, 배치되는 동물 제어기 과정을 거친다.

강임성 개발자가 먼저 개발에 참여한 파트는 군계(생물 생태학에서, 같은 자연환경 밑에 있는 지역의 생물군을 이르는 말, 예를 들어 툰드라나 아열대 우림 지역 따위)별로 나누어진 지형 위에 적절한 식물을 배치하는 식생 시뮬레이터였다.




식생 시뮬레이터의 기본 로직은 특정 타일의 군계 정보를 분석, 그에 맞는 나무, 관목, 풀, 돌 등의 분포 확률을 설정하고 각 식물의 출현 확률을 설정하는 것이다. 이를 위해 각 식물에 이름, 고유 ID, 출현하는 군계, 출현 확률, 밀집도 등 다섯 가지의 요소를 부여했다.

이렇게 만들어진 식물 생성의 프로토타입을 도트 버전으로 발 빠르게 개발했다. 이후에는 도트 버전에서 테스트한 내용을 기반으로 실사에 가까운, 최근 공개된 그래픽 수준으로 테스트 빌드를 개발하고 피드백을 살폈다.

하지만 이 과정에서 문제가 생겼다. 강가에 없는 갈대숲이 평지에 존재하거나, 숲 속에 뿌리내린 야자수 등 비현실적인 요소가 많이 발생했다. 다섯 가지 요소로 만들어진 식생 시스템 자체는 변하지 않았지만, 표현의 사실성과 함께 개연성을 원하는 요구도 비례했다. 기존에 귀엽다고 넘어갈 수 있는 부분들도 비현실적으로 여겨져 게임의 몰입감을 떨어뜨린 것이다.





"완벽한 그림을 그리기 위해 화가들은 해부도를 보고 공부합니다. 인체의 원리를 깨닫는 과정이죠. 원리를 알아야 그림도 정확하게 그릴 수 있고, 피카소처럼 자신의 의도에 맞춰 새롭게 모델링 할 수도 있습니다."

그는 화가들이 그랬던 것처럼 듀랑고 속 식물 분포의 현실성을 더하기 위해 생태학의 기본 원리를 공부했다. 그리고 기존 식생 시뮬레이터의 개선에 필요한 요소도 하나하나 잡아냈다.




우선 기존 식생 군계가 게임에 적용하기에는 너무 거대한 단위였다. 군계는 식생 단위 중 가장 큰 규모지만, 실제 유저들이 게임에서 보는 단위는 가장 소규모인 개체, 군집, 분층 군락이다. 그렇기에 식생 시뮬레이터의 단위를 이에 맞게 변경하는 과정이 필요했다.

두 번째는 식생대의 자연스러운 분포다. 강임성 개발자는 원리 공부를 통해 실제 자연에는 식물들이 없는 매트릭스 지역, 크고작은 식물 그룹인 패치, 패치의 모임인 모자이크, 강가를 따라 길게 뻗어난 식생 구역인 코리더 등이 자유롭게 분포되어 있음을 발견했다. 그리고 이를 게임에 적용하는 과정도 풀어내야 했다.

세 번째는 사람에 반응하는 역동성이다. 플레이어들이 숲을 베어내면 평형을 유지하던 식생대가 파괴된다. 하지만 그 중 일부는 다시 자라나고 숲은 새로운 형태로 울창해진다. 이러한 역동성을 구현하기 위해 작은 풀과 관목, 커다란 나무를 심고 없애는 과정을 구상했다.










이렇게 모인 결과를 개발팀과의 의견을 교환했고, 위화감 없고 자연스러운 형태 구현이라는 '식생 시뮬레이터 비전'을 도출했다. 그리고 식생 시뮬레이터 비전을 통해 개별 식물 분포에 영향을 주는 생물적 요소와 비생물적 요소를 가려냈다. 그중 플레이어가 게임 내에서 인지할 수 있는 내용들을 선별, 이름과 고유 ID를 제외한 식물의 속성으로 새롭게 구성했다.




1. 식물의 덩치와 출현 조건, 소멸 조건

- 크기가 다른 식물 수십 종의 덩치(*바이오매스)에 따라 출현 조건, 소멸 조건을 설정.
- 식물의 덩치를 수치로 설정.
- 일정 반경 내의 생성 수치를 설정.
- 생성 수치와 소멸 수치로 식물 분포의 최대 한계치 설정.

* '바이오매스'란? : 공간 내에 존재하는 특정 생물체의 양을 중량 또는 에너지양으로 나타낸 것.





2. 온도와 습도

- 식물의 형태와 종류에 따라 분포 가능한 상대적 온도와 습도를 정하는 과정.
- 설원 지역이나 툰드라, 온대림, 열대림 등으로 나누고, 지역별로 습도 설정.
- 가로, 세로로 넓게 펼쳐진 식물군에 온도와 습도에 따라 서식 가능한 수치를 적용.








시뮬레이션을 바탕으로 문제점 제거

Q. 군계간의 이동 경계분면은 온도 변화가 심해, 한 화면 안에 전혀 다른 생태군의 식물이 분포함.

식물의 식생 온도를 단일 수치에서 범위로 변경, 경계 분면을 모호하게 만들어 자연스러운 식물 분포를 만듦.

Q. 눈이 덮이지 않은 나무가 눈 위에 있고 흙 위에 나무가 존재하는 등 스프라이트가 의도한 군계에서 벗어남.

식물별로 분포하는 군계를 화이트리스트와 블랙리스트 형태로 관리. 서식 가능 외 군계에 등장을 제한함.

Q. 습도만 설정하면 호수나 바다에 상관없이 갈대나 야자수 등이 자람.

해안선을 기준으로 염도 속성을 추가. 바닷가 근처에는 염분이 없어야 자라는 식물을 배제. 다만, 이 과정을 직접 설정하지는 않고 물 경계 값을 구분할 때 쓰이는 디스턴스 필드값을 이용, 추가 작업비용도 함께 줄임.

Q. 벽 지형 주위에 큰 나무가 빽빽하게 자라는 경우가 발생함.

해안가에 사용되는 디스턴스 필드를 벽 지형 경계에 적용. 벽 지형에 큰 관목이 달라붙지 않도록 설정.

Q. 식물이 듬성듬성 존재하거나 너무 빽빽하게 분포.

식물별로 빈도 경쟁을 일으키는 스테이지를 구분, 식물 수를 조절하고 '멀티 스테이지'를 도입.
















새롭게 구성한 요소들로 만들어진 식생 시뮬레이터는 패치, 매트릭스, 모자이크, 코리더 등 플레이어가 자연스럽게 받아들일 수 있는 자연환경을 만든다.




식생 시뮬레이터에 이어 손을 댄 부분은 동물들의 행동 패턴을 분석, 배치하는 과정인 동물 제어기다.

이은석 디렉터는 강임성 개발자에게 때로는 무리를 지어 여러 지역을 이동하거나, 무리를 따라 이동, 휴식시간에는 보초를 세우고 함께 다른 동물을 사냥하고 싸우는 역동적인 모습을 요구했다. 그는 무리 구성 자체는 어렵지 않다고 말했다. 하지만, 무리답게 움직이는 문제는 간단하지 않았다. 여기에 개별 개체로서의 움직임도 함께 고려해야 한다.

그는 무리다운 동물의 움직임을 구현하기 위해 AI를 개체 단위와 무리 단위, 2개로 나눴다.

개체는 현재 처한 상황을 인식하고 무리 AI에 전달할 뿐, 스스로 상황을 판단하는 능력은 없다. 단지 개체는 무리 AI가 지시한 명령에 따라 움직인다.

반대로 무리 AI는 스스로 상황을 판단하고 적합한 결정을 내려 개체에 전달한다. 예를 들어 먹을 것을 찾거나 위험 상황의 대처법을 즉각 판단하고 이를 동물 무리에 전달하면 동물 무리는 그에 맞는 움직임을 보인다.

특히, 위험 판단은 단순히 공격을 받으면 도망가는 식이 반응이 아니라, 적으로 판단한 플레이어의 장비, 레벨, 머릿수 등에 따라 상황을 판단해 도망가거나, 원래 목표대로 움직이도록 명령한다.










복잡한 식물 생성계와 동물들의 무리 행동 구현. 하지만 그렇게 공을 들인, 사실적인 시뮬레이션이 재미있느냐에 대한 의문도 커졌다. 강임성 개발자는 듀랑고를 해수욕장에 비유하며 질문에 답했다.




"수족관은 처음부터 끝까지 주어진 동선이 있어요. 처음에는 민물 개구리 같은 자잘한 것을 보여주죠. 수족관을 계속 돌면 열대우림의 물고기들이 눈길을 끌죠. 그리고 마지막으로 커다란 상어가 주인공으로 나타나고 기념품 가게에서 돈을 쓰죠. 대부분의 MMORPG나 콘솔 게임, 그리고 모바일 게임들이 이런 수족관식 형태를 하고 있어요. 물론 이런 방식이 정말 재미있고요.

하지만 듀랑고는 좀 달라요. 해수욕장에 가면 정해진 동선 없이 모래성을 만들고, 일광욕을 즐기기도 하죠. 누구는 해수욕을 즐기기도 하고요. 듀랑고는 이런 해수욕장 같은 게임이에요. 다른 사람들과 듀랑고라는 환경을 놀이터 삼아, 그곳에서만 즐길 수 있는 특별한 뭔가를 전해드리고 싶어요. 그 특별함도 충분히 재미있지 않을까요?

듀랑고의 다양한 시뮬레이터는 놀이터의 요소들이에요. 그리고 공 들여 만들고 있는 만큼 즐기는 분들도 독특한 재미를 느낄 수 있을 거예요."






'한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계' 강연자료 보기



댓글

새로고침
새로고침

기사 목록

6 7 8