KEKE STUDIO
  1. 홈
  2. 블로그
  3. 절차적 생성이란? 로그부터 마인크래프트·노 맨즈 스카이까지

절차적 생성이란? 로그부터 마인크래프트·노 맨즈 스카이까지

게임 맵과 아이템을 사람이 아니라 규칙과 난수가 만드는 절차적 생성의 원리와 역사를 로그, 엘리트, 마인크래프트, 노 맨즈 스카이, 파동 함수 붕괴 알고리즘으로 정리합니다.

#절차적 생성 #게임 개발 #로그라이크 #마인크래프트 #노 맨즈 스카이 #게임 기술

마인크래프트에서 새 세계를 만들 때마다 다른 산과 바다가 나오고, 로그라이크 게임은 죽을 때마다 던전 모양이 바뀝니다. 이 지형과 던전을 사람이 하나하나 그린 것이 아닙니다. 개발자가 정한 규칙과 난수(무작위 숫자)가 그때그때 만들어 낸 것입니다. 이런 방식을 절차적 생성(Procedural Generation)이라고 부릅니다.

이 글에서는 절차적 생성이 무엇인지, 왜 처음 등장했는지, 그리고 「로그」에서 「노 맨즈 스카이」까지 어떤 게임들이 이 기술로 새 지평을 열었는지 살펴봅니다. 마지막에는 절차적 생성의 한계와 잘 쓰는 방법도 정리합니다.

절차적 생성의 기본 원리

절차적 생성은 "결과물을 직접 저장하는 대신, 결과물을 만드는 방법을 저장하는 것"입니다. 핵심 재료는 세 가지입니다.

  • 규칙: 방은 복도로 이어져야 한다, 물은 낮은 곳에 고인다 같은 제약입니다.
  • 난수 생성기: 규칙 안에서 어떤 선택을 할지 정하는 무작위 숫자를 만듭니다.
  • 시드(seed): 난수 생성기의 출발 숫자입니다. 컴퓨터의 난수는 사실 정해진 계산이라, 같은 시드를 넣으면 언제나 같은 결과가 나옵니다.

시드 덕분에 절차적 생성은 "무작위이면서도 재현 가능한" 세계를 만들 수 있습니다. 마인크래프트 플레이어들이 마음에 드는 세계의 시드 번호를 서로 공유하는 것도 이 때문입니다.

반대로 시드를 쓰지 않고 매번 다른 난수를 쓰면, 같은 게임이라도 사람마다 전혀 다른 판을 겪게 됩니다. 어떤 게임은 이 둘을 섞어, 평소에는 무작위로 판을 만들다가 대회나 일일 도전처럼 공정한 비교가 필요할 때만 같은 시드를 모두에게 나눠 줍니다.

생성은 게임을 실행하는 순간에 할 수도 있고, 개발 단계에서 미리 해 둘 수도 있습니다. 앞의 방식은 플레이할 때마다 새로운 세계를 주지만 결과를 일일이 검수할 수 없고, 뒤의 방식은 생성한 결과 가운데 좋은 것만 골라 사람이 다듬을 수 있습니다. 넓은 오픈 월드 게임의 숲이나 바위 배치처럼, 플레이어가 모르는 곳에서 개발 도구로 쓰이는 절차적 생성도 많습니다.

메모리가 부족해서 시작된 기술: 로그와 엘리트

절차적 생성이 처음 주목받은 이유는 화려함이 아니라 절약이었습니다.

1980년 무렵 마이클 토이와 글렌 위치먼이 유닉스 컴퓨터용으로 만든 「로그(Rogue)」는 던전의 층, 몬스터, 보물을 매번 새로 만들었습니다. 같은 판이 두 번 나오지 않으니 몇 번을 해도 새로웠고, 이 게임의 이름은 '로그라이크'라는 장르 이름이 되었습니다.

1984년 데이비드 브레이븐과 이언 벨이 BBC 마이크로용으로 낸 우주 무역 게임 「엘리트」는 더 극적인 사례입니다. 게임 안에는 은하 8개, 은하마다 행성 256개가 있었는데, 8비트 컴퓨터의 작은 메모리에 이 정보를 모두 저장할 수는 없었습니다. 그래서 시드 숫자 하나를 정해진 계산에 반복해서 넣어, 행성의 위치와 이름, 경제를 그때그때 만들어 냈습니다.

2004년 독일 데모 그룹 .theprodukkt가 만든 1인칭 슈팅 게임 「.kkrieger」는 이 생각을 극단까지 밀어붙였습니다. 텍스처와 모델을 모두 생성 규칙으로 저장해, 96KB 크기 제한이 있는 대회에서 1위를 차지했습니다.

지형을 만드는 수학: 펄린 노이즈

자연스러운 산과 구름을 만들려면 그냥 무작위 숫자로는 부족합니다. 옆 칸과 전혀 상관없는 숫자를 늘어놓으면 텔레비전 잡음 같은 화면이 나올 뿐입니다.

켄 펄린은 영화 「트론」(1982) 작업을 계기로, 가까운 곳끼리는 값이 부드럽게 이어지는 노이즈를 고안했습니다. 1985년 논문으로 발표된 이 '펄린 노이즈'는 컴퓨터 그래픽에서 자연스러운 질감을 만드는 기본 도구가 되었고, 펄린은 1997년 이 공로로 아카데미 기술 공로상을 받았습니다.

여러 크기의 노이즈를 겹치면 큰 산줄기 위에 작은 언덕과 바위가 얹힌 지형을 만들 수 있습니다. 마인크래프트를 비롯한 수많은 게임의 지형 생성이 이런 노이즈 기법을 바탕으로 합니다.

무엇을 생성할 수 있을까

절차적 생성은 지형과 던전에만 쓰이지 않습니다. 생성하는 대상에 따라 방식도 달라집니다.

  • 지형과 맵: 노이즈로 높낮이를 정하고, 그 위에 물·숲·사막 같은 생태를 나눕니다.
  • 던전과 레벨: 방과 복도를 배치하고, 시작점에서 출구까지 길이 이어지는지 확인합니다.
  • 아이템: 기본 무기에 무작위 능력치와 접두사·접미사를 붙여 수많은 조합을 만듭니다.
  • 식물과 건물: 생물학자 아리스티드 린덴마이어가 1968년 고안한 L-시스템처럼, 간단한 문자 치환 규칙을 반복해 나뭇가지 모양을 만드는 기법도 있습니다.
  • 역사와 이야기: 2006년 타른·잭 애덤스 형제가 공개한 「드워프 포트리스」는 세계를 만들 때 수백 년에 걸친 문명과 전쟁, 인물의 역사까지 함께 생성합니다.

이야기까지 생성하는 게임에서는 개발자도 결과를 미리 알 수 없습니다. 플레이어가 겪은 일이 그 사람만의 이야기가 된다는 점이 절차적 생성의 가장 큰 매력이기도 합니다.

다시 할 이유를 만드는 생성: 디아블로와 로그라이트

절차적 생성은 곧 "다시 하게 만드는 장치"로 쓰이기 시작했습니다.

게임연도무엇을 생성하나
디아블로1996던전 구조와 아이템
스펠렁키2008동굴 구조(미리 만든 방 조각을 조합)
보더랜드2009총기의 성능과 부품
마인크래프트2009(첫 공개)지형 전체와 동굴, 광물

데릭 유의 「스펠렁키」는 좋은 본보기입니다. 완전한 무작위 대신, 사람이 미리 설계한 방 조각을 규칙에 따라 이어 붙여 늘 끝까지 갈 수 있는 길을 보장했습니다. 손으로 만든 품질과 생성의 다양성을 함께 잡는 이런 방식은 이후 「하데스」 같은 로그라이트 게임에서도 널리 쓰는 기본기가 되었습니다.

1,800경 개의 행성: 노 맨즈 스카이

2016년 헬로 게임즈의 「노 맨즈 스카이」는 엘리트의 발상을 현대 기술로 키운 게임입니다. 64비트 시드 하나에서 결정적 알고리즘으로 우주 전체를 만들어, 행성 수가 1,800경(1.8×10¹⁹) 개가 넘습니다. 행성마다 지형과 날씨, 식물과 동물이 따로 만들어집니다.

이 게임은 절차적 생성의 가능성과 한계를 함께 보여 주었습니다. 출시 당시에는 행성들이 겉모습만 다르고 할 일이 비슷하다는 비판을 받았고, 이후 오랜 업데이트로 기지 건설과 멀티플레이 같은 사람의 손이 들어간 콘텐츠를 더해 평가를 크게 끌어올렸습니다. "끝없이 많은 것"과 "끝없이 재미있는 것"은 다르다는 교훈입니다.

파동 함수 붕괴: 규칙을 예시에서 배우다

2016년 막심 구민이 공개한 '파동 함수 붕괴(Wave Function Collapse, WFC)' 알고리즘은 새로운 흐름을 만들었습니다. 작은 예시 그림이나 타일 묶음을 주면, 그 안에서 어떤 조각이 어떤 조각 옆에 올 수 있는지 규칙을 뽑아내 비슷한 느낌의 큰 결과물을 만들어 냅니다.

이 알고리즘은 바이킹의 습격을 막는 전략 게임 「배드 노스」의 섬 생성, 도시를 쌓아 올리는 장난감 같은 게임 「타운스케이퍼」, 로그라이크 「케이브스 오브 쿼드」의 레벨 생성에 쓰였습니다. 개발자가 규칙을 일일이 코드로 쓰지 않아도, 원하는 분위기의 예시만으로 생성 결과를 조절할 수 있다는 것이 장점입니다.

절차적 생성을 잘 쓰는 법

절차적 생성은 만능이 아닙니다. 잘못 쓰면 "어디를 가도 비슷한" 지루한 세계가 됩니다. 성공한 게임들에는 공통점이 있습니다.

  1. 사람이 만든 조각과 섞는다: 스펠렁키처럼 설계된 조각을 생성 규칙으로 조합하면 품질이 안정됩니다.
  2. 반드시 깰 수 있게 검사한다: 생성한 맵에 출구까지 가는 길이 있는지 프로그램으로 확인합니다.
  3. 의미 있는 차이를 만든다: 색만 다른 행성보다, 플레이 방법이 달라지는 차이가 기억에 남습니다.
  4. 시드를 활용한다: 같은 시드를 공유해 모두가 같은 맵으로 경쟁하는 '일일 도전'은 많은 로그라이크와 퍼즐 게임이 쓰는 방식입니다.

작은 팀일수록 절차적 생성의 매력은 큽니다. 사람이 수백 개의 레벨을 손으로 만들기 어렵다면, 좋은 규칙 하나가 끝없이 새로운 판을 만들어 줄 수 있기 때문입니다. 다만 그 규칙을 다듬는 데에는 손으로 만드는 것 못지않은 시간과 시험이 필요합니다.

참고 자료

함께 읽으면 좋은 글