Wave Function Collapse 알고리즘을 활용한 절차적 헥스 맵(Hex Map) 생성기 구축

Felix Turner가 개발한 이 프로젝트는 Maxim Gumin의 Wave Function Collapse(WFC) 알고리즘을 활용하여 약 4,100개의 헥스 셀로 구성된 중세 섬 지도를 20초 만에 생성합니다. Three.js WebGPU와 TSL 쉐이더를 기반으로 30종의 타일, 6개 회전 방향, 5단계 고도를 조합해 셀당 900개의 상태를 처리하며 대규모 그리드 생성을 위한 모듈형 WFC 방식을 채택했습니다.

AI 요약

Felix Turner는 어린 시절 AD&D(Advanced Dungeons & Dragons) 던전 마스터 가이드의 랜덤 테이블에서 영감을 받아, Three.js WebGPU와 TSL 쉐이더를 사용한 절차적 헥스 맵 생성기를 구축했습니다. 이 시스템은 Maxim Gumin이 고안한 Wave Function Collapse(WFC) 알고리즘을 핵심 기술로 사용하며, 총 19개의 그리드에 걸친 4,123개의 헥스 셀을 약 20초 만에 생성해냅니다. 기존 사각형 맵과 달리 6개의 변을 가진 헥스 타일을 사용하여 제약 조건을 50% 늘렸으며, 30가지 타일 유형과 6개 회전, 5단계 고도를 조합해 셀마다 900개의 가능성을 계산합니다. 특히 대형 그리드에서 발생할 수 있는 알고리즘의 '교착 상태(Dead end)' 문제를 해결하기 위해 지도를 여러 구역으로 나누어 처리하는 모듈형 접근 방식을 도입했습니다. 이를 통해 도로, 강, 해안선, 숲 등이 포함된 정교한 중세 섬 지도를 결정론적으로 생성할 수 있게 되었습니다.

핵심 인사이트

  • 대규모 연산 효율성: Maxim Gumin의 WFC 알고리즘을 기반으로 하여, 19개 그리드 내 4,123개의 헥스 셀을 20초 내외로 자동 생성하는 성능을 구현함.
  • 복잡한 상태 조합: 30종의 타일 유형에 6개 회전 방향과 5단계 고도를 적용하여, 셀 하나당 최대 900개의 가능한 상태(states)를 연산함.
  • 확장성 문제 해결: 217개 셀의 소형 그리드는 실패율이 낮지만 4,123개 셀의 대형 그리드에서는 오류가 잦아지는 특성을 발견하고, 이를 해결하기 위해 모듈형(Modular) WFC 방식을 도입함.

주요 디테일

  • 기술 스택: Three.js WebGPU와 최신 TSL(Three.js Shading Language) 쉐이더를 활용하여 웹 브라우저 환경에서 고성능 절차적 렌더링을 실현함.
  • WFC 알고리즘 작동 원리: 모든 셀이 중첩 상태에서 시작하여 엔트로피가 가장 낮은(제약이 많은) 셀부터 확정(Collapse)하고, 그 결과를 주변으로 전파(Propagate)하는 연쇄 과정을 거침.
  • 타일 데이터 구조: 각 타일은 'ROAD_D'와 같은 고유 명칭과 함께 6개 방위(NE, E, SE, SW, W, NW)별 지형 타입 및 가중치(weight) 정보를 JSON 형태로 포함함.
  • 디자인 제약 조건: 사각형 타일보다 50% 더 많은 6개의 모서리 제약 조건을 관리해야 하는 '조합 폭발(Combinatorial explosion)' 문제를 하드웨어 가속을 통해 해결함.

향후 전망

  • 웹 기반 PCG 발전: WebGPU와 TSL을 활용한 이번 사례는 향후 웹 환경에서도 고사양의 절차적 콘텐츠 생성(PCG) 게임이 원활하게 구동될 수 있음을 증명함.
  • 알고리즘 최적화: 대규모 맵 생성 시의 교착 상태를 해결한 모듈형 WFC 기법은 전략 시뮬레이션 및 오픈월드 게임의 맵 생성 효율성을 크게 개선할 것으로 기대됨.
Share

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...

Wave Function Collapse 알고리즘을 활용한 절차적 헥스 맵(Hex Map) 생성기 구축 | paper!