게임 Lobsters · 3일 전

고전 둠 맵 데이터를 뽑아서 레이저 커팅 모형으로 만든 능력자 개발자.txt

핵심 요약
  • 한 개발자가 고전 게임 둠의 WAD 데이터 포맷을 러스트(Rust)로 직접 파싱해 맵 구조를 추출했습니다.
  • 바닥 높이별로 레이어를 나누고 외곽 절단선과 내부 음각선을 분리해 레이저 커팅용 SVG 벡터 파일로 변환했습니다.
  • 완성된 모형을 미리 보려고 3D 엔진 프리뷰와 삼각화 작업까지 시도하는 등 기하학적 난관을 해결해 나간 과정을 상세히 공유했습니다.
요약 고전 명작 FPS 게임 '둠(DOOM)'의 맵 데이터를 직접 파싱해 레이저 커팅용 벡터 그래픽(SVG)으로 변환한 개발자의 작업기가 해외 개발 커뮤니티에서 눈길을 끌었습니다. 둠은 초기 설계부터 모딩을 염두에 두고 제작되어 게임 실행 파일과 별도의 '.WAD' 데이터 팩으로 구성되어 있는데, 작성자는 러스트(Rust) 언어와 파서 라이브러리인 'nom'을 사용해 WAD 파일 내의 정점(VERTEXES), 라인(LINEDEFS), 벽면(SIDEDEFS), 섹터(SECTORS) 등의 데이터를 추출했습니다. 이렇게 추출한 비정렬 선분 데이터를 폴리곤 합집합과 중복 모서리 제거 과정을 거쳐 레이저 커팅이 가능한 벡터 데이터로 정리했습니다. 실제 입체 모형으로 조립하기 위해서는 바닥 높이(floor height)에 따라 맵을 여러 층(레이어)으로 나누는 작업이 핵심이었습니다. 작성자는 E1M1 맵을 기준으로 높이 구간을 [-70, -24, 0, 40] 등으로 설정해 층을 분류했으며, 모형 조립 시 접착 위치를 잡기 위한 가이드 라인(포지셔닝 라인)과 음각으로 새길 내부 라인, 외곽 절단 라인을 각각 다른 색상으로 구분해 SVG로 출력했습니다. 검증 과정에서는 균일한 색상 분포를 위해 할톤 시퀀스(Halton sequence)를 활용해 레이어별 색상을 무작위 생성하기도 했습니다. 작성자는 단순히 2D 도면 출력에 그치지 않고, 적층된 레이어를 3D로 미리 확인하기 위해 러스트 기반 게임 엔진 'Bevy'로 시각화를 시도하다가 폴리곤 삼각화(Triangulation)라는 기하학적 난관에 부딪히는 등 덕심 가득한 개발 후기를 상세히 공유했습니다.
Sponsored · 광고