b240cd2626f102da86df2a59e2b3bd1c53873c3b
Some checks failed
CI / analyze-and-test (push) Has been cancelled
- speed_boost_manager: restoreFromMonetization() 추가 - game_session_controller: loadAndStart에서 배속 상태 복원 호출 - speedBoostEndMs가 세이브에 남아있어도 _isSpeedBoostActive가 false로 리셋되어 배속이 적용 안 되던 문제 해결
Ascii Never Die
Progress Quest 6.4의 핵심 메커니즘을 기반으로, "디지털 판타지" 세계관과 확장된 시스템으로 재구성한 오프라인 싱글플레이어 방치형 RPG.
스크린샷
| 타이틀 | 캐릭터 생성 | 게임 진행 |
|---|---|---|
![]() |
![]() |
![]() |
| 아레나 | 명예의 전당 | 설정 |
|---|---|---|
![]() |
![]() |
![]() |
주요 기능
- 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) |
빌드 및 실행
# 의존성 설치
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 참조.
릴리즈 이력
| 버전 | 날짜 | 주요 내용 |
|---|---|---|
| 1.1.0 | 2026-03-30 | IAP RSA 검증, HMAC 세이브, CI, 테스트 105개 추가 |
| 1.0.1 | 2026-03-19 | 초기 릴리즈 (Google Play 내부 테스트) |
전체 변경 이력은 CHANGELOG.md 참조.
라이선스
비공개 프로젝트. 무단 배포 금지.
Progress Quest 원본 소스(example/pq/)는 참조용으로만 포함되어 있습니다.
폰트 라이선스: JetBrains Mono (SIL OFL 1.1), Press Start 2P (SIL OFL 1.1).
Description
Languages
Dart
92.4%
HTML
5.4%
C++
1.1%
CMake
0.8%
Swift
0.1%
Other
0.1%





