Balancing Titans
Balancing Titans
Section titled “Balancing Titans”Create balanced titan encounters that challenge players without feeling unfair.
Core Balancing Principles
Section titled “Core Balancing Principles”The Three Pillars
Section titled “The Three Pillars”1. Telegraphed Danger
- All major damage must be telegraphed
- Telegraph duration matches attack power
- Visual clarity is paramount
2. Counterplay Windows
- Powerful attacks create vulnerability
- Players can punish greedy titans
- Skill expression through timing
3. Progressive Difficulty
- Phase 1: Tutorial (learn mechanics)
- Phase 2: Challenge (master mechanics)
- Phase 3: Test (execute perfectly)
Damage Scaling
Section titled “Damage Scaling”Damage per Cooldown
Section titled “Damage per Cooldown”Target DPS: 3-5 damage per second
Quick Attacks (2-4s cooldown):
"quick_slash": { "cooldown": "60", // 3 seconds "damage": "10.0" // 3.33 DPS}Medium Attacks (6-10s cooldown):
"charged_blast": { "cooldown": "160", // 8 seconds "damage": "28.0" // 3.5 DPS}Ultimate Attacks (20-30s cooldown):
"ultimate_explosion": { "cooldown": "500", // 25 seconds "damage": "80.0" // 3.2 DPS}Damage Type Multipliers
Section titled “Damage Type Multipliers”Base Damage Adjustments:
Physical (1.0x baseline):
{"damage": "20.0", "damageType": "PHYSICAL"}Fire (0.9x - DoT compensates):
{"damage": "18.0", "damageType": "FIRE"}// + 3-5 seconds of fire damageElectric (1.0x - stun/knockback):
{"damage": "20.0", "damageType": "ELECTRIC"}// + brief stunExplosion (1.1x - high knockback):
{"damage": "22.0", "damageType": "EXPLOSION", "knockback": "2.0"}Magic (1.0x - ignores armor):
{"damage": "20.0", "damageType": "MAGIC"}// Effective against tanky playersTelegraph Timing
Section titled “Telegraph Timing”Duration Formula
Section titled “Duration Formula”telegraph_duration = base_duration + (obb_size / 10)Base Durations by Type:
- WARNING: 1.0s base
- DANGER: 1.5s base
- CRITICAL: 2.5s base
Size Scaling Examples:
Small AOE (5 block radius):
WARNING: 1.0 + (5/10) = 1.5sDANGER: 1.5 + (5/10) = 2.0sLarge AOE (12 block radius):
DANGER: 1.5 + (12/10) = 2.7sCRITICAL: 2.5 + (12/10) = 3.7sTelegraph Type Guidelines
Section titled “Telegraph Type Guidelines”WARNING (Yellow):
- Damage: 8-15
- Size: Small-Medium (3-6 blocks)
- Frequency: High (2-4s cooldown)
- Phases: All phases
DANGER (Orange):
- Damage: 15-30
- Size: Medium-Large (6-10 blocks)
- Frequency: Medium (6-12s cooldown)
- Phases: 2-3
CRITICAL (Red):
- Damage: 30-60+
- Size: Large-Massive (10-15+ blocks)
- Frequency: Low (20-40s cooldown)
- Phases: 3 only (or enrage)
Vulnerability Windows
Section titled “Vulnerability Windows”Duration Guidelines
Section titled “Duration Guidelines”RECOVERING (1.3x damage):
Light Attacks:
{ "damage": "12.0", "vulnerability": {"state": "RECOVERING", "duration": "2500"} // 2.5s window, quick punish}Medium Attacks:
{ "damage": "22.0", "vulnerability": {"state": "RECOVERING", "duration": "4000"} // 4s window, decent punish}EXHAUSTED (1.8x damage):
Heavy Attacks:
{ "damage": "35.0", "vulnerability": {"state": "EXHAUSTED", "duration": "5000"} // 5s window, good punish}Ultimate Attacks:
{ "damage": "55.0", "vulnerability": {"state": "EXHAUSTED", "duration": "8000"} // 8s window, huge punish}Vulnerability Frequency
Section titled “Vulnerability Frequency”Phase 1 (100% HP):
- 20% of attacks → RECOVERING
- 5% of attacks → EXHAUSTED
Phase 2 (66% HP):
- 40% of attacks → RECOVERING
- 15% of attacks → EXHAUSTED
Phase 3 (33% HP):
- 60% of attacks → RECOVERING
- 25% of attacks → EXHAUSTED
Phase Progression
Section titled “Phase Progression”Health Thresholds
Section titled “Health Thresholds”Standard 3-Phase Fight:
{ "phases": [ {"healthThreshold": 1.0}, // Phase 1: 100-67% {"healthThreshold": 0.66}, // Phase 2: 66-34% {"healthThreshold": 0.33} // Phase 3: 33-0% ]}Extended 4-Phase Fight:
{ "phases": [ {"healthThreshold": 1.0}, // 100-75% {"healthThreshold": 0.75}, // 75-50% {"healthThreshold": 0.5}, // 50-25% {"healthThreshold": 0.25} // 25-0% ]}Stat Modifiers
Section titled “Stat Modifiers”Speed Scaling:
// Phase 1{"speedModifier": 1.0} // Baseline
// Phase 2{"speedModifier": 1.15} // +15% faster
// Phase 3{"speedModifier": 1.35} // +35% fasterDamage Scaling:
// Phase 1{"damageModifier": 1.0} // Baseline
// Phase 2{"damageModifier": 1.2} // +20% damage
// Phase 3{"damageModifier": 1.4} // +40% damageCombined Scaling:
{ "phases": [ { "healthThreshold": 1.0, "speedModifier": 1.0, "damageModifier": 1.0, "scaleModifier": 1.0 }, { "healthThreshold": 0.66, "speedModifier": 1.15, "damageModifier": 1.2, "scaleModifier": 1.05 }, { "healthThreshold": 0.33, "speedModifier": 1.35, "damageModifier": 1.4, "scaleModifier": 1.1 } ]}Move Pool Design
Section titled “Move Pool Design”Attack Variety
Section titled “Attack Variety”Good Move Pool (8-12 moves):
- 3-4 Basic attacks (spam-safe, low cooldown)
- 2-3 Special attacks (medium cooldown, unique mechanics)
- 1-2 AOE attacks (punish clumping)
- 1-2 Ultimate attacks (high cooldown, major threat)
Example Charizard Move Pool:
{ "moves": { // Basic (Phase 1-3) "slash": {"cooldown": "60", "damage": "10.0"}, "bite": {"cooldown": "80", "damage": "12.0"},
// Special (Phase 2-3) "flamethrower": {"cooldown": "160", "damage": "20.0"}, "wing_attack": {"cooldown": "140", "damage": "18.0"}, "dragon_claw": {"cooldown": "180", "damage": "24.0"},
// AOE (Phase 2-3) "fire_spin": {"cooldown": "200", "damage": "22.0"}, "heat_wave": {"cooldown": "220", "damage": "25.0"},
// Ultimate (Phase 3) "blast_burn": {"cooldown": "500", "damage": "50.0"} }}Move Weights
Section titled “Move Weights”Baseline Weight: 1.0
Higher Weight (more frequent):
"basic_attack": { "weight": 1.5, // 50% more likely "cooldown": "60"}Lower Weight (less frequent):
"ultimate": { "weight": 0.5, // 50% less likely "cooldown": "500"}Conditional Weights:
"charge_attack": { "weight": 1.0, "condition": "q.target_distance > 8.0 ? 2.0 : 0.5" // 2x weight if far, 0.5x if close}Phase-Specific Moves
Section titled “Phase-Specific Moves”Phase 1 Only:
"tutorial_slam": { "minHealthPercent": 0.66, "maxHealthPercent": 1.0}Phase 2-3:
"advanced_combo": { "minHealthPercent": 0.0, "maxHealthPercent": 0.66}Phase 3 Only:
"desperate_ultimate": { "minHealthPercent": 0.0, "maxHealthPercent": 0.33}Player Count Scaling
Section titled “Player Count Scaling”Dynamic Difficulty
Section titled “Dynamic Difficulty”Solo (1 player):
{ "damageModifier": 0.8, // -20% damage "speedModifier": 0.9, // -10% speed "healthModifier": 0.7 // -30% HP}Small Group (2-3 players):
{ "damageModifier": 1.0, // Baseline "speedModifier": 1.0, "healthModifier": 1.0}Large Group (4-6 players):
{ "damageModifier": 1.2, // +20% damage "speedModifier": 1.1, // +10% speed "healthModifier": 1.5 // +50% HP}Implementation:
{ "type": "molang_script", "script": "var playerCount = q.entities_in_range(30.0); q.set_max_health(q.user_max_health * q.lerp(0.7, 1.5, (playerCount - 1) / 5.0));"}Testing Methodology
Section titled “Testing Methodology”Test Matrix
Section titled “Test Matrix”Solo Test:
- Can 1 skilled player win?
- Time to kill: 5-10 minutes
- Death count: 2-4 attempts acceptable
Group Test (3 players):
- Can average players win?
- Time to kill: 3-6 minutes
- Death count: 1-2 attempts
Hardcore Test (6 players):
- Still challenging?
- Time to kill: 2-4 minutes
- Requires coordination
Iteration Checklist
Section titled “Iteration Checklist”Damage Tuning:
- No one-shot attacks (except clearly telegraphed ultimates)
- Players can recover from 1-2 hits
- Chip damage forces healing/food
- Ultimate attacks feel impactful but dodgeable
Telegraph Clarity:
- All dangerous attacks telegraphed
- Colors match threat level
- Telegraph duration feels fair
- OBB matches visual feedback
Phase Transitions:
- Clear visual/audio feedback
- Brief invulnerability or pause
- New mechanics introduced gradually
- Difficulty curve feels smooth
Attack Variety:
- No spam attacks (cooldowns enforced)
- Mix of melee/ranged/AOE
- Conditional attacks trigger appropriately
- Ultimate attacks feel special
Common Balancing Issues
Section titled “Common Balancing Issues”Issue: Too Easy
Section titled “Issue: Too Easy”Symptoms:
- Players barely take damage
- Fight over in <2 minutes
- No deaths
Fixes:
- Increase damage by 20-30%
- Reduce telegraph duration by 0.5s
- Increase attack frequency (lower cooldowns)
- Add more aggressive AI states
Issue: Too Hard
Section titled “Issue: Too Hard”Symptoms:
- Players die instantly
- Can’t see telegraphs in time
- Unavoidable damage
Fixes:
- Reduce damage by 20-30%
- Increase telegraph duration by 0.5-1.0s
- Add more vulnerability windows
- Reduce attack frequency
Issue: Unfair/Unfun
Section titled “Issue: Unfair/Unfun”Symptoms:
- “Cheap” deaths
- No counterplay
- Tedious rather than challenging
Fixes:
- Always telegraph major damage
- Add vulnerability after big attacks
- Ensure OBB matches visuals
- Reduce unavoidable chip damage
Issue: One-Dimensional
Section titled “Issue: One-Dimensional”Symptoms:
- Same attack over and over
- Predictable pattern
- Boring fight
Fixes:
- Add more moves to pool
- Adjust move weights
- Add conditional moves
- Create dynamic state machine
Example: Balanced Titan
Section titled “Example: Balanced Titan”Mewtwo - Psychic Titan
Section titled “Mewtwo - Psychic Titan”Target Audience: 2-4 players, intermediate skill
Stats:
{ "level": 70, "maxHealth": 800, "baseSpeed": 1.0, "baseDamage": 1.0}Phase 1 (800-533 HP):
{ "healthThreshold": 1.0, "speedModifier": 1.0, "damageModifier": 1.0, "moves": [ "confusion", // 8 damage, 3s cooldown, WARNING "psychic", // 15 damage, 8s cooldown, DANGER "barrier" // Damage immunity, 20s cooldown ]}Phase 2 (533-267 HP):
{ "healthThreshold": 0.66, "speedModifier": 1.2, "damageModifier": 1.2, "moves": [ "psychic", // 18 damage (1.2x), 8s cooldown "psycho_cut", // 22 damage, 10s cooldown, DANGER "teleport_strike", // 25 damage, 12s cooldown, DANGER "psychic_field" // 15 damage, DoT, 18s cooldown ]}Phase 3 (267-0 HP):
{ "healthThreshold": 0.33, "speedModifier": 1.4, "damageModifier": 1.4, "moves": [ "psycho_cut", // 31 damage (1.4x), 10s cooldown "teleport_strike", // 35 damage, 12s cooldown "psychic_storm", // 40 damage, AOE, 20s cooldown, CRITICAL "psycho_break" // 60 damage, ultimate, 30s cooldown, CRITICAL ]}Expected Fight Duration: 4-6 minutes Expected Deaths: 1-2 before victory DPS Check: ~2.5 damage per second output required
Balancing for Different Difficulty Levels
Section titled “Balancing for Different Difficulty Levels”Easy Mode
Section titled “Easy Mode”Modifiers:
{ "damageModifier": 0.7, // -30% damage "speedModifier": 0.8, // -20% speed "healthModifier": 0.8, // -20% HP "telegraphBonus": 0.5 // +0.5s all telegraphs}Use For: Casual players, learning fights
Normal Mode (Baseline)
Section titled “Normal Mode (Baseline)”Modifiers:
{ "damageModifier": 1.0, "speedModifier": 1.0, "healthModifier": 1.0}Use For: Standard difficulty
Hard Mode
Section titled “Hard Mode”Modifiers:
{ "damageModifier": 1.3, // +30% damage "speedModifier": 1.2, // +20% speed "healthModifier": 1.4, // +40% HP "telegraphReduction": -0.3 // -0.3s all telegraphs}Use For: Experienced players, challenge runs
Nightmare Mode
Section titled “Nightmare Mode”Modifiers:
{ "damageModifier": 1.6, "speedModifier": 1.4, "healthModifier": 2.0, "telegraphReduction": -0.5, "vulnerabilityReduction": 0.5 // Half vulnerability duration}Use For: Expert players only
Next Steps
Section titled “Next Steps”- Creating Custom Moves → - Design new attacks
- Fight Config Builder → - Visual fight editor
- State Machines → - AI behavior tuning
Create challenging, fair, and fun boss encounters! ⚖️