로컬 LLM이 던전 마스터를 맡는 셀프호스팅 멀티플레이어 텍스트 RPG 'Anyworld' 공개
원문 제목 — Anyworld, a self-hosted multiplayer text RPG where a local LLM is the Dungeon Master
📄 전문 번역
개발자가 로컬 LLM을 던전 마스터(DM)로 활용하는 브라우저 기반 멀티플레이어 텍스트 어드벤처 게임 Anyworld를 공개했다. 이 게임은 초기 AI Dungeon, 특히 브라우저 기반 무료 버전인 AI Dungeon 2에서 영감을 받았으며 싱글 플레이도 지원한다. 설정 방식은 간단하다. 한 명이 서버를 호스팅하고 llama.cpp로 모델을 구동하면(OpenAI 등 다른 클라우드 API도 지원하며 비영어권 플레이에 유리하다) 친구들은 브라우저 링크를 통해 참여한다. 호스트가 장면과 목표를 설정하고 플레이어들이 행동을 입력하면 LLM이 DM으로서 혼란을 판정하고 이야기를 이끈다. 호스트에게는 Python 활용 능력과 VPN, 포트 포워딩 같은 네트워킹 지식이 다소 필요하며, 개발자는 백엔드와 게임을 함께 담을 수 있는 Docker 도입도 검토 중이라고 밝혔다.
게임 방식을 보면, 플레이어들이 행동을 제출하면 모델이 라운드 전체를 한꺼번에 판정하는 진정한 멀티플레이어 해석이 이뤄지며 캐릭터 간 상호작용이나 서로의 방해도 실제로 반영된다. 행동 결과가 불확실할 때는 Python이 실제 난수(RNG) 계산으로 주사위를 굴리고, 모델은 그 확정된 결과를 받아 결과만 서사로 풀어낸다. 배경, 캐릭터, 시작 상태를 직접 작성하는 커스텀 시나리오를 지원하며 판타지에 국한되지 않는다. 게임 이벤트와 별도로 LLM이 읽지 못하는 OOC 파티 채팅이 제공되고, 호스트 외에는 아무것도 설치할 필요 없이 데스크톱과 모바일 브라우저에서 플레이할 수 있다.
DM 도구와 숨겨진 메커니즘도 갖춰져 있다. 호스트는 NPC 동기, 비밀 규칙, 이야기의 방향 같은 숨긴 정보를 모델에 제공할 수 있고, 게임당 하나의 숨겨진 확률 굴림(예: 플레이어가 건물에 들어가면 20% 확률로 건물이 무너진다)을 설정해 Python이 백그라운드에서 확률을 계산하고 트리거 시 모델이 계산 과정을 드러내지 않은 채 결과를 이야기에 녹여낸다. 컨텍스트 창을 예산화하고 구조화된 메모리 시스템을 사용해 오래된 라운드를 세계 상태, 플레이어 정보, 미해결 스레드로 압축하며, 요약을 감사하는 2차 모델 패스로 중요한 사실이 실수로 삭제되지 않도록 한다. OpenAI 백엔드 사용 시 시나리오를 작성한 언어를 서사와 결과가 따라가는 비영어권 플레이가 가능하지만, 로컬 llama.cpp 백엔드는 현재 영어 서사를 지시하도록 되어 있다. 연결이 끊긴 탭은 자동으로 재참여하고 실수로 창을 닫아도 미완료 행동과 기록이 보존되는 세션 복구 기능이 있으며, 실행 시 자체 서명 인증서를 생성해 암호화 연결을 지원하지만 참여자에게 보안 경고가 뜨는 단점이 있어 추후 더 견고한 방식을 개발할 계획이다.
아직 진행 중인 프로젝트로, 현재 서버는 한 번에 하나의 게임만 실행할 수 있고 서버를 재시작하면 진행 중인 세션이 사라진다(HTML/JSONL 트랜스크립트는 생성하지만 아직 불러올 수 있는 세이브 상태는 아니다). 전체적인 이야기 품질은 사용 모델과 설정에 크게 좌우된다. 개발자는 llama.cpp에 컨텍스트 크기 128k의 Gemma 4-26B-A4B Q4 모델을 사용했으며 DM 역할에 충분한 백엔드임을 확인했고, RTX 5070 Ti 16GB에서도 속도가 충분히 빨라 라운드 판정에 약 5초 정도밖에 걸리지 않는다고 밝혔다. 개발자가 추천한 모델은 gemma-4-26B-A4B-it-qat-uncensored-heretic-UDmerge-GGUF로, 지시를 잘 따르고 긴 컨텍스트에서도 줄거리를 잘 기억한다고 한다. Gemma 4 모델의 권장 파라미터는 temperature 1.0, top-p 0.95, top-k 20, min-p 0.0, presence-penalty 0.0, repeat-penalty 1.0이며, 저장소에는 구동 중인 모델이 게임의 요청을 얼마나 잘 따르는지 측정하는 벤치마크 파일도 포함되어 있다.
개발자는 게임 개발에 알리바바 클라우드의 Qwen 3.8 27b와 OpenAI의 GPT-5.6 Luna, GPT-6 Astra 모델의 도움을 받았다고 밝혔다. 실행 방법은 INSTALL.md 문서를 참고해 설정하고 구동하면 되며, README.md에 게임 작동 방식에 대한 세부 사항이 담겨 있다.
💬 주요 댓글 번역 (5)
🔍 루키 분석
로컬 LLM을 던전 마스터로 삼는 셀프호스팅 멀티플레이어 텍스트 RPG로, 주사위 판정과 숨겨진 확률 계산은 Python이 담당하고 서사만 LLM이 맡는 하이브리드 구조가 특징이다. 개발자는 llama.cpp와 컨텍스트 128k의 Gemma 4-26B-A4B Q4 모델을 RTX 5070 Ti 16GB에서 구동해 라운드 판정을 약 5초 만에 처리할 수 있었다고 밝혔다. Docker 패키징과 세이브 상태 로딩은 아직 계획 단계이며, OpenAI 백엔드 사용 시 비영어권 언어 플레이도 지원한다.
— 루키 · glm-5.3-flash:cloud
정말 멋져 보인다. 특히 멀티플레이어 판정을 처리한 방식이 인상적이다. 대부분의 AI 텍스트 어드벤처는 한 번에 플레이어 한 명의 행동만 처리하는데, 여러 명이 상호작용하거나 협력하려 할 때는 완전히 무너진다. 모델이 라운드 전체를 한꺼번에 처리하는 방식이 훨씬 낫다. Python이 실제 주사위 굴림과 숨겨진 확률을 계산하고 LLM은 서사만 담당하는 하이브리드 구조도 모델이 숫자를 환각하거나 부정 행위를 하는 것을 막아주기 때문에 분명 옳은 선택이다. llama.cpp 백엔드를 포함해 Docker화하면 접근성이 훨씬 좋아질 것이다.
댓글 감사하다! 맞다, 다양한 방식을 테스트해보며 같은 결론에 도달했다. Docker에 대해서도 동의하며, 조만간 작업해 볼 계획이다.
Dockerfile을 만들게 되면 이 커뮤니티에 후속 게시물을 꼭 올려달라. 이곳의 많은 사람들이 이런 프로젝트의 셀프호스팅은 좋아하지만 Python 환경 설정과 llama.cpp 의존성을 수동으로 맞추는 것은 싫어한다. 백엔드와 게임 루프를 하나의 컴포즈 파일에 담으면 게임 나이트의 인기 아이템이 될 것이다. 개발을 응원한다. 정말 유망한 프로젝트다.
감사하다! 그렇게 하겠다.
흥미롭다. 나도 비슷한 것을 만들었는데, 그래픽이 있는 더 심층적인 프로젝트다. OpenDungeonMaster라는 사이트다.