68a5848510fbfe0921f08b1e3bc437f3d92e6263
- analysis_options.yaml: freezed/g.dart 생성 파일 분석 제외
- game_text_l10n.dart: if문 중괄호 추가, 불필요한 ${} 제거
- iap_service.dart: 불필요한 dart:typed_data import 제거
- pq_logic.dart, combat_text_frames.dart: dangling library doc → library; 추가
- save_picker_dialog.dart: __ → _ (unnecessary_underscores)
- desktop_equipment_panel.dart: 불필요한 import 제거
- test 파일: _localVar → localVar 네이밍, ignore_for_file 추가
ASCII Never Die
"디지털 판타지" 세계관의 오프라인 방치형 RPG. ASCII 아트 비주얼과 자동 전투 시스템으로, 켜두기만 하면 캐릭터가 성장합니다.
스크린샷
| 타이틀 | 캐릭터 생성 | 게임 진행 |
|---|---|---|
![]() |
![]() |
![]() |
| 아레나 | 명예의 전당 | 설정 |
|---|---|---|
![]() |
![]() |
![]() |
주요 기능
- 방치형 자동 전투 -- 전투, 레벨업, 퀘스트, 스토리가 자동으로 진행
- ASCII 아트 애니메이션 -- Canvas 기반 전투/탐험/마을 씬, 21개 종족별 캐릭터 프레임
- 깊은 캐릭터 빌드 -- 21개 종족, 18개 직업, 68개 스킬, 11개 장비 슬롯
- 로컬 아레나 -- 클리어한 캐릭터들끼리 1:1 전투, 장비 약탈
- 오프라인 플레이 -- 게임 플레이는 네트워크 불필요, 광고/결제 시에만 네트워크 사용
- 다국어 지원 -- 한국어, 영어, 일본어
게임 시스템
스탯
| 스탯 | 효과 |
|---|---|
| STR | 물리 공격력, 쳐내기 |
| CON | 방어력, 최대 HP, 방패 방어 |
| DEX | 크리티컬, 회피, 명중, 공격 속도 |
| INT | 마법 공격력, DoT 데미지, MP |
| WIS | 마법 방어력, DoT 틱 간격, MP |
| CHA | 상점 할인 (최대 15%), 희귀 아이템 드롭률 보정 |
장비 희귀도
Common → Uncommon → Rare → Epic → Legendary (스탯 1.0x ~ 3.0x)
스킬 시스템
68개 전투 스킬 (공격/회복/버프/디버프), 쿨타임 기반, 자동 선택 AI
수익화
- AdMob 리워드/인터스티셜 광고
- IAP 광고 제거 + 프리미엄 (영구 5배속, 되돌리기 3회, 보물 상자 10개, 오프라인 2배)
기술 스택
| 구분 | 기술 |
|---|---|
| 프레임워크 | Flutter 3.x / Dart 3.9+ |
| 상태 관리 | ValueNotifier + Stream |
| 코드 생성 | freezed + json_serializable |
| DI | GetIt (서비스 로케이터) |
| 광고 | google_mobile_ads 7.x |
| 인앱결제 | in_app_purchase 3.x |
| 보안 | flutter_secure_storage, HMAC-SHA256, RSA 서명 검증 |
| 오디오 | just_audio (BGM 11곡, SFX 10종) |
| 폰트 | 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
# 릴리즈 빌드 (난독화 포함)
flutter build appbundle --obfuscate --split-debug-info=build/debug-info
# 검증
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/ # 세이브/설정/통계 저장소
│ ├── logging/ # 로컬 에러 로거
│ └── util/ # RNG, 밸런스 상수, 로직 헬퍼
├── features/
│ ├── front/ # 타이틀/세이브 선택
│ ├── new_character/ # 캐릭터 생성
│ ├── game/ # 메인 게임 (탭별 페이지 + 위젯)
│ ├── arena/ # 아레나 PvP
│ ├── hall_of_fame/ # 명예의 전당
│ └── settings/ # 설정
└── shared/ # 테마, 레트로 위젯, ASCII 애니메이션
test/ # 단위/위젯/회귀 테스트 (276개)
analysis/ # 프로젝트 감사/시장 분석 리포트
아키텍처 상세는 ARCHITECTURE.md 참조.
릴리즈 이력
| 버전 | 날짜 | 주요 내용 |
|---|---|---|
| 1.1.0 | 2026-03-30 | IAP RSA 검증, HMAC 세이브, CI, 아키텍처 개선, 테스트 276개 |
| 1.0.1 | 2026-03-19 | 초기 릴리즈 (Google Play 내부 테스트) |
전체 변경 이력은 CHANGELOG.md 참조.
라이선스
비공개 프로젝트. 무단 배포 금지.
폰트 라이선스: 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%





