Files
asciinevrdie/doc/task-phase-06-balance.md
JiWoong Sul b110b2dc53 docs: 게임 시스템 개편 계획 문서 분리
- 121KB 단일 문서를 22개 태스크 문서로 분리
- 메인 인덱스 문서 (game-system-overhaul-index.md) 생성
- Phase 1-10 태스크 문서 10개 분리
- 추가 시스템 태스크 문서 10개 분리
- 재미 요소 설계 문서 1개 분리
- 기존 문서는 archive/ 폴더로 이동
2025-12-16 19:33:57 +09:00

3.2 KiB

Phase 6: 밸런싱

메인 문서: game-system-overhaul-index.md


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
  • 테스트 및 조정: 반복 작업 필요