Zero-Screen Dungeon Master: The Voice-Only RPG Where Your Real Walk Drives the Story
화면 없이 걷는 만큼 진행되는 음성 RPG, Zero-Screen Dungeon Master
Zero-Screen Dungeon Master는 GPS로 걷는 거리를 측정해 이야기를 진행하는 음성 중심 RPG입니다. React PWA와 로컬 Gemma 기반 스토리 생성기를 결합하고, 오프라인 사용과 화면을 보지 않는 조작을 목표로 설계했습니다.
- 주제
AI 요약
Zero-Screen Dungeon Master(ZSDM)는 산책 중 화면을 들여다보지 않아도 이야기를 즐기도록 만든 음성 중심 RPG입니다. 사용자는 모험을 고른 뒤 이어폰을 끼고 휴대전화를 주머니에 넣습니다. GPS가 이동 거리를 측정하고, 약 80m마다 이야기 구간을 재생합니다. 선택지가 나오면 음성으로 두 갈래를 안내하고 휴대전화를 꺼내지 않은 채 화면 왼쪽이나 오른쪽을 눌러 선택합니다. 산책이 끝나면 화면이 꺼져 있던 시간과 켜져 있던 시간을 바탕으로 ‘Touch Grass Score’를 보여줍니다.
PWA와 위치 추적
웹 앱은 React와 Vite로 만들었으며 서비스 워커를 사용해 오프라인에서도 작동하도록 구성했습니다. 음성 안내에는 브라우저의 Web Speech API를 사용합니다. 별도 음성 API나 클라우드 요청 없이 기기 음성으로 내레이션을 재생하고, Web Audio API의 오실레이터로 효과음도 생성합니다.
위치 추적은 navigator.geolocation.watchPosition으로 구현했습니다. Haversine 공식을 적용해 이동 거리를 누적하고 GPS 오차와 비정상적인 속도 변화를 걸러냅니다. 위치 정확도가 35m보다 낮거나 6m/s를 넘는 급격한 이동값은 제외합니다. Screen Wake Lock API로 산책 중 브라우저가 백그라운드 오디오를 중단하지 않게 하고, 주머니 안에서 조작하도록 화면 양쪽에 큰 터치 영역을 뒀습니다. 진동 패턴도 선택 피드백으로 활용합니다.
로컬 AI 스토리 생성
스토리 생성 도구인 Story Forge는 Ollama에서 Gemma를 로컬 실행합니다. Zod 스키마로 이야기 JSON을 검사하며, 각 모험은 체크포인트와 두 가지 선택지, 세 가지 결말을 갖춘 방향 비순환 그래프(DAG) 형태를 따릅니다. 모델이 잘못된 JSON을 만들거나 그래프 참조를 깨뜨리면 검증 오류를 모델에 돌려보내 자동 수정을 시도합니다.
배포된 PWA에는 ‘The Whispering Canopy’, ‘Signal in the Rain’, ‘The Forgotten Campus Bell’ 등 Gemma가 생성한 모험 세 편을 포함합니다. JSON 가져오기 기능으로 다른 사용자가 만든 이야기도 인터넷 연결 없이 불러올 수 있습니다. 글에서 제시한 스키마는 체크포인트 거리를 기본 80m로 설정하고, 체크포인트를 최소 3개 요구합니다.
개인정보와 접근성
글은 위치 처리와 음성 합성을 기기 안에서 수행해 GPS 데이터가 외부로 전송되지 않는다고 설명합니다. 로컬 모델 실행과 정적 JSON 스토리로 원격 산책로에서도 네트워크 의존을 줄이고, API 사용량에 따른 비용도 없애려는 설계입니다. 작성자는 걸음 수와 나침반을 GPS 불확실성의 대안으로 검토하고 있으며, 화면 읽기 사용자 대상 테스트는 아직 충분히 진행하지 않았다고 답했습니다. 산책 테스트 항목에는 580m를 9분 동안 걸어 화면 꺼짐 점수 94%를 얻었다는 예시가 들어 있지만, 장소와 날씨 등 일부 항목은 대괄호 안의 예시 문구로 남아 있습니다.
dev.to 반응
- @baumgaerben — 음성만 쓰는 RPG라는 제약은 상태, 진행 상황, 공간 인식을 시각적 단서 없이 전달하는 방식을 다시 생각하게 합니다. GPS 오차나 실내 구간 때문에 걷기와 이동의 연결이 끊길 때 위치 문제는 어떻게 처리하나요? 대안으로 걸음 수와 나침반 방향을 쓰나요, 아니면 위치가 불확실해도 자연스럽게 이어지는 이야기 구간을 설계하나요? 음성 구조도 궁금합니다. 절차적으로 내레이션을 스트리밍하나요, 미리 만든 구간을 재생하나요? 즉석 생성이라면 사용자가 좌표에 도착한 뒤 이야기가 반응하기까지의 지연이 사용 경험을 크게 해칠 수 있습니다. 어느 정도 지연까지 플레이할 만하다고 보나요? 접근성 측면도 기대됩니다. 화면 읽기 사용자는 이미 오디오 단서로 공간을 파악합니다. 해당 사용자들과 테스트했나요? 음성 중심 설계가 단순한 특징을 넘어 실제로 포용적인 사례가 될 수도 있습니다.
- @vidisha_gupta_ — 세심한 의견 감사합니다! 위치가 불확실할 때 걸음 수와 나침반을 대안으로 쓰는 방안을 검토하고 있습니다. 중단이 생겨도 이야기 흐름이 자연스럽도록 만드는 방법도 살펴보고 있습니다. 오디오는 반응성을 높이기 위해 짧은 이야기 구간을 사용하는 쪽으로 생각하고 있습니다. 화면 읽기 사용자들과 충분히 테스트하지는 않았지만, 접근성이 이 아이디어의 가장 의미 있는 측면이 될 수 있다는 의견에 동의합니다.
원문: dev.to / 번역·요약: Trawling