You are on page 1of 10

Journal of Korea Game Society 2016 Dec; 16(6): 59-68

http://dx.doi.org/10.7583/JKGS.2016.16.6.59

게임 프로그래밍

이진 공간 분할로 보강된 셀 오토마타를 이용한


고립 동굴 없는 맵 자동 생성

김지민*, 오평*, 김선정*, 홍석민**


한림대학교 인터랙션디자인*, 한림대학교 광고홍보학과**
{rudengkim, vudhrh}@gmail.com, {sunkim, seokminhong}@hallym.ac.kr

Automatic Map Generation without an Isolated Cave


Using Cell Automata Enhanced by Binary Space Partitioning

Ji-Min Kim*, Pyeong Oh*, Sun-Jeong Kim*, Seokmin Hong**


Graduate School, Dept. of Interaction Design, Hallym University*, Dept. of Advertising
and Public Relations, Halym University**

요 약

다양한 이유로 콘텐츠 생성에 대한 연구는 최근 게임 인공 지능분야에서 활발히 연구되고 있


다. 디자이너의 개입과 관계없이 자동적으로 콘텐츠를 생성하려는 시도가 계속 되고 있으며, 여
러 게임 장르에서 다양한 형태의 게임 콘텐츠를 생성하는데 사용되어 왔다. 본 논문은 다양한
콘텐츠 생성 연구 중, 고립 동굴이 없는 맵을 자동으로 생성하기 위해 이진 공간 분할을 활용
하여 보강된 셀 오토마타 방법을 제안한다. 이진 공간 분할을 이용하면 원하는 공간의 수를 지
정할 수 있으며, 셀 오토마타를 이용하여 자동 생성된 맵의 통로를 탐색하는데 걸리는 시간도
줄일 수 있다. 본 논문에서는 이진 공간 분할로 보강된 셀 오토마타를 이용하여 자동 생성된
맵을 게임에 적용하여 그 유용성을 보인다.

ABSTRACT

Many researchers have paid attention to contents generation within the area of game
artificial intelligence these days with various reasons. Efforts on automatic contents
generation without game level designers' help were continuously progressed in various
game contents. This study suggests an automatic map generation without an isolated
cave using cellular automation enhanced by binary space partitioning(BSP). In other
words, BSP makes it possible to specify the number of desired area and cellular
automation reduces the time to search a path. Based upon our preliminary simulation
results, we show the usefulness of our automatic map generation by applying the
contents generation using cell automation, which is enhanced by BSP to games.
Keywords : Artificial Intelligence (인공지능), Binary Space Partitioning (이진 공간 분할),
Cellular Automaton (셀 오토마타), Procedural Map Generation (절차적 맵 생성)
Received: Sep. 2. 2016 Revised: Oct. 10. 2016 Ⓒ The Korea Game Society. All rights reserved. This is an
Accepted: Dec. 9, 2016 open-access article distributed under the terms of the Creative
Corresponding Author: Seokmin Hong(Hallym University) Commons Attribution Non-Commercial License
E-mail: seokminhong@hallym.ac.kr (http://creativecommons.otg/licenses/by-nc/3.0), which permits
unrestricted non-commercial use, distribution, and reproduction in
ISSN: 1598-4540 / eISSN: 2287-8211 any medium, provided the original work is properly cited.

Journal of Korea Game Society JKGS ❙59


― 이진 공간 분할로 보강된 셀 오토마타를 이용한 고립 동굴 없는 맵 자동 생성 ―

1. 서 론 어 생성된 동굴들의 연결성을 보장하지 않는다. 또


한 임의의 생성방식으로 공간의 구분이 없어 사용
게임을 개발하는데 있어서 콘텐츠를 생성하는 게임에 사용하기에는 무리가 있다. 본 논문은 절차
것은 매우 중요하다. 게임에서 콘텐츠가 많지 않을 적 동굴 생성의 한계점을 보완하고 상용 게임에서
경우 플레이어는 같은 콘텐츠를 반복해서 소모하게 사용할 수 있도록 셀 오토마타와 이진 공간 분할
되고, 싫증을 느끼게 되어 금방 게임을 그만두게 을 이용하여 동굴을 생성하였다. 이진 공간 분할을
된다[1]. 하지만 게임 개발자들이 콘텐츠를 생성하 사용할 경우 분할된 공간이 생성되고 공간을 연결
는 것은 많은 시간과 비용이 소모된다. 콘텐츠를 함으로서 동굴형 던전을 생성한다. 셀 오토마타만
절차적으로 생성하는 작업을 디자이너의 개입 없이 을 사용하여 생성된 동굴은 공간의 수가 일정하지
컴퓨터가 처리한다면 더 싸고 빠르게 콘텐츠를 제 않아서 던전으로 사용하기 힘들다. 하지만 이진 공
작할 수 있다. 게임의 콘텐츠가 늘어나면서 수작업 간 분할을 이용할 경우 원하는 공간의 수를 지정
으로 모든 것을 처리 할 수 없게 되었고 최소한의 할 수 있다.
수작업으로 고품질의 콘텐츠를 만들어야 할 필요성
이 늘어났다[2]. 대규모 개발사에 비해 인력이 적 2. 관련 연구
은 소규모 개발사나 인디 게임 개발자들도 콘텐츠
생성 기술을 사용하면 짧은 시간에 많은 콘텐츠를 2.1 절차적 콘텐츠 생성
생성할 수 있다. 또한 모바일 디바이스의 적은 용
절차적 생성은 컴퓨터 공학 분야에서 알고리즘
량으로도 많은 콘텐츠를 만들 수 있다.
으로 데이터를 생성하는 방법이다. 초창기의 비디
이러한 다양한 이유로 콘텐츠 생성에 대한 연구
오 게임은 하드웨어의 제약이 심하여 알고리즘으로
는 최근 게임 인공 지능분야에서 활발히 연구되고
콘텐츠를 생성하는 방식으로 던전과, 몬스터, 아이
있다. 디자이너의 개입과 관계없이 자동적으로 콘
템 등의 콘텐츠를 생성하였다. 1970년대 후반에
텐츠를 생성하려는 시도가 계속 되고 있으며, 여러
ASCII 기반의 게임인 로그(Rogue)를 중심으로 시
게임 장르에서 다양한 형태의 게임 콘텐츠를 생성
작하였으며 현대에는 토치라이트와 문명, 스카이림
하는데 사용되어 왔다. 절차적 콘텐츠 생성을 이용
등 다양한 상용 게임에서 이러한 기법을 사용하고
한 가상 세계 생성[3], 절차적 생성을 이용한 게임
있다.
의 레벨을 디자인하는 방법[4], 문법을 이용하여
게임 AI에서 절차적 콘텐츠 생성이 많은 연구가
던전을 생성하는 방법[4], 액션 어드벤처 게임의
이루어지는 이유는 다음과 같다. 첫 번째로 동적인
공간과 미션을 생성 하는 방법[5], 유전 알고리즘
절차적 콘텐츠 생성을 이용하면 기존의 게임과는
을 이용하여 무기를 생성하는 연구[6] 등 콘텐츠
다르게 메모리의 소비를 줄일 수 있다. 일반적인
생성에 대한 다양한 연구가 진행되었다. 이렇듯 절
게임은 콘텐츠의 사용을 위해 미리 메모리에 해당
차적 콘텐츠 생성에도 다양한 분야가 존재한다. 절
리소스를 올려두게 되는데, 절차적 콘텐츠 생성에
차적으로 맵을 생성하는 분야에서는 이진 공간 분
서는 필요에 따라 콘텐츠가 생성되기 전까지는 이
할을 이용한 던전 생성기법[7], 에이전트 기반의
러한 리소스에 할당할 메모리가 필요하지 않기 때
던전 생성 기법[7], 셀 오토마타를 이용한 던전 생
문이다. 절차적 콘텐츠 생성을 사용하는 두 번째
성 기법[8], 문법 기반의 던전 생성 기법[9] 등이
이유는 수동으로 게임의 콘텐츠를 생성하는데 드는
연구되었다.
많은 비용 때문이다. 세 번째 이유는 절차적 콘텐
셀 오토마타를 이용해 동굴을 생성하는 연구[8]
츠 생성을 사용하면 완벽하게 새로운 형태의 게임
는 임의로 동굴이 생성되는 방식으로 구현되어 있
을 만들어 낼 수 있기 때문이다. 만약 실시간으로

60 ❙ Journal of Korea Game Society 2016 Dec; 16(6): 59-68


― Automatic Map Generation without an Isolated Cave Using Cell Automata Enhanced by Binary Space Partitioning ―

충분히 다양한 형태의 새로운 콘텐츠를 생성해 낼 셀의 상태가 정해진다. 일반적으로 규칙은 각 셀에
수 있다면, 진정한 의미의 끝이 없는 게임이 가능 대해 동일하고 시간에 따라 변하지 않으며 각 세
해 질 것이다 [10,11]. 대의 모든 셀에 동시에 적용되는데, 가장 일반적인
두 가지 유형은 무어 이웃과 폰 노이만의 이웃이
2.2 이진 공간 분할 다[Fig. 1].

이진 공간 분할은 공간을 재귀적으로 분할하는


기법이다. 분할 과정으로 이진 공간 분할 트리의
구조가 만들어진다. 이진 공간 분할 기법은 3차원
컴퓨터 그래픽스 분야에서 렌더링 효율을 높이기
위하여 사용되었지만, 현재는 다양한 분야에서 공
간을 렌더링하기 위하여 사용되고 있다.
이진 공간 분할의 순서는 다음과 같다.

[1 단계] 시작할 공간을 루트 노드로 지정한 [Fig. 1] Type of Cellular Automaton


다.
[2 단계] 노드의 공간을 나누고 왼쪽 자식과,
오른쪽 자식으로 지정한다. 3. 구 현
[3 단계] 나누어진 파티션 중에 조건에 만족
하는 하나를 선택한다. 2단계로 돌 게임에서 맵은 장르를 가리지 않고 매우 중요하
아간다. 다. 롤플레잉 게임에서는 필드나 던전을 생성하는
[4 단계] 만족할 때까지 반복한다. 데 사용되고 스타크래프트나 워크래프트 같은 실시
간 전략 시뮬레이션 게임에서는 맵 자체가 하나의
2.3 셀 오토마타 전략이 된다[Fig. 2]. 셀 오토마타만을 사용한 맵
생성에서는 지역 간의 연결을 보장하지 않기 때문
1940년대에 스타니스와프 울람과 존 폰 노이만
에 본 논문에서는 이진 공간 분할과 셀 오토마타
이 로스앨러모스 국립 연구소에서 함께 연구하면서
를 이용하여 공간의 연결성을 보장하는 절차적 맵
이 개념을 처음 발견했다. 1970년대에 2차원 셀 오
을 생성하였다. 또한 구현의 편의성을 위하여 2차
토마타의 하나인 존 호턴 콘웨이의 라이프 게임이
원 타일 방식의 맵을 생성하였다. 절차적 맵의 생
소개된 이후 학계 밖에서 활발히 연구되기 시작했
성 규칙은 다음과 같다.
다.
셀 오토마타는 규칙적인 격자 형태로 배열된 셀
[규칙 1] 이진 공간 분할을 이용하여 적당한
또는 칸으로 정의된다. 각 셀은 유한한 수의 상태
수에 지역 생성
를 가질 수 있는데, 예를 들어 “생존/죽음”이 있다.
[규칙 2] 각각의 지역에 랜덤 맵 생성
격자는 유한한 수의 차원이면 된다. 셀의 상태는
[규칙 3] 셀 오토마타를 이용한 동굴 생성
이웃이라 부르는 셀들에 대한 관계로 정의한다. 시
[규칙 4] 지역 간의 통로 연결
간 t = 0일 때 각각 셀의 상태를 지정하고 이를
초기 상태라 한다. 새로운 세대는 정해진 규칙에
의해 만들어진다. 셀과 이웃들의 상태에 따라서 그

Journal of Korea Game Society JKGS ❙61


― 이진 공간 분할로 보강된 셀 오토마타를 이용한 고립 동굴 없는 맵 자동 생성 ―

(a) Starcraft (b) World of Warcarft

[Fig.2] Examples of Game Maps

또한 다음과 같이 매개변수를 표시하였다.

w: 벽 지형의 비율
n: 셀 오토마타 알고리즘의 반복회수
θ: 셀의 상태를 정의하는 이웃 임계값
r: 이진 공간 분할의 나누어진 공간의 수

3.1 지역 생성

필요한 지역을 생성하기 위하여 우선 적당한 크


기의 2차원 공간을 설정하고 나누어질 지역의 개
수를 정한다. 2차원 공간을 루트 노드로 지정한 뒤
에 가로 혹은 세로로 분할하여 노드의 왼쪽 자식
과 오른쪽 자식으로 나누는 이진 공간 분할 트리
를 형성한다. 나누어진 지역은 하나의 노드이며 원
하는 만큼의 지역이 나올 때까지 분할 작업을 반
복한다. 이진 공간 분할 트리에 단말 노드의 개수
는 나누어진 지역의 개수와 같다[Fig 3].
셀 오토마타에 의해 생성된 동굴은 지역 사이의 [Fig. 3] Binary Space Partitioning(BSP)
and BSP Tree
연결을 보장하지 않는다. 생성된 지역 사이의 연결
을 위해서 지역 사이의 거리 계산과 적합한 통로
3.2 랜덤 타일 생성
를 선택하는 알고리즘이 필요하다. 하지만 이진 공
간 분할 기법을 이용하면 통로를 연결하는 시간을 이진 공간 분할을 이용하여 생성된 지역을 하나
단축 시킬 수 있다. m개의 지역이 생성되어 모든 의 공간으로 만들기 위하여 지역의 경계선은 이동
지역을 연결할 때 최단 경로 알고리즘인 Dijkstra 불가 지역으로 설정한다. 경계선을 제외한 나머지
알고리즘을 사용한다면 선형 탐색으로 구현할 경우 부분은 공간 생성 확률을 지정하고 확률에 맞춰서

O(  )의 시간이 소모된다. 반면에 이진 공간 분할 임의의 타일을 생성한다. [Fig. 4]는 임의의 확률로
트리를 탐색할 경우 O( log )의 탐색 시간이 걸리 타일을 생성하는 방식으로 임의성이 너무 커서 실
므로 더 효율적이다. 제 게임에 적용하기에는 무리가 있는 맵이다.

62 ❙ Journal of Korea Game Society 2016 Dec; 16(6): 59-68


― Automatic Map Generation without an Isolated Cave Using Cell Automata Enhanced by Binary Space Partitioning ―

[Fig. 4] Random Tile Generation [Fig. 5] Cave Generation

3.3 동굴 생성 같은 크기의 방에도 임의성을 제공한다면, 플레


이어가 패턴을 인식하기 어려워진다. 패턴 인식이
지역의 랜덤으로 생성된 타일을 셀 오토마타를 어려울수록 플레이어는 비슷한 콘텐츠를 다르게 인
이용하여 동굴을 생성한다. 셀 오토마타는 무어의 식하여 장기간 플레이를 할 수 있다.
이웃을 사용하였으며, 조건식은 다음과 같다.

3.4 통로 연결
[조건 1] 이동 가능 타일 < 이동 불가 타일
= 이동 불가 타일 단말 노드의 부모를 이용하여 왼쪽 자식과 오른
[조건 2] 이동 가능 타일 == 이동 불가 타일 쪽 자식의 통로를 연결한다. 왼쪽 자식과 오른쪽
= 현재 타일 유지 자식의 이동 가능 타일을 조사한다. 이동 가능 타
[조건 3] 이동 가능 타일 > 이동 불가 타일 일 중에서 경계에 있는 타일 추출한다. 왼쪽 자식
= 이동 가능 타일 과 오른쪽 자식의 경계선 타일을 탐색하여 두 타
일 사이의 거리가 가장 가까운 타일을 연결한다.
[Fig. 5]는 랜덤 타일 생성 방식으로 생성된 맵 아래 계층부터 루트 노드에 도착할 때까지 반복하
에 대해 셀 오토마타를 이용하여 동굴을 생성하였 여 모든 지역의 통로를 연결한다. [Fig. 6]은 자동
다. [Fig. 4]와 달리 지역을 눈으로 확인할 수 있게 으로 생성된 연결 통로를 보여주고 있다.
되어 게임에 적용할 수 있는 수준의 맵이 생성되
었다.
생성된 2차원 공간의 크기와 분할된 지역의 수
에 따라서 셀 오토마타의 반복 회수를 적절하게
조절하여 자연스러운 동굴을 생성해야 한다.

Journal of Korea Game Society JKGS ❙63


― 이진 공간 분할로 보강된 셀 오토마타를 이용한 고립 동굴 없는 맵 자동 생성 ―

4. 결 과

[Fig. 7]에서는 임의로 맵을 생성하는 방식, 셀


오토마타만을 이용하여 생성하는 방식 그리고 이진
공간 분할과 셀 오토마타를 이용하여 생성하는 세
가지 방식으로 생성된 맵을 보여주고 있다. 각각의
맵은 세가지 방식을 타일 생성 비율 w을 변화시키
며 생성하였다.
첫 번째 방식인 랜덤 타일 생성을 이용한 랜덤
맵 방식은 벽 생성 비율 w를 변화시키더라도 실제
로 게임에서 사용할만한 의미 있는 맵은 생성되지
않았다. 두 번째로 셀 오토마타를 이용하여 맵을
생성하는 경우는 벽 생성 비율 w가 낮을 경우 넓
은 하나의 공간의 형태로 생성되다가, w가 높아질
[Fig. 6] Passage Connection 경우 동굴형태의 맵이 생성된다. 하지만 공간사이
의 연결성을 보장하지 못한다.
마지막으로 이진 공간 분할과 셀 오토마타를 이

[Fig. 7] Compare Random Map, CA Map and BSP-CA Map

64 ❙ Journal of Korea Game Society 2016 Dec; 16(6): 59-68


― Automatic Map Generation without an Isolated Cave Using Cell Automata Enhanced by Binary Space Partitioning ―

[Fig. 8] A Game Example Implemented by Unity3D

용한 방식은 원하는 만큼의 공간 수 r을 지정해 줄 5. 결론 및 향후 연구


수 있으며 벽 생성 비율 w에 따라서 다른 느낌을
줄 수 있다. 본 논문에서는 이진 공간 분할과 셀 오토마타를
[Fig. 8]은 본 논문의 제안 방법을 Unity3D에서 이용하여 절차적으로 맵을 생성하였다. 생성 결과
구현한 화면이다. 좌측은 자동으로 생성된 고립 동 를 비교해 볼 때, 기존 연구인 셀 오토마타만을 이
굴 없는 맵에서의 게임 화면이고, 우측은 이진 공 용하여 생성한 동굴 보다 본 논문의 제안 방법인
간 분할로 보강된 셀 오토마타에 필요한 매개변수 이진 공간 분할과 셀 오토마타를 이용하는 동굴이
들을 설정할 수 있는 화면이다. ‘Obstacle 더 유용함을 알 수 있다. 제안 방법은 맵 공간의
Percent'는 매개변수 w(벽 지형의 비율), 지역 개수를 사용자가 제어 가능하며, 지역 사이의
'Iteration Number'는 매개변수 n(셀 오토마타의 통로를 자동으로 생성할 때 이진 공간 분할 트리
반복 회수), ‘Terminal Node Max'는 매개변수 r 를 이용함으로써 계산 시간을 단축시킬 수 있다는
(이진 공간 분할의 공간 개수)에 해당된다. 게임 장점을 갖는다.
레벨 디자이너는 자동 생성된 맵을 평가 후 매개 하지만 이진 공간 분할과 셀 오토마타를 이용한
변수들의 값들을 조절하여 [Fig. 9]와 같이 다양하 맵 생성 방식도 좁은 공간에 많은 방을 생성하려
게 생성 할 수 있다. 할 경우 셀 오토마타를 이용한 맵 생성 방식처럼
연결성을 보장할 수 없게 된다. 그러므로 향후 연
구로 좁은 공간에서의 벽 지형 비율이 넓은 공간
에 비해 상대적으로 작게 만드는 적응적 방법을
연구할 예정이다.

Journal of Korea Game Society JKGS ❙65


― 이진 공간 분할로 보강된 셀 오토마타를 이용한 고립 동굴 없는 맵 자동 생성 ―

(a) w = 0.2, n = 5, r = 5

(b) w = 0.2, n = 5, r = 4

66 ❙ Journal of Korea Game Society 2016 Dec; 16(6): 59-68


― Automatic Map Generation without an Isolated Cave Using Cell Automata Enhanced by Binary Space Partitioning ―

(c) w = 0.2, n = 5, r = 5
[Fig. 9] Another Game Examples Implemented by Unity3D

REFERENCES [6] Erin Jonathan Hastings, Ratan K. Guha, Life


Member, IEEE, and Kenneth O. Stanley ,
“Automatic Content Generation in the
[1] Young-Ha Kim, “Making plausible random
Galactic Arms Race Video Game“, IEEE
generated content”, NDC2010. TRANSACTIONS ON COMPUTATIONAL
[2] Jubok-Kim “Procedural Terrain and the
INTELLIGENCE AND AI IN GAMES, VOL.
Raiders Of The Trend”, NDC2011,
1, NO. 4, 245-263, DECEMBER 2009
[3] R.M. Smelik, T. Tutenel, K.J. de Kraker, R. [7] Noor Shaker, Antonios Liapis, Julian
Bidarra, “A declarative approach to
Togelius, Ricardo Lopes, and Rafael Bidarra,
procedural modeling of virtual worlds”,
“Constructive generation methods for
Computers & Graphics 35, 352-363, 2011. dungeons and levels (DRAFT)” 31-55, 2016
[4] Nathan Sorenson, Philippe Pasquier, and
[8] Lawrence Johnson, Georgios N. Yannakakis,
Steve DiPaola, “A Generic Approach to
Julian Togelius, “Cellular Automata for
Challenge Modeling for the Procedural Real-time Generation of Infinite Cave
Creation of Video Game Levels”, IEEE
Levels”, Proceedings of the 2010 Workshop
TRANSACTIONS ON COMPUTATIONAL
on Procedural Content Generation in Games,
INTELLIGENCE AND AI IN GAMES, VOL. Article No. 10 , 2010
3, NO. 3, 229-244, SEPTEMBER 2011
[9] Jonathon Doran, “Controlled Procedural
[5] Joris Dormans , “Adventures in Level
Terrain Generation Using Software Agents”,
Design-Generating Missions and Spaces for IEEE Transactions on Computational
Action Adventure Games”, Proceedings of
Intelligence and AI in Games, 111 – 119,
the 2010 Workshop on Procedural Content
2010
Generation in Games, Article No. 1, 2010. [10] Ichiro Lambe, “Procedural Content Generation:

Journal of Korea Game Society JKGS ❙67


― 이진 공간 분할로 보강된 셀 오토마타를 이용한 고립 동굴 없는 맵 자동 생성 ―

Thinking With Modules”, Gamasutra, (


김 선 정 (Kim, Sun-Jeong)
http://www.gamasutra.com/view/feature/17431
1/procedural_content_generation_.php ), 2012
[11] Julian Togelius, Georgios N. Yannakakis,
Kenneth O. Stanley, and Cameron Browne,
“Search-Based Procedural Content
Generation”, EvoApplication 2010, Part 1,
LNCS, 6024, pp.141-150, 2010
약 력 : 2003 고려대학교 컴퓨터학과 이학박사
2005- 한림대학교 융합소프트웨어학과 교수

관심분야 : 컴퓨터 그래픽스, 게임 프로그래밍

홍 석 민 (Hong, Seok min)

약 력 : 2003 The University of Texas at Austin 광고


학박사
2003-현재 한림대학교 광고홍보학과 교수
관심분야 : 마케팅, 뉴미디어, 사회연결망분석
김 지 민 (Kim, JI-Min)

약 력 : 2014.2 한림대학교 유비쿼터스 게임공학과 졸업


2016.8 한림대학교 인터랙션디자인 석사과정(現)

관심분야 : 게임프로그래밍

오 평 (Oh, Pyeng)

약 력 : 2014.2 한림대학교 유비쿼터스 게임공학과 졸업


2016.8 한림대학교 인터랙션디자인 석사과정(現)

관심분야 : 게임프로그래밍

68 ❙ Journal of Korea Game Society 2016 Dec; 16(6): 59-68

You might also like