# Skybound Survivor-Like Balance Curve Pass **Date**: 2026-04-24 **Project**: Skybound Protocol **Author**: Codex **Status**: Raw gameplay balance pass from user playtest feedback ## 1. Playtest Feedback The game shell looked close to Survivor.io / Vampire Survivors, but the actual gameplay did not feel like that genre. Reported issues: - gameplay did not deliver enough horde-survival pressure - stage balance felt uneven - TAC Level Up pacing felt unbalanced - growth did not form a satisfying user-facing curve ## 2. Diagnosis The previous balance leaned closer to a shmup / tactical shooter. Main causes found in code: - simultaneous enemy cap was too low for a horde-survival feel - procedural spawn did not fully use the timeline `spawnIntervalMult` - early EXP requirement was too high - EXP growth multiplier was too steep - stage difficulty scaled enemy/bullet stats too aggressively - stage scripted events were compressed too early in the timeline - TAC Level Up card offers were weighted but not structured, so the user could receive awkward choices - starter skill offers could omit key horde-survival archetypes ## 3. Target Curve New target: - first meaningful upgrade should arrive quickly - player should see more enemies on screen - enemies should be individually weaker - danger should come from density and positioning, not bullet stat spikes - level-up choices should consistently support build formation - stage progression should rise smoothly rather than jump sharply ## 4. Applied Balance Changes ### EXP and Level-Up Changes: - initial required EXP lowered from `100` to `45` - normal enemy EXP increased from `5` to `7` - elite EXP increased from `25` to `32` - level-up EXP multiplier changed from steep `1.60 / 1.72 / 1.85` to smoother `1.24 / 1.30 / 1.36 / 1.42` Expected result: - early TAC Level Ups arrive faster - the player can form a build before the first spike - later progression still slows down without becoming a wall ### TAC Level Up Card Structure The card generator now tries to offer: - one owned skill upgrade - one synergy / spike-counter / EVO-supporting option - one flexible option Expected result: - fewer dead-choice screens - higher chance of completing coherent builds - less frustration from random-only card pools ### Starter Selection Starter cards now come from three archetype buckets: - primary damage - area / crowd control - utility / defense Expected result: - every run begins with a usable horde-survival foundation - the first choice feels strategic without becoming punishing ### Enemy Density and Spawning Changes: - hard enemy cap increased from `30` to `90` - timeline phase caps increased by stage and phase - procedural spawn interval now uses `spawnIntervalMult` - procedural spawns can arrive in small batches - formation spawns now occur more often - individual enemy HP and speed were reduced to support higher density - elite chance is now a gradual probability instead of flipping too hard by difficulty Expected result: - more screen-filling horde pressure - less empty movement time - more satisfying weapon-clearing moments ### Stage Curve Changes: - stage duration curve changed from `120 + stage * 30s` to `150 + stage * 18s` - stage difficulty scaling reduced from steep `+0.4 per stage` to smoother `+0.18 per stage` - phase difficulty multipliers were lowered - phase enemy caps were increased - scripted wave events are distributed across the stage instead of firing too early Expected result: - stages feel less spiky and more readable - difficulty rises through density and phase rhythm - player has time to grow before major pressure events ### Enemy Bullet and Damage Pressure Changes: - enemy bullet speed curves were reduced - damage curves were reduced - bullet caps were reduced - global enemy bullet speed multiplier reduced - enemy projectile damage multipliers reduced Expected result: - gameplay moves away from bullet-hell punishment - movement pressure still exists, but horde positioning becomes the main focus ### Weapon Rhythm Several weapon cooldowns were shortened so early picks feel active sooner. Nova Burst was also adjusted to trigger sooner and scale more clearly as an AoE crowd-control tool. ## 5. Changed Runtime Paths Important changed paths: - `/Volumes/Data/project/Antigravity/Skybound/src/features/game/config/balance.ts` - `/Volumes/Data/project/Antigravity/Skybound/src/features/game/config/CombatTimeline.ts` - `/Volumes/Data/project/Antigravity/Skybound/src/features/game/config/weaponBehaviors.ts` - `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/SpawnerSystem.ts` - `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/ProgressionSystem.ts` - `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/CombatSystem.ts` - `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/ModularWeaponSystem.ts` - `/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/types.ts` - `/Volumes/Data/project/Antigravity/Skybound/src/features/game/hooks/useGameEngine.ts` - `/Volumes/Data/project/Antigravity/Skybound/src/features/game/store/useGameStore.ts` ## 6. Verification Production build completed successfully with: ```bash npm run build ``` The existing `/sprites/player.png` static path warning remains non-blocking. ## 7. Next Playtest Questions Recommended next playtest checks: - Does the first level-up happen within a satisfying time window? - Does the screen feel populated without becoming unreadable? - Do weapons feel like they clear hordes? - Do stage spikes feel earned rather than sudden? - Does TAC Level Up usually offer at least one desirable choice?