docs: 게임 시스템 개편 계획 문서 분리
- 121KB 단일 문서를 22개 태스크 문서로 분리 - 메인 인덱스 문서 (game-system-overhaul-index.md) 생성 - Phase 1-10 태스크 문서 10개 분리 - 추가 시스템 태스크 문서 10개 분리 - 재미 요소 설계 문서 1개 분리 - 기존 문서는 archive/ 폴더로 이동
This commit is contained in:
184
doc/task-ext-platform.md
Normal file
184
doc/task-ext-platform.md
Normal file
@@ -0,0 +1,184 @@
|
||||
# 플랫폼/오프라인/향후 고려사항
|
||||
|
||||
> 메인 문서: [game-system-overhaul-index.md](game-system-overhaul-index.md)
|
||||
|
||||
---
|
||||
|
||||
## 1. 오프라인/백그라운드 진행
|
||||
|
||||
### 1.1 오프라인 진행 개념
|
||||
|
||||
```
|
||||
앱 종료 시점 기록 → 재접속 시 경과 시간 계산 → 오프라인 보상 계산 → 결과 표시
|
||||
```
|
||||
|
||||
### 1.2 오프라인 보상 계산
|
||||
|
||||
```dart
|
||||
class OfflineProgressCalculator {
|
||||
/// 오프라인 보상 계산
|
||||
OfflineReward calculate({
|
||||
required DateTime lastPlayedAt,
|
||||
required int playerLevel,
|
||||
required CombatStats stats,
|
||||
}) {
|
||||
final duration = DateTime.now().difference(lastPlayedAt);
|
||||
final cappedMinutes = min(duration.inMinutes, maxOfflineMinutes);
|
||||
|
||||
// 분당 예상 전투 수 (레벨 기반)
|
||||
final battlesPerMinute = 2.0;
|
||||
final totalBattles = (cappedMinutes * battlesPerMinute).round();
|
||||
|
||||
// 오프라인 효율 (온라인의 50%)
|
||||
final efficiency = 0.5;
|
||||
|
||||
return OfflineReward(
|
||||
exp: (totalBattles * expPerBattle * efficiency).round(),
|
||||
gold: (totalBattles * goldPerBattle * efficiency).round(),
|
||||
items: generateOfflineItems(totalBattles, efficiency),
|
||||
duration: Duration(minutes: cappedMinutes),
|
||||
);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 1.3 오프라인 제한
|
||||
|
||||
| 항목 | 제한 |
|
||||
|------|------|
|
||||
| 최대 오프라인 시간 | 8시간 (480분) |
|
||||
| 오프라인 효율 | 온라인의 50% |
|
||||
| 사망 가능성 | 없음 (오프라인 중 사망 불가) |
|
||||
| 레벨업 | 가능 (최대 3레벨) |
|
||||
| 퀘스트 진행 | 불가 (전투만 계산) |
|
||||
| 스킬 사용 | 자동 (효율 계산에 포함) |
|
||||
|
||||
### 1.4 재접속 UI
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────┐
|
||||
│ │
|
||||
│ 🌙 오프라인 보상 │
|
||||
│ │
|
||||
│ 부재 시간: 4시간 32분 │
|
||||
│ │
|
||||
│ ───────────────────────── │
|
||||
│ 💰 획득 골드: 2,450 │
|
||||
│ ⭐ 획득 경험치: 12,800 │
|
||||
│ 📦 획득 아이템: 3개 │
|
||||
│ ───────────────────────── │
|
||||
│ │
|
||||
│ 레벨업! Lv.23 → Lv.24 │
|
||||
│ │
|
||||
│ [ 보상 받기 ] │
|
||||
│ │
|
||||
└─────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 1.5 백그라운드 진행 (모바일)
|
||||
|
||||
| 모드 | 동작 |
|
||||
|------|------|
|
||||
| 포그라운드 | 정상 진행 |
|
||||
| 백그라운드 (5분 이내) | 실시간 진행 유지 |
|
||||
| 백그라운드 (5분 초과) | 앱 일시 정지, 재진입 시 오프라인 계산 |
|
||||
| 완전 종료 | 오프라인 계산 |
|
||||
|
||||
### 1.6 관련 파일
|
||||
|
||||
| 파일 | 역할 |
|
||||
|------|------|
|
||||
| `core/service/offline_service.dart` | **신규** - 오프라인 보상 계산 |
|
||||
| `core/storage/last_played_storage.dart` | **신규** - 마지막 플레이 시간 저장 |
|
||||
| `features/game/widgets/offline_reward_dialog.dart` | **신규** - 보상 UI |
|
||||
|
||||
---
|
||||
|
||||
## 2. 플랫폼별 고려사항
|
||||
|
||||
### 2.1 플랫폼 지원 현황
|
||||
|
||||
| 플랫폼 | 지원 | 우선순위 | 특이사항 |
|
||||
|--------|------|----------|----------|
|
||||
| iOS | ✓ | 상 | App Store 심사 |
|
||||
| Android | ✓ | 상 | Google Play 심사 |
|
||||
| Web | ✓ | 중 | 브라우저 호환성 |
|
||||
| macOS | ✓ | 하 | 데스크톱 UI |
|
||||
| Windows | ✓ | 하 | 데스크톱 UI |
|
||||
| Linux | △ | 최하 | 테스트 제한적 |
|
||||
|
||||
### 2.2 플랫폼별 기능 차이
|
||||
|
||||
| 기능 | iOS | Android | Web | Desktop |
|
||||
|------|-----|---------|-----|---------|
|
||||
| 진동 | ✓ | ✓ | ✗ | ✗ |
|
||||
| 푸시 알림 | ✓ | ✓ | △ | △ |
|
||||
| 백그라운드 | △ | ✓ | ✗ | ✓ |
|
||||
| 클라우드 저장 | iCloud | Google Play | ✗ | ✗ |
|
||||
| IAP | App Store | Google Play | ✗ | ✗ |
|
||||
| 키보드 단축키 | ✗ | ✗ | ✓ | ✓ |
|
||||
|
||||
### 2.3 화면 크기 대응
|
||||
|
||||
| 카테고리 | 화면 크기 | 레이아웃 |
|
||||
|----------|----------|----------|
|
||||
| 소형 모바일 | < 360dp | 단일 컬럼, 축소 UI |
|
||||
| 일반 모바일 | 360-600dp | 단일 컬럼 |
|
||||
| 대형 모바일/태블릿 | 600-900dp | 2단 컬럼 |
|
||||
| 태블릿/데스크톱 | > 900dp | 3단 컬럼 |
|
||||
|
||||
### 2.4 플랫폼별 테스트 체크리스트
|
||||
|
||||
| 항목 | iOS | Android | Web |
|
||||
|------|-----|---------|-----|
|
||||
| 최소 OS 버전 | iOS 12+ | Android 6+ | 최신 브라우저 |
|
||||
| 기기 테스트 | iPhone SE, 15 Pro | 저사양, 고사양 | Chrome, Safari, Firefox |
|
||||
| 가로/세로 | 세로 고정 | 세로 고정 | 반응형 |
|
||||
| 노치/펀치홀 | SafeArea | SafeArea | N/A |
|
||||
| 다크 모드 | ✓ | ✓ | ✓ |
|
||||
|
||||
---
|
||||
|
||||
## 3. 향후 고려 사항
|
||||
|
||||
### 3.1 타임어택/스피드런 모드
|
||||
|
||||
| 기능 | 설명 |
|
||||
|------|------|
|
||||
| 타이머 표시 | 실시간 플레이 시간 표시 |
|
||||
| 구간 기록 | Act별 클리어 시간 |
|
||||
| 리더보드 | 최고 기록 순위 (향후 온라인) |
|
||||
| 고스트 데이터 | 이전 기록과 비교 (로컬) |
|
||||
|
||||
### 3.2 애널리틱스 (익명)
|
||||
|
||||
| 수집 데이터 | 목적 |
|
||||
|------------|------|
|
||||
| 레벨별 사망률 | 밸런싱 조정 |
|
||||
| 인기 스킬/장비 | 콘텐츠 밸런싱 |
|
||||
| 플레이 세션 시간 | 게임 흐름 개선 |
|
||||
| 이탈 지점 | 문제 구간 파악 |
|
||||
|
||||
### 3.3 다국어 확장
|
||||
|
||||
| 언어 | 우선순위 | 현황 |
|
||||
|------|----------|------|
|
||||
| 한국어 | 완료 | ✓ |
|
||||
| 영어 | 완료 | ✓ |
|
||||
| 일본어 | 높음 | 계획 |
|
||||
| 중국어 (간체) | 높음 | 계획 |
|
||||
| 중국어 (번체) | 중간 | 계획 |
|
||||
| 스페인어 | 중간 | 계획 |
|
||||
|
||||
### 3.4 개발자/디버그 모드
|
||||
|
||||
| 기능 | 설명 |
|
||||
|------|------|
|
||||
| 레벨 조정 | 즉시 레벨 변경 |
|
||||
| 아이템 지급 | 모든 아이템 획득 |
|
||||
| 골드 지급 | 무제한 골드 |
|
||||
| 무적 모드 | 사망 불가 |
|
||||
| 스킵 | 전투/시네마틱 스킵 |
|
||||
| 로그 표시 | 상세 디버그 로그 |
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user