# Ascii Never Die Progress Quest 6.4의 핵심 메커니즘을 기반으로, "디지털 판타지" 세계관과 확장된 시스템으로 재구성한 오프라인 싱글플레이어 방치형 RPG. ## 스크린샷 | 타이틀 | 캐릭터 생성 | 게임 진행 | |--------|-------------|-----------| | ![타이틀](docs/screenshots/front.png) | ![생성](docs/screenshots/new_character.png) | ![게임](docs/screenshots/game.png) | | 아레나 | 명예의 전당 | 설정 | |--------|-------------|------| | ![아레나](docs/screenshots/arena.png) | ![명예의 전당](docs/screenshots/hall_of_fame.png) | ![설정](docs/screenshots/settings.png) | ## 주요 기능 - **6개 화면** -- 타이틀/세이브 선택, 캐릭터 생성(3d6 스탯 롤), 게임 진행(장비/인벤토리/퀘스트/스킬/전투로그/스토리), 아레나 PvP, 명예의 전당, 설정 - **완전 오프라인** -- 네트워크 불필요. 모든 게임 데이터와 세이브가 로컬에 저장 - **수익화** -- AdMob 리워드/인터스티셜 광고 + IAP 광고 제거/프리미엄 - **다국어 지원** -- 한국어, 영어, 일본어 (앱 UI + 게임 데이터) - **ASCII 아트 애니메이션** -- Canvas 기반 전투/탐험/마을 씬, 종족별 캐릭터 프레임 - **보안** -- 세이브 파일 HMAC-SHA256 무결성 검증, IAP 영수증 RSA 서명 검증 ## 기술 스택 | 구분 | 기술 | |------|------| | 프레임워크 | Flutter 3.x / Dart ^3.9.2 | | 상태 관리 | Stream + 직접 관리 | | 코드 생성 | freezed + json_serializable | | DI | GetIt (서비스 로케이터) | | 광고 | google_mobile_ads 7.x | | 인앱결제 | in_app_purchase 3.x | | 보안 저장 | flutter_secure_storage, crypto (HMAC), pointycastle (RSA) | | 오디오 | just_audio | | 폰트 | JetBrainsMono (ASCII), PressStart2P (레트로 UI) | ## 빌드 및 실행 ```bash # 의존성 설치 flutter pub get # 코드 생성 (freezed/json_serializable) dart run build_runner build --delete-conflicting-outputs # 실행 (-d macos, -d chrome, -d android 등) flutter run # 검증 dart format --set-exit-if-changed . flutter analyze flutter test ``` ## 프로젝트 구조 ``` lib/ ├── main.dart # 앱 진입점 ├── data/ # 정적 게임 데이터 (종족, 직업, 스킬, 포션, 스토리) ├── l10n/ # 앱 UI 다국어 리소스 (arb) └── src/ ├── app.dart # MaterialApp 설정 ├── core/ │ ├── engine/ # 게임 루프, 전투, 보상, 스킬 등 30개 서비스 │ ├── model/ # GameState, 장비, 스킬, 전투 등 데이터 모델 │ ├── infrastructure/ # AdMob, IAP 외부 서비스 구현 │ ├── di/ # GetIt 서비스 로케이터 + 인터페이스 │ ├── audio/ # BGM/SFX 오디오 서비스 │ ├── storage/ # 세이브/설정/통계 저장소 │ └── util/ # RNG, 밸런스 상수, PQ 로직 헬퍼 ├── features/ │ ├── front/ # 타이틀/세이브 선택 │ ├── new_character/ # 캐릭터 생성 │ ├── game/ # 메인 게임 (탭별 페이지 + 위젯) │ ├── arena/ # 아레나 PvP │ ├── hall_of_fame/ # 명예의 전당 │ └── settings/ # 설정 └── shared/ # 테마, 레트로 위젯, ASCII 애니메이션 example/pq/ # Delphi 원본 소스 (참조용) test/ # 단위/위젯/회귀 테스트 (25개 파일) ``` 아키텍처 상세는 [ARCHITECTURE.md](ARCHITECTURE.md) 참조. ## 릴리즈 이력 | 버전 | 날짜 | 주요 내용 | |------|------|-----------| | 1.1.0 | 2026-03-30 | IAP RSA 검증, HMAC 세이브, CI, 테스트 105개 추가 | | 1.0.1 | 2026-03-19 | 초기 릴리즈 (Google Play 내부 테스트) | 전체 변경 이력은 [CHANGELOG.md](CHANGELOG.md) 참조. ## 라이선스 비공개 프로젝트. 무단 배포 금지. Progress Quest 원본 소스(`example/pq/`)는 참조용으로만 포함되어 있습니다. 폰트 라이선스: JetBrains Mono (SIL OFL 1.1), Press Start 2P (SIL OFL 1.1).