2026년에 「AI로 게임 만들기」에서 가장 흔한 실패는 모델이 약해서가 아닙니다. 첫날부터 Unity, Godot, Unreal 비교 글만 열어 두고, 스페이스 키를 눌렀을 때 움직이는 창 하나도 없는 상태로 시간을 보내는 경우가 훨씬 많습니다. 반대로 작은 pygame 창이나 브라우저 캔버스에서 사각형이 좌우로 움직이기 시작하면, 그다음부터 AI 협업은 「아이디어」가 아니라 「실행과 수정」의 문제로 바뀝니다. Claude Code는 터미널에서 동작하는 코딩 에이전트로, 파일을 수정하고 명령을 실행하며 스택 트레이스를 읽습니다. 게임 개발에 쓸 때 핵심은 한 번에 AAA급 타이틀을 요구하는 것이 아니라, 내 PC에서 실제로 돌아가는 스택을 먼저 고정한 뒤 게임 루프, 입력, 충돌을 작은 단계로 채워 나가는 것입니다. 이 가이드는 Node와 Claude Code 설치부터 선행 지식 없이 따라 할 수 있는 pygame 경로와 HTML5 Canvas 경로까지 자세히 다룹니다. 인수 기준은 단순합니다. 다른 사람이 README만 보고 게임을 실행할 수 있고, 핵심 루프를 최소 1분 이상 플레이할 수 있어야 합니다.
게임을 만들 때 AI보다 먼저 「스택」을 이야기하는 이유
예전 방식은 챗봇에게 「X 같은 게임」을 설명하고, 실행되지 않는 코드 덩어리를 붙여 넣는 것이었습니다. 더 나은 방식은 저장소를 진짜 엔지니어링 프로젝트로 다루는 것입니다. main.py 또는 index.html이 있고, 고정 프레임률 루프가 있으며, git 히스토리가 쌓여 있어야 합니다. Claude Code는 「파일 하나 수정 → 실행 → traceback 읽기 → 다시 수정」을 이런 프로젝트 안에서만 안정적으로 반복할 수 있습니다. 마찰은 모델 지능보다 실행 경계에서 생깁니다. 에이전트가 어느 작업 사본을 고치는지, 명령이 실제로 어디서 도는지, 전면 수정이 실패했을 때 commit으로 되돌릴 수 있는지가 관건입니다.
게임은 그래픽, 사운드, 물리, 레벨 데이터 때문에 일반 CRUD보다 더 지저분해지기 쉽습니다. 완전 초보라면 범위를 사각형 하나, 속도 벡터 하나, 점수 하나로 줄이세요. 2D 플랫포머나 벽돌깨기 클론만으로도 협업 리듬을 익히기에 충분하고, 3D, 멀티플레이, Steam 출시는 나중 과제입니다. 결국 iOS나 Unity 모바일 내보내기가 필요해지면 툴체인이 macOS를 요구합니다. 그때는 Linux에서 없는 Xcode를 찾지 말고 원격 Mac 대여를 계획하세요. 그 전까지 pygame이나 Canvas 연습은 지금 쓰는 노트북만으로도 충분합니다. 창 하나가 움직이기 전에는 엔진 논쟁이 학습을 가로막기만 합니다.
「작은 게임 스택」을 먼저 세 가지 묶음으로 나누기
유행 순위가 아니라 런타임, 렌더링, 배포 기준으로 분류하세요. 첫 번째 묶음은 스크립트 + 데스크톱 창(Python pygame, Love2D)입니다. 두 번째는 브라우저 Canvas 또는 WebGL(순수 Canvas, Phaser, Pixi)입니다. 세 번째는 엔진 에디터(Godot, Unity, Unreal)입니다. Claude Code는 1·2번에 가장 잘 맞습니다. 프로젝트가 대부분 diff가 명확한 텍스트 파일이기 때문입니다. 3번은 에디터 조작을 먼저 배워야 하고, 에이전트가 .import 폴더나 거대한 Library 트리와 자주 충돌합니다.
| 스택 | 진입 | 실행 | 컨텍스트 | 적합 |
|---|---|---|---|---|
| pygame | 터미널 + 로컬 창 | python main.py 즉시 피드백 | 소규모 .py 파일 | 당일 창을 보고 싶은 초보 |
| HTML5 Canvas | 브라우저 + 정적 서버 | 새로고침으로 미리보기, 링크 공유 쉬움 | index.html + game.js | 프론트 경험 또는 링크 플레이테스트 |
| Godot 4 | 에디터 + GDScript | 씬 트리, 에셋 import | .tscn + 스크립트 | 노드 개념을 받아들이는 학습자 |
| Unity | 에디터 + C# | 컴포넌트, Asset Store | 큰 Library 폴더 | C# 배경, 3D·멀티플랫폼 목표 |
| Claude Code CLI | 프로젝트 루트 터미널 | 파일 수정, 테스트·빌드 명령 | 열린 git 작업 트리 | 어떤 스택 위에도 올리는 협업층 |
이 글은 Windows, macOS, Linux 개발 환경을 가정합니다. pygame은 Python 3.10 이상이 필요합니다. HTML5 경로에서 Node는 로컬 정적 파일 서빙용일 뿐, 게임을 Node 서버로 컴파일하기 위한 것이 아닙니다. 큰 단계마다 프레임률과 조작감을 잠깐 확인하세요. 파일 수가 적고 히스토리가 읽기 쉬울 때 상수만 고쳐도 체감이 크게 바뀝니다. 나중에 CDN에서 에셋을 불러와도 개발 루프는 로컬 실행 명령을 기준으로 유지하세요. 채팅 스크린샷이 아니라 python main.py 또는 npx serve 결과가 진실입니다.
분수령은 모델 이름이 아니라 협업 진입점
벤치마크가 갈라놓는 경우는 드뭅니다. 모델 이름보다 중요한 것은 실행 가능한 작업 사본을 누가 쥐고 있느냐입니다. IDE 안에서 코드가 예쁘게 보여도, 터미널에서 한 번도 실행하지 않았다면 아직 게임이 아닙니다. Cursor는 IDE 안에서 편집하고, Claude Code는 승인 후 터미널에서 명령을 실행합니다. 둘 다 루프 코드는 쓸 수 있지만, 실행 명령이 채팅 설명으로만 남으면 ImportError에서 멈춥니다. GAME.md와 README에 에이전트가 매 세션 반복 실행할 명령을 적어 두면 「이미 돌아간다」는 논쟁이 줄어듭니다. 매 반복이 재현 가능한 실험이 되고, 의도만 주고받는 대화가 아닙니다.
| 도구 | 진입 | 실행 | 컨텍스트 | 적합 |
|---|---|---|---|---|
| Claude Code | CLI / 터미널 | 저장소 수정, python / npm | git 작업 트리 | 단계별 초보, 명령 기록 필요 |
| Cursor Agent | IDE | 파일 편집, 통합 터미널 | 열린 프로젝트 | 시각적 breakpoint 사용자 |
| 일반 Chat | 웹 UI | 보통 프로젝트 실행 불가 | 대화만 | 개념 질문, 출시용 아님 |
| 원격 Mac + CLI | SSH | Xcode / iOS Simulator | Apple 툴체인 프로젝트 | 네이티브 모바일 내보내기 |
CLI 트레이드오프는 Pi, Claude Code, Codex 비교에서 더 깊게 다룹니다. 매 세션 pygame 규칙을 다시 설명하지 않으려면 Agent Skill을 설치하세요. Agent Skills 가이드를 참고하세요.
시나리오별 스택과 워크플로 선택
| 당신이 | 선택 | 피할 것 |
|---|---|---|
| 완전 초보, 오늘 움직임 필요 | pygame + 이 7단계 체크리스트 | Unity 3D 템플릿 |
| HTML/CSS 익숙, 링크 공유 | Canvas + npx serve | 첫날 WebGL 셰이더 |
| 이미 Godot 사용 | Godot + Claude Code는 .gd만 | AI에게 .tscn 전체 재생성 요청 |
| iOS App Store 목표 | 원격 Mac + 네이티브 또는 Unity iOS 내보내기 | Windows만으로 서명 「시뮬레이션」 |
| 긴 세션, 노트북 덮개 자주 닫음 | VPS + tmux에서 Claude Code | 덮개 닫을 때 로컬 프로세스 종료 |
pygame과 HTML5 사이에서 망설이면, 내 PC에서 가장 빠른 피드백 기준으로 고르세요. 터미널과 창, 또는 브라우저와 localhost 중 편한 쪽입니다. 이 가이드에서 두 경로는 동등합니다. 중요한 것은 첫 플레이 가능 루프까지 한 선택을 유지하고, 중간에 스택을 바꾸지 않는 것입니다. 중간에 스택을 바꾸면 「실행 → 오류 → 수정」 습관이 초기화됩니다. 입력 루프 없는 화려한 Unity 씬보다, 움직이는 한 개의 사각형이 훨씬 낫습니다.
선행 지식 없이 추천하는 조합(pygame 경로)
OS는 자유입니다. Python 3.11+ 와 pip install pygame. Node 22 LTS는 Claude Code CLI 설치용입니다(Anthropic 문서: npm install -g @anthropic-ai/claude-code 또는 공식 installer). API 키는 ~/.config/game-dev/anthropic.env에 두고, 디렉터리 700, 파일 600, .gitignore에 경로를 추가하세요.
저장소 루트에 GAME.md를 둡니다. 조작, 실패 조건, 점수, 목표 FPS, 인수 스크린샷 설명을 다섯 문장으로 적습니다. 변경 전마다 Claude Code가 읽게 해 범위가 불어나지 않게 합니다. pygame 고정 실행 명령은 python main.py, HTML5는 npx --yes serve . 후 터미널 localhost URL을 엽니다. 코어 루프가 될 때까지 파일 구조는 얇게 유지하고, 이동·충돌이 안정된 뒤에 모듈을 나누세요. 속도나 크기 상수가 어색하면 같은 파일의 숫자만 바꾸고 다시 실행하세요. 아키텍처 전면 개편을 요청하기 전에 조작감부터 맞추는 편이 빠릅니다.
main.py만 수정, 60 FPS 유지, 플레이어 사각형과 좌우 이동 추가, 새 의존성 금지, 수정 후 python main.py 실행하고 traceback을 해결해 창이 열릴 때까지 반복.
프로젝트를 망치는 다섯 가지 실수
- 첫날 Unity 3D. import, 조명, 물리 preset이 일주일을 잡아먹고, 한 번에 큰 diff는 잘 맞지 않습니다.
- 에이전트에게 명령 실행을 허용하지 않음. 생성 코드만 보면 ImportError가 쌓여 어느 파일이 깨졌는지 모릅니다. 실행 권한을 주는 것은 보안이 아니라, 매번 같은 명령으로 진실을 확인하는 습관입니다.
- 한 프롬프트로 「완성 게임」. 창 → 입력 → 충돌 → 점수 → 오디오 순으로 나누세요.
- git commit 생략. 에이전트가 파일 전체를 다시 쓰면 되돌릴 수 없고 신뢰가 무너집니다. 「조금만 더」 고치다 하루치 작업을 잃지 않도록, 플레이 가능해질 때마다 commit 메시지를 남기세요.
- 잘못된 OS에서 Xcode 추적. iOS 빌드는 macOS에서 시작합니다. Mac mini 요금과 고객센터를 참고하세요.
설치부터 실행 가능한 미니 게임까지 7단계
- Node 22 LTS와 git 설치.
node -v,git --version으로 버전 문자열을 확인합니다. - Claude Code CLI 설치. 공식 문서대로 login 또는 API 설정, 비밀 값은 shell history에 남기지 않습니다. 키는 프로젝트 폴더가 아니라 홈 디렉터리의 설정 파일에 두고, 실수로 commit되지 않게 합니다.
- 프로젝트 폴더와
git init..gitignore(env,__pycache__), 빈README.md,GAME.md추가. - pygame 또는 HTML5 선택. pygame: virtualenv +
pip install pygame. HTML5:index.html+game.js생성. - Claude Code에 최소 골격 요청. 실행 가능, 파일 1~2개, placeholder TODO 없음, 세션 안에서 실행해 오류가 사라질 때까지 반복.
main.py또는game.js단독이 안정될 때까지 새 파일 제안은 거절하세요. - 게임플레이 반복. 단계마다 메커닉 하나(충돌 또는 점수), 매번 commit, 아키텍처를 다시 쓰기 전에 상수부터 조정.
GAME.md에 다음 메커닉을 적어 에이전트가 앞서 나가지 않게 합니다. - README 완성. 의존성, 실행 명령, 알려진 결함 나열, 친구가 README만으로 재현. 실패하면 튜토리얼 버그이지 「사용자 잘못」이 아닙니다. README 또는 코드를 고치고 다시 commit하세요. 다른 사람의 성공이 최고의 인수 테스트입니다.
python3 -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install --upgrade pip pygame python -c "import pygame; print(pygame.ver)"
cd my-first-game git add GAME.md README.md .gitignore git commit -m "chore: bootstrap game spec" claude # after login, ask for main.py and run python main.py in session
npx --yes serve . # open the http://localhost URL shown (port may differ)
FAQ
코딩 경험이 전혀 없어도 되나요?
네, 범위를 조작 하나, 실패 조건 하나, 점수 하나로 줄이면 됩니다. 기능 요청 전에 공식 install과 실행 명령을 먼저 통과하세요. traceback은 체크리스트로 읽고, 문법을 외울 필요는 없습니다. 창이 뜨는지, 콘솔에 traceback이 있는지만 보면 됩니다. traceback 전문을 세션에 붙여 넣으면 Claude Code가 관련 파일만 고치도록 요청하기 쉽습니다.
게임 개발에 Claude Code vs Cursor?
Cursor는 IDE 시각 편집, Claude Code는 터미널 단계 실행과 테스트에 맞습니다. 첫 실행 가능 빌드는 Claude Code가 파일과 명령을 명시적으로 남겨 종종 더 빠릅니다. 루프가 안정된 뒤 도구를 섞어도 되지만, 첫 README 성공 전까지는 한 가지 리듬을 유지하세요.
Unity가 필수인가요?
첫 프로젝트에는 아닙니다. Unity는 3D와 무거운 asset pipeline에 적합합니다. pygame이나 HTML5 Canvas가 당일 눈에 보이는 결과를 내기 쉽습니다. Unity는 에디터 버튼과 import 설정을 먼저 익혀야 하므로, 「첫 실행」 목표와 잘 맞지 않을 수 있습니다.
AI 코드가 실행되지 않으면?
전체 traceback을 붙이고 관련 파일만 수정하세요. 오류 하나씩 고치고 commit한 뒤 계속합니다. 같은 오류가 반복되면 가상 환경 활성화 여부와 Python 버전부터 README에 적힌 대로 다시 확인하세요.
미니 게임 「완성」 기준은?
다른 사람이 README로 실행 가능하고, 핵심 루프를 60초 이상 플레이할 수 있으며, 알려진 이슈 목록이 저장소에 있어야 합니다. 선택 사항으로 README에 짧은 화면 녹화를 넣으면, 테스터가 결함을 보고하기 전에 「정상」 동작을 미리 확인할 수 있습니다.
결론
Claude Code로 게임을 만드는 것은 실행 가능한 스택, 작은 commit, 에이전트 명령 실행 허용이지, 한 번에 「풀 AAA」 생성이 아닙니다. 미니 게임 하나를 끝까지 README로 재현 가능하게 만든 경험은, 이후 Godot나 Unity로 옮겨도 「무엇이 실제로 실행되는지」를 보는 눈을 길러 줍니다. pygame 또는 HTML5 7단계를 먼저 밟고 Godot, Unity, iOS를 검토하세요. 툴체인이 Xcode를 요구하면 macOS 노드로 옮기고, 일상 2D 연습은 지금 노트북으로 충분합니다. 진행은 채팅 답변 길이가 아니라 실행 가능한 빌드로 측정하세요. README와 GAME.md가 맞으면 같은 작업 방식이 큰 프로젝트로 확장됩니다. 스택만 바뀌고 작은 실행 가능 단계의 리듬은 유지됩니다. 이것이 본 튜토리얼의 학습 목표이며, 앞으로의 모든 게임 실험에서 동일하게 적용할 기준이 됩니다.