Files
asciinevrdie/doc/task-ext-settings-infra.md
JiWoong Sul b110b2dc53 docs: 게임 시스템 개편 계획 문서 분리
- 121KB 단일 문서를 22개 태스크 문서로 분리
- 메인 인덱스 문서 (game-system-overhaul-index.md) 생성
- Phase 1-10 태스크 문서 10개 분리
- 추가 시스템 태스크 문서 10개 분리
- 재미 요소 설계 문서 1개 분리
- 기존 문서는 archive/ 폴더로 이동
2025-12-16 19:33:57 +09:00

161 lines
5.7 KiB
Markdown

# 설정/튜토리얼/성능/테스트
> 메인 문서: [game-system-overhaul-index.md](game-system-overhaul-index.md)
---
## 1. 설정 화면
| 설정 항목 | 옵션 |
|----------|------|
| 게임 속도 | 0.5x, 1x, 2x, 5x |
| 자동 저장 간격 | 1분, 5분, 10분 |
| SFX 볼륨 | 0-100% |
| BGM 볼륨 | 0-100% |
| 진동 | 켜기/끄기 (모바일) |
| 알림 표시 | 켜기/끄기 |
| 전투 로그 | 간략/상세/끄기 |
| 언어 | 한국어/English |
### 1.1 데이터 관리 설정
| 설정 항목 | 설명 | 경고 |
|----------|------|------|
| 튜토리얼 초기화 | 튜토리얼 다시 보기 | - |
| 도움말 초기화 | 모든 도움말 팁 다시 표시 | - |
| 캐시 삭제 | 임시 파일 삭제 | - |
| 설정 초기화 | 모든 설정을 기본값으로 | 확인 필요 |
| 현재 캐릭터 삭제 | 현재 슬롯 데이터 삭제 | 2중 확인 필요 |
| 모든 데이터 삭제 | 전체 초기화 | 3중 확인 + 입력 확인 |
### 1.2 데이터 삭제 확인 UI
```
┌─────────────────────────────────────┐
│ │
│ ⚠️ 모든 데이터 삭제 │
│ │
│ 이 작업은 되돌릴 수 없습니다! │
│ │
│ 삭제될 항목: │
│ • 모든 캐릭터 (5개 슬롯) │
│ • 명예의 전당 기록 │
│ • 업적 │
│ • 통계 │
│ • 설정 │
│ │
│ 확인하려면 "삭제합니다"를 입력: │
│ ┌───────────────────────────┐ │
│ │ │ │
│ └───────────────────────────┘ │
│ │
│ [ 취소 ] [ 삭제 ] │
│ │
└─────────────────────────────────────┘
```
---
## 2. 성능 최적화
| 항목 | 현재 | 개선 방안 |
|------|------|----------|
| 상태 업데이트 | 매 틱마다 전체 rebuild | 변경된 부분만 업데이트 |
| 애니메이션 | Timer 기반 | AnimationController 사용 |
| 저장 | 자동 저장 빈번 | 변경 감지 후 디바운스 |
---
## 3. 테스트 전략
| 테스트 유형 | 대상 | 도구 |
|------------|------|------|
| 유닛 테스트 | 전투 계산, 스탯 계산 | flutter_test |
| 위젯 테스트 | UI 컴포넌트 | flutter_test |
| 통합 테스트 | 전체 게임 플로우 | integration_test |
| 밸런스 테스트 | 시뮬레이션 | 커스텀 도구 |
---
## 4. 튜토리얼 시스템
### 4.1 튜토리얼 흐름
```
첫 실행 감지 → 튜토리얼 시작 → 단계별 가이드 → 완료 보상 → 본 게임 시작
```
### 4.2 튜토리얼 단계
| 단계 | 내용 | 하이라이트 UI | 완료 조건 |
|------|------|--------------|----------|
| 1 | 게임 소개 | 전체 화면 | 탭하여 계속 |
| 2 | 캐릭터 스탯 설명 | 스탯 패널 | 스탯 패널 탭 |
| 3 | 전투 시스템 설명 | 전투 영역 | 첫 몬스터 처치 |
| 4 | 장비 시스템 설명 | 장비 패널 | 첫 장비 장착 |
| 5 | 스킬 사용 설명 | 스킬 바 | 첫 스킬 사용 |
| 6 | 경험치/레벨업 설명 | 경험치 바 | 레벨 2 달성 |
| 7 | 퀘스트 설명 | 퀘스트 패널 | 첫 퀘스트 확인 |
| 8 | 사망/부활 설명 | 안내 팝업 | 탭하여 계속 |
| 9 | 설정 및 기타 | 설정 버튼 | 설정 화면 열기 |
| 10 | 튜토리얼 완료 | 보상 팝업 | 보상 수령 |
### 4.3 튜토리얼 UI
```
┌─────────────────────────────────────┐
│ ┌─────────────────────────────┐ │
│ │ 하이라이트된 영역 │◄───│ 이 부분을 탭해보세요!
│ └─────────────────────────────┘ │
│ │
│ ══════════════════════════════ │
│ 스탯은 전투력에 직접 영향을 │
│ 미칩니다. STR은 공격력, │
│ CON은 HP에 영향을 줍니다. │
│ ══════════════════════════════ │
│ │
│ [ 다음 ] [ 건너뛰기 ] │
└─────────────────────────────────────┘
```
### 4.4 튜토리얼 완료 보상
| 보상 | 수량 |
|------|------|
| 골드 | 500 |
| 초보자 무기 | 1 |
| 초보자 방어구 | 1 |
| 경험치 물약 | 1 |
### 4.5 구현 방안
```dart
class TutorialService {
int currentStep = 0;
bool isCompleted = false;
void startTutorial();
void nextStep();
void skipTutorial();
void completeStep(int step);
Widget? getHighlightWidget();
String getCurrentMessage();
}
class TutorialOverlay extends StatelessWidget {
final int step;
final VoidCallback onNext;
final VoidCallback onSkip;
}
```
### 4.6 튜토리얼 관련 파일
| 파일 | 역할 |
|------|------|
| `core/service/tutorial_service.dart` | **신규** - 튜토리얼 로직 |
| `features/game/widgets/tutorial_overlay.dart` | **신규** - 튜토리얼 UI |
| `data/tutorial_data.dart` | **신규** - 튜토리얼 텍스트 |
---