본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 23. 10:33

AI 코딩 에이전트를 할 일 목록(Todo) 앱으로 벤치마킹하는 것을 멈추세요. 대신 MMO를 만들게 하세요.

요약

단순한 Todo 앱 대신 복잡한 MMO 개발을 통해 AI 코딩 에이전트의 성능을 스트레스 테스트한 사례를 소개합니다. Claude 3.5 Sonnet을 활용해 48시간 만에 플레이 가능한 수준의 오픈 소스 브라우저 MMO인 'World of ClaudeCraft'를 구축했습니다.

핵심 포인트

  • MMO는 실시간 네트워킹, 경제, 보안 등 복잡한 하위 시스템을 포함한 최적의 AI 테스트베드임
  • Claude 3.5 Sonnet을 활용해 48시간 만에 플레이 가능한 MMO 기반 구축 성공
  • 9개 클래스, 90개 퀘스트 등 높은 완성도를 갖춘 오픈 소스 프로젝트 공개
  • 단순 스캐폴딩을 넘어선 복잡한 소프트웨어 아키텍처 설계 능력 검증

할 일 목록(todo) 앱의 스캐폴딩(scaffold)을 할 수 있는 코딩 에이전트는 더 이상 흥미롭지 않습니다.

대신 MMO를 주십시오.

온라인 월드는 단 하나의 기능이 아닙니다. 그것은 실시간 네트워킹(real-time networking), 지속적인 상태(persistent state), 전투 수학(combat math), 캐릭터 성장(character progression), 인벤토리(inventories), 경제(economies), 소셜 시스템(social systems), 콘텐츠(content), 배포(deployment), 보안(security), 그리고 서버가 제어권을 유지하는 동안 응답성을 유지해야 하는 클라이언트(client) 간의 충돌입니다.

모든 하위 시스템(subsystem)은 다른 모든 하위 시스템을 망가뜨릴 수 있습니다.

이것이 바로 MMO가 AI 지원 소프트웨어 개발(AI-assisted software development)을 위한 매우 유용한 스트레스 테스트(stress test)인 이유이며, 우리가 주말 동안 MMO를 구축해 보기로 결정한 이유입니다.

그 결과물은 World of ClaudeCraft, 무료 오픈 소스 브라우저 MMO였습니다.

트레일러가 아닙니다. 생성된 스크린샷도 아닙니다. 적이 한 명뿐인 단일 방 데모도 아닙니다.

브라우저에서 접속할 수 있는 라이브 상태의 지속적인 월드입니다.

주말 동안 만들어진 것 — 그리고 그 이후

Anthropic의 Claude 3.5 Sonnet(원문 오기: Claude Fable 5로 추정되나 원문 유지)을 활용한 48시간의 실험이 플레이 가능한 기반을 만들어냈습니다. 이후 이 프로젝트는 9개의 클래스, 3개의 오픈 존, 약 90개의 퀘스트, 인스턴스 던전(instanced dungeons), 보스 메커니즘(boss mechanics), 파티(parties), 거래(trading), 결투(duels), 랭크 PvP(ranked PvP), 지속적인 캐릭터(persistent characters), 오프라인 플레이, 모바일 컨트롤, 그리고 14개의 로케일(locales)을 갖춘 레벨 1~20 플레이 가능 월드로 성장했습니다.

독립 MMO 전문 매체인 MMORPG.com은 이를 **“놀라울 정도로 완성도가 높다”**고 평가하며, 훨씬 더 긴 개발 주기를 가졌음에도 불구하고 상태가 더 좋지 않은 스튜디오 데모들을 플레이해 보았다고 언급했습니다.

그러한 외부의 반응은 중요합니다. 하지만 그것이 가장 흥미로운 부분은 아닙니다.

가장 흥미로운 부분은 여러분이 코드를 직접 검사할 수 있다는 점입니다.

GitHub logo
levy-street / world-of-claudecraft

World of ClaudeCraft

직접 제작된 월드에서 퀘스트를 수행하고, 그룹을 맺고, 레이드(raid)를 하세요. 브라우저에서 무료로 즐길 수 있습니다. 오픈 소스, web3, 그리고 지금 바로 온라인에서 플레이 가능합니다.

CI
TypeScript
Three.js
Vite
Vitest
PostgreSQL
Gymnasium
License: MIT
Version
PRs welcome
Discord

English · Español · 스페인어 (España) · 프랑스어 · 프랑스어 (캐나다) · 이탈리아어 · 독일어 · 간체 중국어 · 번체 중국어 · 한국어 · 일본어 · 포르투갈어 (브라질) · [러시아어](https://github.com/levy-street/world-of-claudecraft/docs/i18n/README.ru_RU.md

지금 바로 플레이하기(https://worldofclaudecraft.com/) · 나만의 월드 호스팅하기(https://github.com/levy-street/world-of-claudecraft#host-your-own-world-one-command) · 에이전트 훈련시키기(https://github.com/levy-street/world-of-claudecraft#train-an-agent-headless-rl) · Web3(https://github.com/levy-street/world-of-claudecraft#web3) · 기여하기(https://github.com/levy-street/world-of-claudecraft/CONTRIBUTING.md) · Discord(https://discord.gg/GjhnUsBtw)

World of ClaudeCraft title screen

이것이 무엇인가요

World of ClaudeCraft는 브라우저에서 바로 플레이할 수 있고, 단 하나의 명령어로 스스로 호스팅할 수 있으며, 심지어 AI 에이전트를 훈련시켜 플레이하게 할 수 있는 완전한 클래식 시대의 MMO입니다. 무료이며 오픈 소스이고 worldofclaudecraft.com에서 라이브로 운영되고 있습니다.

하나의 공유된 월드가 세 곳에서, 모두 동일한 게임 코어로부터 실행됩니다:

  • 오프라인 브라우저 월드: 'Play Offline'을 클릭하면 접속하는 곳,
  • 공식 멀티플레이 서버: Postgres 기반 계정들이 라이브 월드를 공유하는 곳,
  • 헤드리스 RL(headless RL)

GitHub에서 보기

이 저장소는 MIT 라이선스가 적용되어 있습니다. 사용자는 게임을 로컬에서 실행하거나, 자신만의 영구적인 월드를 호스팅하거나, 실제 시뮬레이션에 대항하여 에이전트를 훈련시키거나, 프로젝트를 포크(fork)하여 규칙을 변경할 수 있습니다.

이것이 World of ClaudeCraft를 단순한 AI 데모 이상의 것으로 만듭니다. 검증 가능한 엔지니어링 아티팩트(engineering artifact)로 만듭니다.

아키텍처가 진짜 이야기입니다

이 프로젝트는 하나의 규칙으로 묶여 있습니다:

결정론적인 게임 시뮬레이션이 하나 존재하며, 모든 호스트가 그것을 사용합니다.

                         ┌─────────────────────────────┐
                         │  결정론적 TypeScript   │
                         │     시뮬레이션: src/sim     │
... 

오프라인 브라우저 월드, 멀티플레이 서버, 그리고 강화학습(reinforcement-learning) 환경은 게임의 세 가지 재구현본을 포함하고 있지 않습니다. 그들은 동일한 코어를 호스팅합니다.

렌더러(renderer)와 HUD는 구체적인 구현체(concrete implementation) 대신 IWorld 인터페이스와 통신합니다. 오프라인 상태에서는 로컬 시뮬레이션이 해당 인터페이스를 충족합니다. 온라인 상태에서는 클라이언트 측 미러(client-side mirror)가 서버 스냅샷(server snapshots)을 소비합니다. 두 경우 모두 프레젠테이션 레이어(presentation layer)는 월드(world)를 볼 뿐, 그 뒤의 메커니즘을 보지 않습니다.

한편, 멀티플레이어 서버는 권한(authoritative)을 가집니다. 클라이언트는 이동 의도와 명령을 보냅니다. 서버는 전투 굴림(combat rolls), 전리품(loot), 퀘스트 인정(quest credit), 거래(trades), 상인 트랜잭션(vendor transactions), 그리고 진행 상황(progression)을 해결합니다. PostgreSQL이 캐릭터 상태를 영속화(persist)하며, 브라우저가 그 결과를 렌더링합니다.

이러한 분리는 화려하지는 않지만, 프로토타입이 코드 컨페티(code confetti, 파편화된 코드)가 되지 않고 계속 성장할 수 있었던 이유입니다.

AI 출력은 저렴합니다. 아키텍처 불변량(Architectural invariants)은 가치 있습니다.

결정론(Determinism)은 승수(force multiplier)가 되었습니다

시뮬레이션은 실제 시간(wall-clock time)이나 Math.random()에 의존하지 않습니다. 환경에 시드(seed)를 심고 동작을 재현하면 에피소드를 재현할 수 있습니다.

이 단일한 제약 조건은 여러 가지 이점을 만들어냅니다:

  • 오프라인 및 온라인 전투가 동일한 규칙을 따를 수 있습니다.
  • 테스트가 간헐적인 상태(intermittent state)를 쫓는 대신 실패를 재현할 수 있습니다.
  • 헤드리스 에이전트(headless agent)가 단순화된 포트가 아닌 실제 게임을 대상으로 학습할 수 있습니다.
  • 자동화된 파티(Automated parties)가 던전을 클리어하며 전투, 위협(threat), 치유, 전리품, 그리고 인카운터 스크립팅(encounter scripting) 전반에 걸친 회귀(regressions)를 노출할 수 있습니다.
  • 미적 시스템(Cosmetic systems)은 시뮬레이션 외부에 머물 수 있습니다. 생물군계(biome) 날씨조차 렌더링 전용이므로, 비가 실수로 게임 상태를 변경할 수 없습니다.

이것이 바로 사람들이 생성된 코드 라인 수를 세는 방식으로 AI 코딩을 평가할 때 놓치게 되는 세부 사항입니다.

더 나은 질문은 이것입니다: 시스템이 검증하기 더 쉬워졌는가?

절차적 생성(Procedural generation)은 눈속임이 아니라 범위 전략(scope strategy)이었습니다

주말 동안 만드는 MMO는 전통적인 에셋 파이프라인(asset pipeline)을 기다릴 여유가 없습니다.

World of ClaudeCraft의 풍경, 지형, 날씨, 주문 아이콘(spell iconography), 애니메이션, 사운드의 상당 부분은 런타임(runtime)에 생성됩니다. 또한 이 프로젝트는 적절한 경우 출처가 명시된 자유 라이선스 에셋을 사용합니다.

그러한 선택은 조정 비용 (coordination costs)을 줄이고 반복 (iteration) 과정을 코드에 가깝게 유지했습니다. 개발자는 별도의 제작 대기열 (production queue)을 기다리지 않고도 바이옴 (biome), 생물군 (creature family), 아이콘 시스템, 또는 사운드 생성기 (sound generator)를 변경할 수 있었습니다.

이는 또한 예상치 못한 이점을 가져왔습니다. 기여자 (contributors)들이 코드를 통해 세상의 더 많은 부분을 변경할 수 있게 된 것입니다.

절차적 생성 (Procedural generation)이 아트 디렉션 (art direction)을 없앤 것은 아닙니다. 그것은 아이디어와 테스트 가능한 결과 사이의 거리를 압축했습니다.

진정한 코딩 벤치마크는 여러 측면에 걸친 파급 효과가 필요합니다

할 일 목록 (todo) 앱은 보통 국소적인 정확성 (local correctness)에 보상을 줍니다. 필드를 추가하고, 폼 (form)을 업데이트하고, 스키마 (schema)를 변경하고, 테스트를 통과하는 식입니다.

반면 MMO는 국소적인 사고 (local thinking)에 벌을 줍니다.

클래스 능력 (class ability) 하나를 추가하려면 다음과 같은 요소들을 건드려야 할 수도 있습니다:

  1. 시뮬레이션 규칙 (simulation rules)
  2. 자원 비용 및 재사용 대기 시간 (resource costs and cooldowns)
  3. 타겟팅 및 사거리 검증 (targeting and range validation)
  4. 서버 명령 처리 (server command handling)
  5. 클라이언트 표현 및 피드백 (client presentation and feedback)
  6. 액션 바 및 툴팁 (action bars and tooltips)
  7. 지속성 (persistence)
  8. 현지화 (localization)
  9. 봇 및 자동화 테스트 (bots and automated tests)
  10. PvE 및 PvP 밸런스 (PvE and PvP balance)

이 지점이 바로 장기적 관점의 코딩 에이전트 (long-horizon coding agents)가 흥미로워지는 부분입니다. 과제는 단순히 10개의 파일을 생성하는 것이 아닙니다. 과제는 제품이 밑바닥에서 계속 변하는 동안, 10개의 파일 전체에 걸쳐 일관된 모델 (coherent model)을 유지하는 것입니다.

World of ClaudeCraft는 AI 지원 개발을 측정하는 더 유용한 방법을 제시합니다:

모델이 얼마나 많은 코드를 작성했는지 묻지 마세요. 인간 팀이 시간당 얼마나 많은 중대한 결정 (consequential decisions)을 검증할 수 있었는지 물으세요.

훌륭한 테스트 하네스 (harnesses), 결정론적 상태 (deterministic state), 명시적 인터페이스 (explicit interfaces), 빠른 테스트, 브라우저 자동화 (browser automation), 그리고 서버 권한 (server authority)이 이 수치를 높여줍니다. 프롬프트의 영리함 (prompt cleverness)만으로는 불가능합니다.

AI가 한 일 — 그리고 하지 않은 일

Claude는 구현 속도를 극적으로 가속화했습니다. 의도적으로 비현실적이었던 범위를 단 한 번의 주말 만에 플레이 가능한 기반으로 바꾸는 데 도움을 주었습니다.

그것이 “프롬프트 하나가 게임 스튜디오를 대체했다”는 것을 의미하지는 않습니다.

모델이 왜 세상이 존재해야 하는지를 결정한 것은 아닙니다. 모델이 허용 가능한 게임 플레이 느낌 (game feel)을 정의한 것도 아닙니다. 모델이 아키텍처 불변량 (architectural invariants)을 소유하거나, 무엇을 쳐낼지 선택하거나, 전투가 재미있는지 판단하거나, 라이브 서비스 (live service)를 운영하거나, 커뮤니티의 기여를 검토하거나, 무엇이 출시될 가치가 있는지 결정한 것도 아닙니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0