

Godot 4 + Claude Code로 인디게임 만들기 3부 – 전투 시스템 설계 문서화
2부에서 제작소 6개 시설을 완성하고 전투 시스템의 3가지 옵션(간단한 턴제·에너지 기반·핸드 드로우)을 놓고 고민하는 과정을 다뤘습니다. 3부에서는 "다 섞어줘"라는 한 마디로 결정된 통합 전투 시스템을 실제 설계 문서로 어떻게 구체화했는지 정리합니다. 턴 진행 순서, 리소스 표, 카드 사용 흐름까지 Claude Code에 넘기기 전 구현 가능한 수준의 스펙 문서를 만드는 과정을 그대로 보여드립니다.
📋 목차
1. 2부 요약 – 선택의 순간
2부에서 제작소 6개 시설(작업대·효과부여대·용광로·수리대·분해기·덱편성대)을 모두 완성한 뒤, 게임의 핵심 루프를 완성할 전투 시스템 설계를 시작했습니다. 세 가지 방식 중 하나를 선택해야 하는 질문을 받았습니다.
| 옵션 | 방식 |
|---|---|
| 1. 간단한 턴제 | 코스트/에너지 없이, 매턴 카드 1장 선택 |
| 2. 에너지 기반 | 매턴 에너지 회복, 카드마다 코스트 존재 |
| 3. 핸드 드로우 시스템 | 매턴 1장 드로우, 핸드 5장 유지 |
2. "다 섞어줘" – 통합 전투 시스템 결정
세 가지 옵션 중 하나를 고르는 대신, 세 시스템을 모두 결합하기로 결정했습니다. 에너지로 카드 사용을 제한하고, 핸드 드로우로 카드 순환을 관리하는 완전한 덱 빌딩 게임 방식입니다. 슬레이 더 스파이어 같은 로그라이크 덱빌딩 게임에서 흔히 쓰이는 구조와 유사합니다.
결정이 나온 즉시 구현에 들어가지 않고, 먼저 CardForge_Combat_System_Design.md라는 설계 문서를 만들었습니다.
3. 전투 진행 흐름 설계
가장 먼저 전투 한 판이 어떻게 시작해서 끝나는지 전체 흐름을 다이어그램으로 정리했습니다.
↓
플레이어 턴
├─ 드로우: 핸드에 카드 1장 추가 (최대 5장)
├─ 플레이 페이즈: 카드 선택 → 에너지 소비 → 대미지 계산
├─ 반복: 에너지가 있으면 계속 플레이
└─ 턴 종료: 에너지 초기화
↓
적 턴
├─ 몬스터가 고정 대미지 적용
└─ 플레이어 HP 감소
↓
반복 (누군가 HP 0 이하가 될 때까지)
├─ 플레이어 HP ≤ 0: 패배
└─ 몬스터 HP ≤ 0: 승리 → 재료 드롭
4. 리소스 시스템 표로 정리하기
전투에 필요한 리소스(HP, 에너지, 핸드, 덱)를 표로 정리해 각 리소스의 기본값과 특이사항을 한눈에 볼 수 있게 만들었습니다.
| 리소스 | 플레이어 | 적 | 비고 |
|---|---|---|---|
| HP | 최대 100 | 몬스터별 상이 | 감소 시 손상 카드 가능 |
| 에너지 | 매턴 3 | 고정 | 매턴 시작에 3으로 초기화 |
| 핸드 | 최대 5장 | - | 매턴 1장 드로우 |
| 덱 | 플레이어 덱 | - | 카드 소진 시 버린 카드 더미를 섞어 재생성(Reshuffle) |
5. 플레이어 턴 3단계 상세 설계
플레이어 턴을 드로우 → 플레이 페이즈 → 턴 종료의 3단계로 나누고, 각 단계를 의사코드 수준으로 구체화했습니다.
Step 1 – 드로우
Step 2 – 플레이 페이즈
Step 3 – 턴 종료
6. 적 턴 – MVP는 단순하게
적 AI는 MVP 단계에서 의도적으로 가장 단순한 형태로 설계했습니다.
7. 게임 종료 조건
8. 카드 사용과 대미지 계산 흐름
실제로 카드 한 장을 사용했을 때 내부적으로 어떤 계산이 일어나는지도 단계별로 정리했습니다.
↓
1. 사용 횟수 확인
- 사용 횟수 > 0: 계속
- 사용 횟수 = 0 (손상): 대미지 50% 감소
↓
2. 기본 대미지 계산
Base Damage = 카드 기본 대미지 (예: 10)
↓
3. 효과 발동 (MVP 미구현, 추후 예정)
- 시너지 조합이면 대미지 추가
- 상태 이상 부여 (화상/독 등)
↓
4. 최종 대미지 적용
몬스터 HP -= 최종 대미지
↓
5. 카드를 Discard Pile로 이동
MVP 대미지 테이블 – 일부러 단순하게
| 능력 | 기본 대미지 | 비고 |
|---|---|---|
| 검술 | 10 | - |
| 궁술 | 10 | - |
| 마법 | 10 | - |
| 기타 | 10 | - |
9. 왜 코드보다 문서를 먼저 만들었나
지금까지의 모든 내용은 사실 단 한 줄의 GDScript 코드도 작성하기 전에 정리한 것입니다. "다 섞어줘"라는 결정이 난 순간 바로 Claude Code에게 전투 씬을 만들어달라고 요청할 수도 있었지만, 그 전에 마크다운 설계 문서부터 만들었습니다.
| 바로 구현 요청 시 | 설계 문서 먼저 작성 시 |
|---|---|
| 턴 구조가 코드 안에 암묵적으로만 존재 | 턴 구조가 문서로 명시되어 언제든 재확인 가능 |
| 리소스 값(HP 100, 에너지 3 등)이 코드 곳곳에 흩어짐 | 리소스 표 하나로 모든 기본값을 한눈에 관리 |
| MVP 범위가 애매해서 과설계 위험 | "효과는 나중" 같은 범위 제한이 문서에 명시됨 |
| 다음 세션에서 설계 의도를 다시 설명해야 함 | CLAUDE.md처럼 파일로 남아 다음 세션에 그대로 참조 가능 |
10. 다음 단계 예고
| Phase | 내용 | 상태 |
|---|---|---|
| Phase 1 | 데이터 구조 (Custom Resource 정의) | ✅ 완료 |
| Phase 2 | 제작소 UI (6개 시설 전체) | ✅ 완료 |
| Phase 3 | 전투 시스템 – 설계 문서화 | ✅ 완료 |
| Phase 3.5 | 전투 시스템 – Godot 구현 | ⏳ 예정 |
| Phase 4 | 던전 루프 연결 | ⏳ 예정 |
| Phase 5 | 밸런싱 & 폴리싱 | ⏳ 예정 |
전투 시스템의 뼈대가 문서로 완성되었습니다. 4부에서는 이 설계 문서를 바탕으로 Claude Code에게 실제 전투 씬(BattleScene)과 CombatManager 스크립트 구현을 요청하는 과정, 그리고 F5로 첫 전투를 직접 플레이해보며 발견한 이슈들을 다룰 예정입니다. 전투가 완성되면 던전 노드 시스템(전투 노드·보물상자·이벤트·휴식·보스)과 연결해 게임의 핵심 루프가 처음부터 끝까지 이어지게 됩니다.
'AI.Codeing' 카테고리의 다른 글
| Godot 4 + Claude Code로 인디게임 만들기 2부 – 제작소 6종 완성과 전투 시스템 설계 (0) | 2026.07.11 |
|---|---|
| Godot 4 + Claude Code로 인디게임 만들기 1부 – 카드 포지(Card Forge) 개발 일지 (0) | 2026.07.10 |
| Claude Code + 힉스필드(Higgsfield) MCP 연동 유튜브 쇼츠 완전 자동화 2026 (0) | 2026.07.08 |
| AI 프롬프트 작성법 완벽 가이드 2026 – 역할 지정과 원하는 결과가 핵심 (0) | 2026.07.05 |
| 로블록스 게임 AI 바이브코딩으로 만들기 2026 – MCP 연결부터 실전 게임까지 (0) | 2026.07.04 |