Dev log: 2026-04-01 v1.9
Spawn system: Rewrote spawning to use a continuous spawn rate with an accumulator so enemies appear smoothly instead of in rigid batches. Starting rate is 0.3 spawns per second and it increases by 0.12 spawns per second each wave. Wave 1 only spawns runners.
Enemy and player scaling: Enemy damage increases by 10 percent each wave for both contact and projectile attacks. Player max HP grows by 5 each wave and the player heals that amount at wave start. Player growth is intentionally slower than enemy damage so runs stay challenging.
Elites and new enemy: Added Elite enemies from wave 5 with about a 10 percent chance to spawn. Elites have roughly double HP, 1.3× speed, 1.5× damage, and 3× XP. They get a gold outline and guaranteed pickup drops. Added a new enemy called Crawler with design stats around 30 HP, speed 200, damage 8, and 25 XP. Rendering and spawn integration for the Crawler are implemented.
Pickups and rewards: Implemented medkits that heal about 25 and ammo crates that refill reserve or boost ammo. Pickups have spawn probabilities and despawn timers. Elite deaths guarantee a drop. XP rewards include elite multipliers.
UI and screens: Added a centered wave announcement overlay that fades in about 1.5 seconds. Converted the ABOUT / HOW TO PLAY screen into a live visual wiki that renders in-game previews using the game’s draw functions so the visuals match actual assets.
Balance and tuning notes: The spawn smoothing and tuning reduce the sharp difficulty jump from wave 1 to wave 2. Damage scaling is designed to outpace HP gains to keep progression meaningful. The current numbers are early and should be validated with playtesting and adjusted as needed.
Files touched: Modified game.html and updated README.md. Added CHANGELOG-TODAY.md.
Next steps for the me: Playtest waves 1 through 6 and check feel. Verify how difficulty modifiers interact with the new scaling. If desired, add SFX for pickups and elite deaths and polish medkit and ammo visuals. Iterate on spawnRate increments, damage-per-wave multipliers, and pickup chances after testing.