
절차적 콘텐츠 생성: 모듈로 생각하기
작성자: 이치로 람베(Ichiro Lambe) 작성일: 2012 년 7 월 5 일
이상적인 절차적 콘텐츠 생성(Procedural Content Generation) 알고리즘이 있다면 우리는 버튼 하나만 눌러서 세계를 창조할 수
있다.

“세계 창조”
물론 이것이 상당히 어려운 문제라는 것이 드러났으므로, 아직 그 단계에 이르렀다고 말하기는 어렵다. 하지만 이 글을 통해 그 단계에 한 걸음 더 가까이 다가가기 위한 몇 가지 고찰을 전달하고자 한다.
절차적 콘텐츠 생성(Procedural Content Generation, 이하 PCG), 즉 배경을 이루는 장면에서부터 스토리 라인의 조화까지 모든 것을 알고리즘적으로 만들어낸다는 아이디어는 너무나 매력적이다. 그렇지 않은가?
수작업으로 게임 환경을 만들어내는 것은 시간이 걸리고, 이것을 모두 저장하는 데에도 많은 공간이 필요하다. <Starflight>와 <Elite> 이후로, 개발자들은 제한 없이 창의성을 발휘할 수 있는 지점을 향해 작업을 계속하고 있다.
크게 보아 개발자들은 주로 다음의 세 가지 이유에서 PCG 를 사용한다:
● 개발자로 하여금 더 빠르게 콘텐츠를 생성할 수 있도록 해준다.
● 게임이 플레이어의 동작에 실시간으로 반응할 수 있도록 해준다. ● 콘텐츠가 디스크에서 차지하는 용량을 줄여준다.
그리고 숨어있는 또 다른 이유도 있다:
● 실험을 통해 더욱 창의적인 생각을 할 수 있게 해준다.
이 글에서, 우리는 2009 년에 우리가 만든 게임 <AaaaaAAaaaAAAaaAAAAaAAAAA!!! -- A Reckless Disregard for Gravity (줄여서 Aaaaa!)> 와 아직 출시 예정인 <1... 2... 3... KICK IT! -- Drop That Beat Like an Ugly Baby (줄여서 Ugly Baby)>를 만들며 찾아낸 PCG 의 역사와 문제, 해결책과 그 방법에 대해 논할 것이다.

절차적으로 생성한 레벨
초특가 할인
레벨 디자이너는 이제 가라
한정판: 무료 브릿지 포함
스포일러: 우리는 PCG 의 단점을 보완하고 이점을 부각시키는 모듈식, 그래프 기반의 시스템을 선호한다. 한 줄 요약을 하자면 그렇다. 이제 남은 글을 읽던가, 알라스카 썰매개 조련사가 되던가 하는 건 모두 당신 마음이다.
게임에서의 성공
첫째로, PCG 가 때로는 - 늘 눈앞에 있지만, (아직) 실용화되지 않았단 점에서 – 하늘을 나는 자동차처럼 보일지라도, 실제로 실행가능하며 유용하다는 증거가 있다.
<로그(Rogue!)> 는 여전히 절차적 콘텐츠 생성을 게임에 적용한 훌륭한 예로 꼽힌다. 1980 년 즈음에 만들어진 이 게임은 컴퓨터 자체에 권한을 부여하여 우리가 플레이하는 판타지 세계를 만들어 내게 했다. 이를 통해 지하 세계와 미로처럼 꼬인 길을 구축하고, (미리 창조된) 물약이나 적, 무기 등으로 채워놓는다. 이런 스타일의 던전 생성은 (Hack, Moria, Larn, Nethack, Angband, Dungeon Siege, Dungeon Siege II, Diablo, Diablo II, Diablo III 외 다수에서 볼 수 있듯이) 성공적이었고, 많은 개발자들이 로그라이크(roguelike) 게임을 만들었고, 많은 자원이 로그류 개발에 투입되었다는 점을 볼 때 비교적 잘 연구된 편이다.

로그(Rogue) 없이 PCG 를 논한다는 것은 불가능한 일이지만, 아타리 ST 용 Temple of Apshai Trilogy 의 스크린 샷을 사용하였다. 별 이유는 없다.
<Starflight> (1986)와 그 속편의 어마어마한 판매량에 힘입어, 엄청난 양의 행성 혹은 세계 탐험에 관한 게임이 쏟아져 나왔다. 각각의 태양계 안에는 많은 양의 행성이 포함돼 있었고, 또 각 행성들은 서로 다른 특성(표면 온도, 중력, 날씨, 대기, 습도)을 지니고 있었다.
그 시절 게임이 특히 놀라웠던 점은, 행성계에 착륙하면, 구불구불한 해안선과 산을 탐험하며 행성 타임과 고도에 따라 다양한 밀도를 갖는 광맥(알루미늄, 몰리브덴, 그 외 다수)과 생명체(고정형과 이동형)를 발견할 수 있었는데, 그런 행성계의 수에 제약이 없었다는 점이다. 원작은 양면 5.25 인치 플로피 디스크에 다 들어가는 용량이었다. Braben/Bell 의 고전 게임 <Elite> (1984)는 어쩌면 플레이어가 날아가서 트레이드를 할 수 있는 행성의 수가 은하계 8 개와 맞먹는 게임으로 더 잘 알려져 있을 지도 모른다.

Starflight 2 에는 심지어 플레이어가 거래를 할 수 있는 마을까지 포함돼 있다.
그보다 최근의 예로, <스포어(Spore)>는 절차적 모델 생성과 애니메이션을 보여주고 있다. 이 게임에서 플레이어는 크리쳐(creature)를 만들 때 뼈의 길이와 두께를 마음대로 정할 수 있으며, 팔다리나 눈, 귀, 날개 등을 더할 수도 있다. 창의성을 게임 플레이의 한 부분으로 만든 것이다.

스포어에서의 크리쳐 생성 튜토리얼(video: http://www.youtube.com/watch?v=ZRr3lgckIAM)
그리고, 몇 년 전 <.kkrieger>는 1 인칭 슈팅 게임 전체를 이 글의 용량보다 작은 디스크 공간에 집어 넣어서 온 세상을 놀라게 했다.

단 97,280 바이트를 사용해 만든 <.kkrieger>
PCG 는 게임의 역사를 관통하여 사용되어왔고, 오늘날에도 여전히 사용되고 있다. 당연히 모든 게임에 사용되어야만....
....하는가?
※ 자세한 내용은 첨부(PDF)화일을 참고하시기 바랍니다.

|