로그인

회원가입 | ID/PW 찾기

취재

[NDC 15] 완벽한 생태계 구축! 야생의 땅: 듀랑고의 생태계 시뮬레이터 개발기

한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 <듀랑고>의 절차적 생성 생태계

안정빈(한낮) 2015-05-19 19:30:06

식물이 온도와 장소환경에 따라 알아서 자라나고동물은 무리를 지어 살아간다따로 건들지 않아도 자동으로 돌아가는 완벽한 생태계. <야생의 땅듀랑고>가 꿈꾸는 시뮬레이션이다.

 

이은석 디렉터의 신작 <야생의 땅듀랑고>가 올해도 독특한 도전을 이어간다지난해 가죽장화까지 끓여 먹을 수 있는 아이템 구조에 이어올해는 방대한 생태계 구성을 위한 시뮬레이터까지 들고 나왔다이 정도면 환경 시뮬레이션게임이라고 불러도 될 정도다.

 

<듀랑고>의 독특한 도전은 어디까지 이어질까대학에서는 지질학을 대학원에서는 고생물학을 전공했고 지금은 <듀랑고>의 시스템 디자인을 맡고 있는 강임성 기획자에게 <듀랑고>의 새로운 시뮬레이터에 대한 이야기를 들었다/디스이즈게임 안정빈 기자


 

 

 

■ <야생의 땅: 듀랑고>의 기본 생태

 

강임성 기획자의 전공은 생물학, 그것도 고생물학이다. 지난해 <야생의 땅: 듀랑고>의 개발에 합류한 그에게 이은석 디렉터는 식생을 다듬어줄 것을 주문했다. 간단히 말해 보다 나은 시뮬레이션 환경을 만들라는 뜻이다.

 

<야생의 땅: 듀랑고>의 모든 플레이는 ‘섬’을 중심으로 진행된다. 섬은 플레이어의 집이자, 탐험 목적지이고, 다른 부족을 만나는 곳이다. 서바이벌 게임을 만들기 위해서는 필연적으로 많은 섬이 필요하고, 이 모든 섬을 일일이 관리해줄 수는 없다. 그래서 <야생의 땅: 듀랑고>에서는 알고리즘에 따라 자동으로 생태계가 구축되는 ‘절차적 섬 생성 기법’을 사용하고 있다.

 


 

강임성 기획자는 먼저 현재 상황부터 파악했다. 지금까지 <듀랑고>의 식생은 땅의 군계정보를 확인하고, 해당군계에서 분포하는 나무/풀/돌 등이 출현확률에 따라 나타나는 방식을 택했다. 

 

그런데 여기에 사실적인 그래픽을 적용시켜보니 끔찍했다. 활엽수 옆에 야자나무가 있고, 그 아래 덤불이 단 하나만 놓여 있는 모습은 흡사 버그와도 같았다. 그래픽의 표현이 사실적인 만큼 더 높은 개연성이 필요했던 것이다. 강임성 기획자는 일단 자료조사부터 시작했다.

 


 


 

 

​ 역동성과 더 많은 단위가 필요했던 식물 생태계의 구성

 

모든 일은 원리를 아는 것부터 시작한다. 인체의 원리를 알면 그림을 정확하게 그릴 수 있고, 나아가 의도에 맞춰서 그릴 수 있다. 생태도 마찬가지다. 

 

지금까지 <듀랑고>의 식생 단위는 군계였다. 하지만 실제 식생 단위는 개체, 군집, 분층 군락, 식물 군락 등 다양하다. 사바나라는 군계가 사바나 하나만으로 이뤄진 것이 아니고, 열대림이라는 군계도 키가 큰 나무들로만 이뤄진 게 아니다.

 

식물의 규모도 식물들이 랜덤하게 몰려 있는 ‘패치’와 강가를 따라 쭉 늘어선 ‘코리더’, 패치가 다수 모여있는 ‘모자이크’ 등으로 나뉜다. 여기에 나무를 베어낸 자리에 새로운 식물군이 자라거나, 크기에 따라 점점 더 큰 나무가 자라나는 역동성도 갖고 있다.

 

강임성 기획자는 이렇게 조사한 내용을 바탕으로 식생 시뮬레이터를 어떻게 만들지 결론을 내렸고, 이를 팀원과 공유했다.

 

 


 


​ <듀랑고>의 새로운 식생 시뮬레이터

 

<듀랑고>의 새로운 시뮬레이터는 4가지 목표를 가졌다. 식생이 점이적으로 변화해서 플레이어의 위화감을 줄이고, 패치, 모자이크, 코리더 등의 형태를 갖춰 플레이어가 환경을 자연스럽게 받아들이게 만든다. 물가에 갈대가 자라나는 것처럼 플레이어가 식물의 위치를 직관적으로 이해할 수 있게 하고, 주변 환경에 역동적으로 반응한다.

 

이를 구현하기 위해 먼저 식물 분포에 영향을 주는 모든 스트레스 요인을 점검했다. 그리고 그 중에 플레이어가 직접 인지할 수 있는 것만을 추렸다. 예를 들어 병충해나 중금속 등은 식물에 영향을 주지만 굳이 게임에 구현할 필요는 없는 것들이다. 그리고 빛이나 다른 식물과의 경쟁, 분포밀도 등을 ‘덩치’라는 간단한 항목 하나로 통일시켰다. 

 


 

다음은 각 식물별로 모든 항목을 수치화해서 입력했다. 예를 들어 전나무의 덩치는 850이다. 덩치가 850인 나무는 반경 7m 안에 관목들이 있어야만 생겨날 수 있고, 10그루 이상 모이면 생성이 자동으로 막힌다.

 

마지막은 습도와 온도다. <듀랑고>에는 정해진 온도와 습도가 없으니 어디까지나 ‘상대적인 온도와 습도’에 따라 식생을 분류했다. 전나무는 이제 5~70의 습도치와 -40 ~ -11의 온도치를 가진 장소에서만 살아갈 수 있다. 

 

기본적인 입력이 끝나고 <듀랑고>는 시뮬레이터를 돌렸다. 그런데!

 




 

 

​ 시행착오의 반복, 이를 해결하며 얻은 생태계

 

하지만 실제 시뮬레이션 결과는 생각과 달랐다. 미리 설정한 군계에 따라 온도가 정해져있다 보니 군계와 군계의 경계에서는 한 발자국만 움직여도 온도가 크게 달라지는 상황이 된 것. 그래서 각 군계에서도 온도를 단계별로 나누고, 같은 군계라도 어느 정도의 ‘랜덤치’를 갖게 했다.

 

두 번째 문제는 속성이다. 온도에 따라서 식생이 달라지다 보니 눈이 덮인 장소에 마른 나무가 위치하거나, 마른 땅에 눈 덮인 나무가 자라나는 일도 발생했다. 그래서 이번에는 각 식물마다 자라날 수 있는 군계를 정해놓는 화이트리스트를 만들었다. 전나무는 다시 온대림과 툰드라에서만 살 수 있다는 속성이 추가됐다.

 

세 번째 문제는 해변이었다. 바다 옆은 습도가 높다 보니 모래사장에 갈대밭이 만들어지는 기현상이 벌어졌다. 그래서 물 부근에는 염도가 짙어서 특정 식물이 열리지 못하도록 설정했다. 여기서는 물 경계선을 랜더링할 떄 쓰는 디스턴스 필드에 염도 값을 함께 넣어서 쉽게 해결했다. 전나무는 바다와 강에서 딱 붙어 나오면 안되는 속성이 더해졌다.

 


 

네 번째 문제는 생태계와는 조금 달랐는데, 생물이 여기저기에 자라나다 보니 정작 벽이나 언덕 등이 제대로 표시되지 않는 문제가 생겼다. 이번에는 강임성 기획자가 디스턴스 필드에서 배운 것을 응용했다. 바위 주변에는 일정 거리까지 식물이 자라나지 못하게 설정했다.

 

마지막은 식물의 숫자였다. 갈대밭을 만들고 싶어서 시뮬레이터를 빠르게 감았더니 화면은 정작 갈대를 잡아 먹은 소철류로 가득 찼다. 그래서 각 식물마다 스테이지를 나누고, 스테이지별로만 경쟁하도록 유도했다. 전나무의 스테이지는 2. 스테이지 1에 속한 갈대나 바위와 굳이 생존경쟁을 하지 않아도 된다.

 

시뮬레이션은 성공했다. 스스로도 얼마든 자연스러운 생태계를 만들 수 있는 환경이 갖춰진 것이다. 하지만 아직도 유저가 기껏 만든 마을이 침입하는 식물에 잠식되는 등의 몇몇 문제는 남아있다.

 




 

 

​ 개체가 아닌 무리로의 동물을 구현

 

식물 생태계가 끝나고 이제는 동물의 차례였다. 이번에도 이은석 디렉터는 강임성 기획자에게 생태계 구축을 맡겼다. 요구조건은 간단(?)하다. 동물들이 떼지고 돌아다니고, 우두머리 뒤에는 새끼가 따르고, 가끔 잠에 빠질 때는 한 마리가 깨어서 망을 보고, 먹을 게 생기면 친구를 부르기도 하는 그런 사파리 같은 생태계다. 강임성 기획자는 다시 동물행동학 원리 연구에 들어갔다.

 

동물을 무리로 구성하는 건 어렵지 않았다. 다만 무리를 무리답게 움직이게 만드는 것이 문제였다. 여기에 개체로의 행동도 해야 한다. 

 

강임성 기획자는 동물의 행동을 아예 개체 단위와 무리 단위로 나눴다. 개체 단위는 자극에 반응하거나 랜덤하게 움직이는 것들이고, 무리 단위는 영역을 지키고, 떼를 지어 이동하고, 먹을 것을 찾는 등의 행동이다.

 


 

그리고 무리를 통솔하기 위한 무리 인공지능을 따로 마련했다. 예를 들어 무리가 목이 마르면 무리 인공지능이 어디로 이동할 지를 정하고, 개체는 이를 따르기만 한다. 이동 중에 무언가를 발견했다면 이 역시 무리 인공지능이 장비와 레벨, 숫자 등에 따라 대응방식을 정한다. 

 

물론 어디까지 보고 판단하느냐는 무리 인공지능이 얼마나 똑똑하느냐에 따라 다르다. 이렇게 보다 자연스러운 동물 무리가 만들어졌다.

 




 

 

​ 왜 이렇게 공을 들일까?

 

강연을 듣고 있으면 자연스럽게 궁금증이 떠오른다. ‘왜 시뮬레이터 하나에 그렇게 공을 들이는 걸까?’ 강임성 기획자는 수족관과 해변의 예를 들었다. 수족관은 정해진 동선에 맞춰 사람들이 콘텐츠를 소비하고 즐긴다. 일반적인 콘솔게임 등의 방식이다.

 

하지만 해변에서는 정해진 콘텐츠가 없다. 물에 들어가는 것도, 뛰는 것도, 모래성을 만드는 것도 모두 개인의 자유다. <듀랑고>가 만들고 싶은 것은 이런 해변 같은 놀이터라는 게 그의 이야기다. “세상에 이런 게임 하나 정도 있어도 괜찮지 않을까요?” 

 

강임성 기획자는 마지막으로 동료들과의 비전 공유와 빠른 반복개선으로 상황을 풀어낼 것과 주변의 동료를 통해 해답을 구할 것을 주문했다. <듀랑고>의 절차적 생태계와 시뮬레이터는 지금도 꾸준히 발전 중이다.