# 설정/튜토리얼/성능/테스트 > 메인 문서: [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` | **신규** - 튜토리얼 텍스트 | ---