- 121KB 단일 문서를 22개 태스크 문서로 분리 - 메인 인덱스 문서 (game-system-overhaul-index.md) 생성 - Phase 1-10 태스크 문서 10개 분리 - 추가 시스템 태스크 문서 10개 분리 - 재미 요소 설계 문서 1개 분리 - 기존 문서는 archive/ 폴더로 이동
3.2 KiB
3.2 KiB
Phase 6: 밸런싱
1. 목표
레벨 1-100 구간에서 적절한 난이도 곡선을 설계한다.
2. 레벨 구간 설계
| 구간 | 레벨 | 특징 | 예상 플레이 시간 |
|---|---|---|---|
| 초반 | 1-20 | 튜토리얼, 기본 시스템 학습 | 1-2시간 |
| 중반 | 21-50 | 본격적인 성장, 다양한 스킬 | 3-5시간 |
| 후반 | 51-80 | 고급 장비, 어려운 몬스터 | 5-8시간 |
| 엔드게임 | 81-100 | 최종 보스, 명예의 전당 | 3-5시간 |
3. 경험치 곡선
레벨업 필요 경험치 = 기본값 * (1.15 ^ 레벨)
기본값 = 100
레벨 10: 405 exp
레벨 50: 108,366 exp
레벨 100: 11,739,085 exp
4. 몬스터 스탯 스케일링
MonsterStats generateMonster(int level, MonsterType type) {
final baseStats = MonsterStats(
hp: 50 + level * 20 + (level * level / 5).round(),
atk: 5 + level * 3,
def: 2 + level * 2,
exp: 10 + level * 5,
gold: 5 + level * 3,
);
return _applyTypeModifier(baseStats, type);
}
4.1 몬스터 타입별 배율
| 타입 | HP | ATK | DEF | EXP | GOLD |
|---|---|---|---|---|---|
| 일반 | 1.0x | 1.0x | 1.0x | 1.0x | 1.0x |
| 정예 | 2.0x | 1.3x | 1.2x | 2.0x | 2.0x |
| 미니보스 | 5.0x | 1.5x | 1.5x | 5.0x | 5.0x |
| 보스 | 10.0x | 2.0x | 2.0x | 15.0x | 10.0x |
| 최종보스 | 20.0x | 2.5x | 2.5x | 50.0x | 30.0x |
4.2 보스 몬스터 특수 스탯
class BossStats extends MonsterStats {
final List<BossPhase> phases;
final double enrageThreshold; // 분노 HP %
final double enrageMultiplier; // 분노 시 스탯 배율
final bool hasShield; // 보호막 여부
final int shieldAmount; // 보호막 수치
}
| 보스 | 특수 능력 |
|---|---|
| Syntax Error Dragon | 페이즈 3에서 연속 공격 |
| Memory Leak Hydra | HP 30% 이하 시 회복 |
| Buffer Overflow Titan | 보호막 (일정 데미지 흡수) |
| Kernel Panic Archon | 분노 시 스턴 공격 |
| Glitch God | 5페이즈, 각 페이즈별 완전히 다른 패턴 |
5. 사망 확률 목표
| 레벨 구간 | 목표 사망 확률 (전투당) |
|---|---|
| 1-20 | 1-3% |
| 21-50 | 3-5% |
| 51-80 | 5-10% |
| 81-100 | 10-20% |
6. 밸런스 테스트 도구
/// 시뮬레이션으로 밸런스 검증
class BalanceSimulator {
/// 특정 레벨 구간을 N회 시뮬레이션
SimulationResult simulate({
required int startLevel,
required int endLevel,
required int iterations,
});
}
class SimulationResult {
final double averageDeaths;
final double averageTimeMinutes;
final double survivalRate;
final List<String> deathCauses;
}
7. 수정 대상 파일
| 파일 | 변경 내용 |
|---|---|
core/util/balance_constants.dart |
신규 - 밸런스 상수 |
core/util/pq_logic.dart |
경험치/몬스터 스케일링 |
data/pq_config_data.dart |
몬스터 레벨 재조정 |
test/balance_test.dart |
신규 - 밸런스 테스트 |
8. 예상 작업량
- 예상 파일 수: 4-5개
- 신규 코드: ~300 LOC
- 수정 코드: ~400 LOC
- 테스트 및 조정: 반복 작업 필요