OpenGame 소개
게임 개발은 창의적 설계와 까다로운 소프트웨어 엔지니어링이 겹치는 영역입니다. 게임 엔진과 실시간 루프, 여러 파일에 걸쳐 단단히 얽힌 상태를 동시에 조율해야 합니다. 코드 에이전트가 고립된 프로그래밍 과제는 곧잘 풀면서도, 고수준 설계로부터 완전히 플레이 가능한 게임을 만들라고 하면 파일 간 불일치, 끊어진 씬 연결, 논리적 비일관성 앞에서 무너진다는 점이 문제로 지적되어 왔습니다.
OpenGame은 이 간극을 메우기 위해 만들어진, 끝에서 끝까지(end-to-end) 웹 게임 생성을 목표로 하는 오픈소스 에이전트 프레임워크입니다. 홍콩중문대학교 MMLab(CUHK MMLab) 연구진이 공개했고, 고수준 프롬프트 하나를 받아 플레이 가능한 웹 게임을 생성합니다. 저자들은 이를 "프롬프트로부터 끝까지 웹 게임을 만드는 최초의 오픈소스 에이전트 프레임워크" 라고 설명합니다.
OpenGame의 핵심은 세 가지로 정리됩니다. 재사용 가능한 능력인 게임 스킬(Game Skill), 게임 엔진에 특화된 코드 LLM인 GameCoder-27B, 그리고 생성된 게임의 플레이 가능성을 채점하는 평가 파이프라인 OpenGame-Bench입니다. 본 게시물에서는 이 세 요소와 설치·사용법을 정리합니다.
OpenGame의 핵심: 게임 스킬
OpenGame의 에이전트는 게임 스킬(Game Skill)이라는 재사용 가능한 능력으로 부트스트랩됩니다. 게임 스킬은 두 부분으로 나뉩니다.
- 템플릿 스킬(Template Skill): canvas, Phaser, three.js 같은 적절한 엔진과 템플릿을 고르고, 이후 수정에도 일관성이 유지되도록 안정적이고 관습적인 프로젝트 구조를 잡아 줍니다. 저자들은 이 스킬이 경험으로부터 프로젝트 골격(skeleton) 라이브러리를 키워 간다고 설명합니다.
- 디버그 스킬(Debug Skill): 게임을 샌드박스에서 실행해 통합 오류와 콘솔 오류, 깨진 상호작용을 잡아내고, 게임이 끝까지 플레이될 때까지 이를 체계적으로 해결합니다. 검증된 수정 사항을 살아 있는 프로토콜로 유지한다는 점이 특징입니다.
이 두 스킬이 합쳐지면서 에이전트는 "그럴듯한 코드를 쓰는" 단계를 넘어 "동작하는 게임을 출시하는" 단계로 이동합니다. 고립된 문법 버그를 임시로 때우는 대신, 안정적인 아키텍처를 세우고 통합 오류를 계통적으로 고치는 것이 설계의 핵심입니다.
OpenGame의 6단계 에이전트 워크플로
게임 스킬이 재사용 가능한 능력을 제공한다면, 한 편의 게임을 끝까지 만들어 내는 것은 긴 호흡의 구조화된 워크플로입니다. 논문은 순진한 단대단(end-to-end) 생성이 논리 환각, 맥락 표류, 깨지기 쉬운 통합으로 무너진다고 지적하며, OpenGame 에이전트를 여섯 단계로 운영합니다. 각 단계 사이의 상태는 전용 todo_write 도구로 추적됩니다.
- 초기화와 분류(Initialization and Classification):
classify-game-type도구로 작업을 분류하되, 모호한 장르명 대신 물리 우선 분류(Physics-First Classification) 규칙을 써서 물리적 제약과 공간 메커니즘으로 게임을 다섯 아키타입(platformer, top_down, grid_logic, tower_defense, ui_heavy)에 매핑합니다. - 스캐폴딩(Scaffolding): 선택된 아키타입의 모듈 코드베이스와 아키텍처 문서를 작업 공간에 복사해 안정적인 구조적 기반을 만듭니다.
- 설계 문서 생성(Design Generation):
generate-gdd로 아키타입별 API 제약을 반영한 기술 게임 디자인 문서(GDD)를 만들고, 거기서 파일 단위 작업 목록을 뽑아냅니다. - 멀티모달 에셋 합성(Asset Synthesis):
generate-game-assets로 배경, 캐릭터 애니메이션, 정적 아이템, 오디오를 생성하고, 타일 기반 게임은generate-tilemap으로 ASCII 레이아웃을 JSON 타일맵으로 변환합니다. 산출된 정확한 텍스처와 에셋 키를 기록해 구현 단계의 에셋 참조 환각을 줄입니다. - 맥락 인식 코드 구현(Context-Aware Code Implementation): 맥락 과부하를 막기 위해 API 요약, 수정 대상 소스 파일, 구현 가이드 순서로 읽는 3단 읽기 전략(Three-Layer Reading Strategy)을 쓰고, 처음부터 새로 짜는 대신 템플릿 파일을 복사해 지정된 훅 메서드만 재정의하는 템플릿 메서드 패턴(Template Method Pattern)으로 구현합니다.
- 검증과 자기 교정(Verification and Self-Correction):
npm run build과npm run test를 헤드리스 브라우저에서 실행하고, 빌드나 테스트가 실패하면 컴파일러 출력을 파싱해 문제 스크립트를 찾아 게임이 플레이 가능해질 때까지 반복 수리합니다.
OpenGame의 GameCoder-27B와 OpenGame-Bench
이 프레임워크를 떠받치는 모델이 GameCoder-27B 입니다. Qwen3.5-27B 백본 위에 게임 엔진을 능숙하게 다루도록 특화한 코드 LLM으로, 지속적 사전학습(continual pre-training, CPT), 지도 미세조정(SFT), 실행 기반 강화학습(execution-grounded reinforcement learning)의 3단계 파이프라인으로 학습됩니다. CPT 단계는 GitHub의 Phaser 및 JavaScript/TypeScript 게임 저장소와 공식 문서로 게임 루프, 물리, 상태 관리 패턴에 대한 사전 지식을 쌓고, 미세조정은 엔진 API와 프로젝트 스캐폴딩, 버그 수정 워크플로를 다루는 합성 질의응답 데이터로 이뤄집니다. 강화학습은 게임 전체가 아니라 충돌 감지나 상태 기계 전이 같은 단일 파일 단위 모듈을 합성하게 한 뒤, 단위 테스트 통과율로 보상을 계산해 실행 가능한 논리에 모델을 정착시킵니다.
상호작용형 게임의 플레이 가능성을 검증하는 일은 정적 코드를 검사하는 것보다 본질적으로 어렵습니다. OpenGame-Bench 는 이를 위해 다섯 장르에 걸친 150개의 자기완결적 게임 프롬프트로 생성된 게임을 동적으로 실행하고 스크립트로 조작하면서, 헤드리스 브라우저 실행과 VLM(시각 언어 모델) 심판을 통해 빌드 건전성(Build Health), 시각적 사용성(Visual Usability), 의도 정렬(Intent Alignment)을 0에서 100 척도로 채점합니다. 확률성을 고려해 각 과제를 서로 다른 시드로 세 번 평가하고 평균을 보고합니다. Claude Sonnet 4.6를 추론 엔진으로 결합한 OpenGame은 빌드 건전성 72.4, 시각적 사용성 67.2, 의도 정렬 65.1을 기록하며 새로운 최고 성능(SOTA)을 세웠고, 가장 강력한 기준선인 Cursor(Claude Sonnet 4.6)를 세 지표에서 각각 5.6, 5.8, 6.2점 앞섰습니다. 자체 학습한 GameCoder-27B만으로도 63.9 / 57.0 / 54.1을 기록하며 모든 직접 LLM 기준선을 빌드 건전성과 의도 정렬에서 앞섭니다. 다만 저자들은 전체 OpenGame조차 가중 메커니즘 요구사항의 약 34.9%를 완전히 충족하지 못한다며, 모호한 자연어를 일관된 멀티파일 시스템으로 옮기는 일의 본질적 어려움을 함께 짚습니다. 평가 파이프라인은 곧 공개될 예정이라고 밝히고 있습니다.
OpenGame은 qwen-code의 에이전트 런타임과 CLI 구조 위에 게임 스킬과 GameCoder-27B 통합, OpenGame-Bench 도구를 더해 만들어졌으며, 게임 렌더링과 메커니즘에는 Phaser를 사용합니다.
OpenGame 설치 및 사용법
npm 릴리스를 준비하는 동안에는 소스에서 설치하는 방법이 권장됩니다. Node.js 20 이상이 필요합니다.
git clone https://github.com/leigest519/OpenGame.git
cd OpenGame
npm install
npm run build
npm link
이렇게 하면 opengame 명령이 PATH에 노출됩니다. OpenGame은 현재 헤드리스 모드에서 명령줄로 구동되며, 한 번의 프롬프트를 주면 게임을 끝까지 생성합니다.
# 새 게임을 둘 폴더를 만들고 그 안에서 실행합니다
mkdir -p games/my-game && cd games/my-game
# 프롬프트 하나로 게임을 생성합니다
opengame -p "Build a Snake clone with WASD controls and a dark theme." --yolo
헤드리스 실행은 에이전트가 파일을 쓰고 수정할 수 있도록 승인 모드를 자동으로 auto-edit 로 올립니다. 셸 명령은 기본적으로 비활성화되어 있으며, 에이전트가 셸까지 실행하게 하려면 --yolo(또는 --approval-mode yolo)를 전달합니다. 에이전트 런타임은 OpenAI 호환 API를 지원하므로 OPENAI_API_KEY 등을 설정해 사용하고, 로컬에서 GameCoder-27B를 띄워 모델로 바꿔 끼울 수 있습니다.
OpenGame의 라이선스
OpenGame은 Apache License 2.0으로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.
OpenGame 프로젝트 페이지와 데모
https://www.opengame-project-page.com/
OpenGame 논문
OpenGame 프로젝트 GitHub 저장소
더 읽어보기
-
Sandbox Runtime(srt): Anthropic이 공개한 AI 에이전트를 위한 안전하고 가벼운 코드 실행 환경
-
장시간 자율 코딩을 위한 에이전트 하네스 설계: GAN에서 영감 받은 멀티 에이전트 아키텍처 (feat. Anthropic)
-
Vibe Coding XR: Gemini와 XR Blocks로 자연어만으로 XR 앱을 60초 만에 프로토타이핑하기 (feat. Google Research)
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다!
텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. ![]()
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()

