9.9 KiB
9.9 KiB
Claude AI와 함께하는 게임 개발 가이드
목차
프로젝트 구조
GameProject/
├── claude.md # Claude 협업 가이드
├── docs/ # 문서 폴더
│ ├── design/ # 기획 문서
│ │ ├── game_design_document.md # 핵심 게임 기획서
│ │ ├── technical_specs.md # 기술 명세서
│ │ ├── ui_ux_specs.md # UI/UX 명세서
│ │ └── feature_specs/ # 기능별 상세 명세
│ ├── development/ # 개발 관련 문서
│ │ ├── coding_standards.md # 코딩 표준
│ │ ├── architecture.md # 아키텍처 문서
│ │ └── changelog.md # 변경 로그
│ └── testing/ # 테스트 관련 문서
│ ├── test_strategy.md # 테스트 전략
│ └── test_cases.md # 테스트 케이스
├── project.godot # Godot 프로젝트 파일
├── scenes/ # 씬 파일들
├── scripts/ # C# 스크립트
│ ├── Core/ # 핵심 시스템
│ ├── Gameplay/ # 게임플레이 로직
│ ├── UI/ # UI 관련
│ └── Tests/ # 단위 테스트
├── assets/ # 게임 에셋
└── addons/ # Godot 애드온
claude.md 작성법
기본 구조
# 프로젝트 개요
- **게임 제목**: [게임명]
- **장르**: [장르]
- **타겟 플랫폼**: [플랫폼]
- **개발 엔진**: Godot 4.x
- **주 언어**: C#
# 현재 개발 상태
- **버전**: v0.1.0
- **마지막 업데이트**: 2024-XX-XX
- **현재 작업 중인 기능**: [기능명]
- **다음 마일스톤**: [목표]
# 핵심 게임 컨셉
## 게임플레이 핵심
[간단한 게임플레이 설명]
## 주요 시스템
- [ ] 플레이어 캐릭터 시스템
- [ ] 인벤토리 시스템
- [ ] 전투 시스템
- [ ] UI 시스템
# 기술적 아키텍처
## 코어 시스템 설계
- **GameManager**: 게임 전반 관리
- **SceneManager**: 씬 전환 관리
- **SaveSystem**: 저장/불러오기
- **EventSystem**: 이벤트 기반 통신
## 코딩 컨벤션
- 클래스명: PascalCase
- 메서드명: PascalCase
- 변수명: camelCase
- 상수: UPPER_SNAKE_CASE
# Claude 협업 가이드라인
## 요청할 때 포함해야 할 정보
1. **현재 작업 컨텍스트**: 어떤 기능을 구현 중인지
2. **관련 파일**: 수정이 필요한 파일들
3. **요구사항**: 구체적인 기능 명세
4. **제약사항**: 성능, 메모리, 호환성 등
## 코드 리뷰 요청 시
- 전체 코드보다는 특정 기능 단위로 요청
- 의도한 동작과 실제 문제점 명시
- 관련 테스트 케이스 함께 제공
## 디버깅 요청 시
- 에러 메시지 전문 포함
- 재현 단계 상세히 기술
- 예상 동작 vs 실제 동작 비교
# 개발 우선순위
1. **높음**: 핵심 게임플레이 로직
2. **중간**: UI/UX 개선
3. **낮음**: 부가 기능, 최적화
# 테스트 전략
- Unit Test: 핵심 로직 테스트
- Integration Test: 시스템 간 연동 테스트
- Play Test: 실제 게임플레이 테스트
기획 문서 관리
1. 게임 기획서 구조 (docs/design/game_design_document.md)
# 게임 기획서
## 게임 개요
### 컨셉
### 타겟 유저
### 플랫폼
## 게임플레이
### 핵심 루프
### 플레이어 목표
### 진행 시스템
## 시스템 설계
### [시스템명]
- **목적**:
- **구현 방법**:
- **관련 클래스**:
- **테스트 방법**:
## 기술 요구사항
### 성능 목표
### 메모리 사용량
### 호환성 요구사항
## 개발 일정
- [ ] 프로토타입 (Week 1-2)
- [ ] 핵심 시스템 (Week 3-4)
- [ ] 콘텐츠 제작 (Week 5-6)
2. 기능별 명세서 (docs/design/feature_specs/)
각 주요 기능별로 개별 문서 작성:
player_system.mdcombat_system.mdinventory_system.mdui_system.md
Claude와의 소통 방법론
1. 효과적인 질문 패턴
🟢 좋은 예시
현재 Godot C#에서 인벤토리 시스템을 구현 중입니다.
**현재 상황:**
- Player 클래스에서 아이템을 관리
- 아이템은 ScriptableObject로 구현 예정
- docs/design/feature_specs/inventory_system.md에 명세 있음
**요구사항:**
1. 아이템 슬롯 기반 인벤토리
2. 드래그 앤 드롭 지원
3. 아이템 스택 기능
**질문:**
위 요구사항을 만족하는 InventoryManager 클래스 구조를 설계해주세요.
Unit Test도 함께 고려해주세요.
🔴 피해야 할 예시
게임 만드는데 도와주세요.
2. 컨텍스트 유지 전략
세션 시작 시 항상 포함할 정보
## 현재 프로젝트 상태
- 게임: [게임명]
- 엔진: Godot 4.x + C#
- 현재 작업: [기능명]
- 관련 파일: [파일 목록]
- 최근 변경사항: [요약]
파일 수정 시 패턴
## 수정 요청
**파일**: `scripts/Core/GameManager.cs`
**현재 코드**: [관련 코드 블록]
**요구사항**: [구체적인 변경 내용]
**제약사항**: [성능, 호환성 등]
3. 반복 개발 워크플로우
Phase 1: 기능 설계
## 기능 설계 요청
**기능명**: [기능명]
**기획 문서**: docs/design/feature_specs/[기능명].md 참고
**요구사항**:
1. [요구사항 1]
2. [요구사항 2]
**Claude 생성 요청**:
- 클래스 구조 설계
- 인터페이스 정의
- 테스트 케이스 설계
Phase 2: 구현
## 구현 요청
**설계**: [이전에 Claude가 제안한 설계 요약]
**구현할 클래스**: [클래스명]
**특별 고려사항**: [Godot 특화 사항, 성능 등]
Phase 3: 테스트 & 개선
## 코드 리뷰 요청
**구현된 코드**: [코드 블록]
**문제상황**: [발생한 문제]
**개선 요청**: [성능, 가독성, 테스트 등]
지속적 개발 워크플로우
1. 일일 개발 루틴
개발 시작 시
claude.md업데이트 (현재 상태, 목표)- Claude에게 현재 상황 공유
- 오늘 작업할 기능 논의
개발 중
- 막힐 때마다 구체적 질문
- 코드 리뷰 요청
- 테스트 케이스 논의
개발 완료 시
docs/development/changelog.md업데이트- 기획서에 변경사항 반영 요청
- 다음 작업 계획 수립
2. 기획서 동기화 프로세스
코드 변경 후 기획서 업데이트 요청 패턴
## 기획서 업데이트 요청
**변경된 코드**: [파일명과 주요 변경사항]
**영향받는 기획 문서**: docs/design/feature_specs/[기능명].md
**업데이트 필요 섹션**:
- 기술 구현 방법
- 클래스 구조
- 테스트 방법
**요청**: 위 변경사항을 반영하여 기획서를 업데이트해주세요.
Unit Test 전략
1. 테스트 구조
// scripts/Tests/Core/GameManagerTests.cs
using NUnit.Framework;
using Godot;
[TestFixture]
public class GameManagerTests
{
private GameManager _gameManager;
[SetUp]
public void Setup()
{
_gameManager = new GameManager();
}
[Test]
public void Initialize_ShouldSetupGameState()
{
// Arrange
// Act
_gameManager.Initialize();
// Assert
Assert.IsTrue(_gameManager.IsInitialized);
}
[TearDown]
public void TearDown()
{
_gameManager?.Cleanup();
}
}
2. Claude와 TDD 협업
테스트 우선 개발 요청 패턴
## TDD 구현 요청
**기능**: [기능명]
**요구사항**: [상세 요구사항]
**1단계 요청**:
해당 기능의 테스트 케이스를 먼저 작성해주세요.
**2단계 요청**:
테스트를 통과하는 최소한의 구현을 작성해주세요.
**3단계 요청**:
코드를 리팩토링해주세요.
3. 테스트 유형별 전략
Unit Test
- 각 클래스의 public 메서드 테스트
- 경계값, 예외 상황 테스트
- Mocking을 활용한 의존성 분리
Integration Test
[TestFixture]
public class PlayerInventoryIntegrationTests
{
[Test]
public void Player_PickupItem_ShouldAddToInventory()
{
// 플레이어와 인벤토리 시스템 통합 테스트
}
}
Performance Test
[TestFixture]
public class PerformanceTests
{
[Test]
public void GameLoop_Under60FPS_ShouldMaintainPerformance()
{
// 성능 관련 테스트
}
}
Claude 활용 팁
1. 효율적인 질문 방법
- 한 번에 하나의 기능에 집중
- 구체적인 코드 블록과 함께 질문
- 예상 결과와 실제 결과 비교 제시
2. 코드 품질 향상
## 코드 리뷰 요청 체크리스트
- [ ] SOLID 원칙 준수 확인
- [ ] Godot 베스트 프랙티스 적용
- [ ] 성능 최적화 검토
- [ ] 테스트 커버리지 확인
- [ ] 문서화 완성도 검토
3. 장기 프로젝트 관리
- 주요 마일스톤마다 전체 아키텍처 리뷰
- 정기적인 코드 리팩토링
- 기술 부채 관리 계획 수립
마무리
이 가이드를 따라 Claude AI와 효과적으로 협업하면:
- 일관성 있는 코드 품질 유지
- 빠른 문제 해결과 개선
- 체계적인 문서 관리
- 지속 가능한 개발 프로세스
정기적으로 이 문서를 업데이트하며 프로젝트에 맞게 조정해나가세요.