From godot-craft
Phase 0 — 게임 콘셉트 확장, 비주얼 타겟 생성, PLAN/STRUCTURE/ASSETS.md 작성, 사용자 승인
npx claudepluginhub vp-k/godot-craftThis skill uses the workspace's default tool permissions.
사용자의 한 줄 요구사항을 완전한 게임 설계로 확장합니다.
Guides video game development: brainstorm ideas, plan gameplay loops, choose engines like Unity/Godot/Three.js/Phaser, scaffold projects, add features, fix bugs, create assets.
Transforms game ideas into Unity 6+ projects with AI-generated asset prompts, scene blueprints, music/SFX, GDDs, and phased development to deployment plans.
Share bugs, ideas, or general feedback.
사용자의 한 줄 요구사항을 완전한 게임 설계로 확장합니다. 이 Phase가 사용자와 상호작용하는 유일한 시점입니다.
사용자 입력을 분석하여:
templates/game-design-template.md를 기반으로 게임 디자인 문서를 작성합니다:
Read ${CLAUDE_PLUGIN_ROOT}/templates/game-design-template.md
8개 섹션을 채웁니다:
DESIGN.md는 리뷰(Phase 4.5)에서 "원래 의도 vs 구현 결과" 비교 기준으로 활용됩니다.
Quick 모드: DESIGN.md를 간소화 — Overview + Core Mechanics + Controls만 작성.
게임의 시각적 목표를 정의하는 이미지 생성 프롬프트를 작성합니다:
reference.png 생성:
python3 ${CLAUDE_PLUGIN_ROOT}/tools/asset_gen.py \
--type reference \
--prompt "<비주얼 타겟 프롬프트>" \
--output reference.png
태스크 분해 + 의존성 DAG. 형식:
# PLAN.md — <게임 이름>
## 개요
<게임 콘셉트 요약>
## 태스크
### T1: <태스크 제목>
- **설명**: <무엇을 구현하는지>
- **의존**: 없음
- **산출물**: <생성할 파일 목록>
- **완료 기준**: <검증 가능한 기준>
### T2: <태스크 제목>
- **설명**: ...
- **의존**: T1
- **산출물**: ...
- **완료 기준**: ...
태스크 분해 원칙:
씬 트리, 스크립트 목록, 시그널 맵, 입력 액션, 충돌 레이어:
# STRUCTURE.md — <게임 이름>
## 씬 트리
### main.tscn (Main)
- Node2D (Main)
├── Player (CharacterBody2D)
├── EnemySpawner (Node2D)
├── UI (CanvasLayer)
│ ├── HUD
│ └── PauseMenu
└── GameManager (Node)
### player.tscn (Player)
- CharacterBody2D
├── Sprite2D
├── CollisionShape2D
└── AnimationPlayer
## 스크립트 목록
| 스크립트 | extends | 역할 |
|---------|---------|------|
| main.gd | Node2D | 게임 루프 관리 |
| player.gd | CharacterBody2D | 플레이어 이동/공격 |
## 시그널 맵
| 발신 | 시그널 | 수신 | 용도 |
|------|--------|------|------|
| player.gd | health_changed(int) | hud.gd | HP 표시 업데이트 |
| player.gd | died | main.gd | 게임 오버 처리 |
## 입력 액션
| 액션 | 키 | 용도 |
|------|-----|------|
| move_left | A, Left | 왼쪽 이동 |
| move_right | D, Right | 오른쪽 이동 |
| jump | Space | 점프 |
| shoot | LMB | 사격 |
## 충돌 레이어
| Layer | 이름 | 용도 |
|-------|------|------|
| Layer 1 | player | 플레이어 |
| Layer 2 | enemy | 적 |
| Layer 3 | projectile | 투사체 |
| Layer 4 | environment | 환경/지형 |
에셋 목록 + 예산 계획:
# ASSETS.md — <게임 이름>
## 이미지
| 에셋 | 용도 | 크기 | 프롬프트 |
|------|------|------|----------|
| player.png | 플레이어 스프라이트 | 64x64 | <생성 프롬프트> |
| enemy_01.png | 기본 적 | 64x64 | <생성 프롬프트> |
## 사운드 (SFX)
| 에셋 | 용도 | 길이 | 프롬프트 |
|------|------|------|----------|
| jump.wav | 점프 효과음 | 0.3s | <프롬프트> |
| explosion.wav | 폭발 효과음 | 0.5s | <프롬프트> |
## 음악 (BGM)
| 에셋 | 용도 | 길이 | 프롬프트 |
|------|------|------|----------|
| main_theme.ogg | 메인 BGM | 30s | <프롬프트> |
## 3D 모델 (3D 게임만)
| 에셋 | 용도 | 폴리곤 | 프롬프트 |
|------|------|--------|----------|
## 예산 요약
| 카테고리 | 수량 | 예상 비용 |
|----------|------|-----------|
| 이미지 | N | $X.XX |
| 사운드 | N | $0.00 (무료) |
| 음악 | N | $X.XX |
| 3D 모델 | N | $X.XX |
| **합계** | | **$X.XX** |
유일한 상호작용 시점.
사용자에게 보여줄 것:
승인 후:
# progress 초기화
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-gate.sh init "<game_name>" "<requirement>" "<2d|3d>"
# PLAN.md의 태스크를 progress JSON에 로드
# (LLM이 jq로 직접 수행 — PLAN.md 파싱 → tasks 배열 구성)
# Phase 상태 업데이트
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-gate.sh update-phase phase_0 completed
# 게이트 통과
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-gate.sh plan-gate
PLAN.md의 태스크를 다음 형식으로 progress JSON에 로드:
{
"id": "T1",
"title": "플레이어 캐릭터",
"description": "플레이어 씬 + 이동 스크립트",
"deps": [],
"status": "pending",
"outputs": ["scenes/player.tscn", "scripts/player.gd"],
"createdAt": "2026-03-13T...",
"updatedAt": ""
}
의존성이 없는 태스크는 자동으로 "ready" 상태로 전환됩니다.