
Crownfall: An Incremental Defense
Crownfall is a pixel-art medieval wave-defense incremental. You command a row of heroes on a stone wall. Goblins, chargers, archers, healers, witches, and crowned bosses pour out of the field on the right. Hold them off as long as you can — every death banks Research Points and Crowns that permanently upgrade your fortress.
You will die. A lot. Every run makes the next one stronger.
Latest Update — Critical Save-Import Bug Fix
If you have ever tried to restore a save and watched it silently revert to a near-default state, this was the bug. Every save import was broken; the success message lied. Anyone moving a save between browsers, devices, or restoring from a backup would lose their progress without any error.
The fix is one of the most important commits since launch. Please re-import any save you previously thought was lost — the file itself is still good; only the import path was broken.
What was happening
The import wrote the new save to localStorage correctly, then scheduled a 700ms reload. But during the reload navigation, the page's own exit handlers (pagehide / beforeunload / visibilitychange) fired and called flushAllSaves(), which serialized the stale pre-import in-memory state straight back over the freshly-imported localStorage. By the time the new page loaded, your imported data had already been overwritten with whatever was in memory at the moment you clicked Overwrite.
The fix: a _suppressFlushSaves flag that the import path sets before writing localStorage. The exit handlers see the flag and become no-ops during the import → reload window. Imported data now survives the navigation intact.
Verified end-to-end
Tested with the original reported save — every field that was previously being lost now imports correctly:
- RP, total RP, Crowns, total Crowns — all preserved
- All purchased research nodes (35 in the test save) — all preserved
- Repeatable-node stack counts — preserved
- Best wave, total kills, total runs, all stats — preserved
- All unlocked achievements — preserved
- Prestige deepest wave + last ancestry picks — preserved
- Every commander config (owned, auto-hire, auto-imbue, auto-skin, upgrade preset) — preserved
- Every Settings toggle (auto-buy, auto-spend Crowns, auto-prestige, AFK auto-restart, auto-dismiss events, game speed) — preserved
Subsequent natural saves work normally because the suppress flag only applies during the brief import → reload window.
Previous update — Onboarding, Shield Rework & Background-Tab Fix (click to expand)
Four follow-up fixes after the overnight-automation drop, all prompted by real player issues with the new auto-cast loop and the discovery curve for the early game.
First commander is free
Old cost ramp was 3 / 5 / 7 / 9 / 11 Crowns. New players had to burn through many runs collecting their first 3 Crowns just to unlock a single commander — which gates discovery of the entire automation system.
Now the first commander costs 0 Crowns. Subsequent commanders ramp 3 / 5 / 7 / 9. The buy panel shows a green "FREE" badge and a friendlier nudge.
Coin Magnet (auto-pickup gold) is now a first-run unlock
Used to live deep in the economy chain — Guild Ledger → Tithe + Vault → Coin Magnet (9 RP, 19 RP total across 3 prereqs). Now ties directly to root, costs 4 RP, and is the kind of thing you can grab on your second or third run.
Shielded enemies are no longer a soft-lock for archer-only teams
Shielded Goblins and Iron Vanguard bosses used to make archer arrows ricochet off forever. With auto-cast on, a single shielded enemy could solo-stall a pure-archer team indefinitely. Now shields have their own HP pool that absorbs arrows until broken (40% of body HP for minions, 30% for bosses). Crossbow / cannon / mage paths unchanged — they still bypass the shield entirely. Visual feedback: shield tints darker as it erodes, white flash on every absorbed hit, "SHIELD!" floating text on the breaking hit, and the shield is no longer drawn once broken.
Background tab now credits offline RP automatically
Browsers throttle requestAnimationFrame to ~1Hz when a tab is hidden, so a backgrounded run was running ~10× slower than wall-clock. Live wave advancement still freezes while the tab is hidden (would take a Web Worker to fix), but the existing offline-RP system now also fires on tab-visibility return — so progression isn't lost. 30-second floor (so quick alt-tabs aren't rewarded for nothing), 5-minute toast threshold (so brief absences silently credit small RP without spamming the popup queue).
Previous update — Full Overnight Automation (click to expand)
Closing every remaining manual-click gap for players who want the game to run unattended. Five new systems, every new toggle defaults to OFF — manual play is unchanged unless you opt in.
1. Skill loadout — equipped skills auto-restore on every run
Slots used to clear to empty on every resetRun(). Now every slot remembers what you had equipped, and the next run auto-fills it. New × button in each slot's top-right corner lets you swap a skill mid-loadout.
2. Active-skill auto-cast — per-slot toggle with smart targeting
Every filled skill slot has a small A button in the bottom-left. Click it ON and the slot fires automatically whenever cooldown's ready and per-skill conditions are met. Smite picks the highest-HP enemy (bosses get 2× weight). Meteor / Stun Bomb scan for the densest enemy cluster. Heal Wall fires when wall HP drops below 60% with enemies present. Rally / Frost Nova gated by enemy count.
3. Auto-Buy Research (RP)
New Settings toggle. When ON, once per second the cheapest affordable repeatable RP-only research node auto-buys. One-shot nodes always require a manual click. Designed for overnight farmers whose AFK Auto-Restart banks RP across many runs.
4. Auto-Spend Crowns
Sibling toggle to #3, but for crown-only repeatable nodes.
5. Auto-Prestige (gameover trigger)
The capstone. When toggled ON, every gameover with banked RP at or above your chosen threshold automatically prestiges and starts a fresh run with no modals. Re-uses the ancestry picks from your most-recent manual prestige. The first prestige is always manual so the ancestry choice is conscious.
The complete overnight loop
With every new toggle ON, the game now: auto-hires heroes, auto-upgrades them via round-robin gold distribution, auto-imbues their elements, auto-skins them, auto-casts every active skill with sensible targeting, auto-collects coins / auto-taps enemies, auto-dismisses mid-event modals, auto-restarts the run on stall, auto-retries on wall-breach, auto-buys repeatable research nodes, auto-prestiges when the threshold is met, and auto-credits offline RP at the rolling rate when you come back.
Previous update — Late-Game Scaling Pass (click to expand)
Every flat-number system in the game now scales with wave so it stays relevant from wave 1 through endless.
Active skills now scale with wave + Arcane Mastery
Every Smite, Meteor, and Heal Wall cast multiplies by (1 + wave × 0.10). New repeatable research node Arcane Mastery — 5 ranks × +20% potency. At wave 50 with full ranks: Smite 60→720 (boss 1,440), Meteor 100→1,200, Heal Wall 35→420.
Field hazards wave-scale too
Same curve applied to Spikes / Tar Pit / Brazier / Bear Trap damage. CC durations untouched.
Passive + event heals also wave-scale
Cleric Mending, Bard Healing Chorus, Healing Tonic, Hermit Blessing all scale the same way. Wave 0 / wave 1 numbers identical to before — purely additive.
Older update — Boss Rescaling, Skin Specialties, Soft-Lock Fix & Quality Pass (click to expand)
Direct follow-up to rofltastic's review thread. Wave-41 stalemate, the busted auto-upgrade AI, the wave-10 wall, the brutal ranged boss, alt skins that finally do something, a UI polish pass, and a sweeping code-review pass that fixed roughly 30 latent bugs and inconsistencies. AFK toolkit defaulted ON at conservative settings.
Boss rescaling (wave 10 is no longer a wall)
- Boss HP curve softened. Old
150 × 1.18^w→ new80 × 1.14^w. Wave 10: 785 → 296. Wave 50: 589k → 56k. - Ranged boss damage nerfed. Wave-10 archer boss had 9 dmg/arrow at 1.54s and parked outside Archer's range. Now 8 dmg at 2.2s.
Skin specialties — alt skins now grant a thematic bonus
Each of the 12 alt skins costs 3 Crowns. They used to be pure palette swaps. Now every skin grants a small thematic specialty: +25% Fire / Poison / Bleed / Holy damage, +1 Pierce, +25% splash radius / damage, bard aura buffs.
Anti-soft-lock bundle
- Damage upgrades: +1 OR +10% of base damage per upgrade, whichever is larger.
- Bosses fully immune to knockback.
- Sell Hero button — 50% refund on any filled slot.
- Priority targeting — Closest / To Wall / Low HP / High HP / Tanks per hero.
AFK / Idle toolkit (on by default)
- Auto-Dismiss Events — ON at 60s default.
- AFK Auto-Restart — ON at 10 min default.
- Offline progress — RP-per-minute rolling average credited on next boot.
- Wall Breached auto-retry — 10s countdown.
Quality pass — ~30 latent bug fixes
Daily-score corruption, "Wipe Everything" missing fields, wrong best-wave timing, mid-run research not applying, lifetime stats stuck at 0, healWall centralisation, cannon splash dropping skin bonuses, Duskblade's bleed bonus being a no-op, crossbow bypassing Hunter's Mark, Smite/Meteor skipping armor properly, StunBomb hitbox off-by-3, misleading research-node descriptions, bard aura actually applying, performance throttles, defensive guards.
Older update — Wolf, Bards & QoL Polish (click to expand)
Older update — Prestige Tree Expansion (click to expand)
Older update — Levels, Crits & Commander Polish (click to expand)
Older update — Controls & Comfort Pass (click to expand)
Older update — Player Feedback Patch (click to expand)
Features
- 6 hero classes — Archer, Crossbow, Cannoneer, Mage, Cleric, Bard. Each with its own pool of weapon imbuements (Fire, Ice, Poison, Bleed, Knockback, Stun, Holy, Hex…).
- 12 hero skin specialties — alt palette swaps each grant a small thematic bonus. Picking a skin becomes a build choice, not just a color choice.
- Deep Bard support path — 7 research nodes scaling aura strength, damage buff, range, and passive wall regen.
- Hero leveling & crits — XP per kill, 0% → 30% crit chance scaling, 2× damage inherited through splash + chains.
- 7 enemy archetypes including the Battering Ram, plus 7 boss variants every 10th wave. Shielded enemies' shields now have their own HP pool — archer arrows chip them down until broken; crossbows / cannons / mages still bypass entirely.
- 6 active skills — Smite, Meteor, Heal Wall, Rally, Frost Nova, Stun Bomb. Free to equip, cooldown-gated only. Damage / heal scales with wave + repeatable Arcane Mastery research. Per-slot auto-cast toggle for AFK play.
- 5 field hazards — Wooden Spikes, Caltrops, Tar Pits, Watchfire Braziers, Bear Traps. Damage scales with wave so they stay relevant in late game.
- Special event waves — Blood Moon, Night of the Restless, Goblin Horde, Champion's Challenge, Plague Wave, Siege Engines.
- Color-coded range indicators — every hero class draws a distinct-colored range ring; bards show their buff aura too.
- Research Book with 12 chapters and 100+ nodes. Quality-of-life unlocks (Coin Magnet auto-pickup, Quick Hands, Restless Hand) all branch directly from root so they're available on the first run.
- 20-bonus Prestige tree — lategame damage scaling, a walking pixel-art war wolf (120 HP, bard-healable), dual elemental imbues, wall-revive safety nets, node preservation across wipes.
- Endless Zone — clear wave 50 for a permanent 1.5× RP multiplier.
- Daily Challenge — same seed for every player on a given day.
- Commander automation — per-slot Auto-Hire / Auto-Upgrade / Auto-Imbue / Auto-Skin. First commander is free; subsequent commanders cost 3 / 5 / 7 / 9 Crowns. Round-robin gold distribution. Wall auto-tap via research.
- Full overnight automation — Skill Loadout (slots auto-restore), Active-Skill Auto-Cast (per-slot toggle, smart targeting), Auto-Buy Research (RP), Auto-Spend Crowns, Auto-Prestige, Auto-Dismiss Events, AFK Auto-Restart, Wall Breached auto-retry, Offline-progress RP (also credits on tab-return). Manual play unchanged unless you opt in.
- Sell Hero + Priority Targeting — 50% refund on any filled slot, plus per-hero target priority (Closest / To Wall / Low HP / High HP / Tanks).
- 15 achievements + a Hall of Records stats page.
- Bestiary — every enemy and boss from the Pause menu.
- Save export/import — back up your progress to a single text code. Imports now survive the reload (pre-fix, exit handlers were silently overwriting imported data with the in-memory state mid-navigation).
- Mobile-friendly — works in landscape on phones; built-in fullscreen button.
Controls
- Click — hire heroes, buy upgrades, collect coins, tap enemies
- Hold on an enemy — keep damaging it while pressed
- Swipe over coins — auto-collect
- Double-click WAVE block — skip to the next wave
- 1–5 — cast skill in slot N
- × on a skill slot — clear that slot (also clears loadout memory)
- A on a skill slot — toggle auto-cast for that skill
- Q — end run, bank Research Points
- R — open research book
- Space — pause/resume
- M — mute sound
Tech notes
Single self-contained index.html. No installs, no accounts, no analytics. Runs offline once loaded. Progress is saved in your browser's localStorage — clearing site data wipes your save. Use the in-game Settings → Export Save to back it up.
Made with Canvas, coffee, and a deep love of crunchy pixel art.
| Status | Released |
| Platforms | HTML5 |
| Author | Westicles |
| Genre | Strategy |
| Tags | browser, Idle, Incremental, Medieval, Pixel Art, prestige, Singleplayer, Tower Defense, wave-defense |
| AI Disclosure | AI Assisted, Code, Graphics, Text |




Comments
Log in with itch.io to leave a comment.
Game is very fun, but also very grindy. Would like to automate events (maybe after 5-10 second timer or toggle defaults from a menu, maybe unlock this after first prestige? Even just a simple skip event toggle would work too). Automating runs would be great too (I love overnighting idle/incremental games).
Damage upgrade does not scale well, especially noticeable on higher waves (+10% more damage multiplier instead of +1 damage would be nice). Knockback on cannons is overpowered, especially on bosses. Pushing to more than 6 prestige points on the first run is very hard with the wrong setup. Might be an end-game balance issue. I soft locked on wave 41 and ended up in a stale-mate because of the wrong setup (pretty much all crowd control and not enough damage). Sell hero button would be great for a partial refund incase I want to change my setup during a long run.
Priority targeting would be great (i.e. close, high hp, low hp, etc.). Better automated upgrades would be nice (it seems to dump all my gold into the top hero and mostly ignore the other ones. It also seems to spend most gold on damage even though speed is a top priority).
Hey rofltastic, thanks for the really detailed writeup. Honestly this list hit almost every sharp edge I'd been circling. Just pushed a patch that directly addresses every point.
Automation for overnighters
The wave-41 soft-lock story
Commander auto-upgrade (the real fix)
dmg-firsteven when you'd set speed priority. Fixed.Thanks again. Detailed feedback like this is the most useful thing a player can give a dev. Let me know if anything still feels off after the patch, especially how AFK Auto-Restart plays overnight for you.
The archers' damage got way worse. Instead of 4 => 5 => 6 damage now they do 4 => 4.1 => 4.2.
Good catch, that was a bug. My last patch switched damage upgrades from flat +1 to "+2% of the hero's base damage" per level, meant to scale better at late waves. For the archer (base 4) that's only +0.08 per level. Effectively a nerf at every level for every hero in the game. Definitely not what I wanted.
Just pushed a fix. New formula is +1 OR +10% of base, whichever is larger:
So the floor is the chunky feel you remember, the ceiling actually scales into late waves. Thanks for flagging it quickly, sorry for the break.
Played for a few more hours and prestiged. Some more thoughts:
Monsters spawn offscreen at top and bottom it's kind of annoying. Sometimes you can get unlucky and a boss will spawn almost directly next to your wall.
Events are boring also merchants should probably be free. Every time I get a merchant event I have no gold because of my commander. Or maybe some kind of upgrade to automate them?
The screen flash on taking damage happens way too often. The later waves you will have a hundred monsters attacking your wall at one time and the flashes are crazy annoying to look at.
The prestige for Scholar's mind is absolutely broken and unfun. You kill one monster and reset for 4 rp. Honestly prestiging in general should be more powerful. It's a grind to get to the later waves for little to no power.
Also maybe skills shouldn't cost gold I don't know.
Overall it's a fun game though. I think the prestige is just too grindy and redoing everything is not very fun a second time.
Another round of changes just went live, driven almost entirely by this comment. Thank you — genuinely.
Monster spawn locations — fixed. Bosses now always spawn from the far right edge (no more materializing inches from the wall via an unlucky top/bottom roll). Minion top/bottom spawns also pushed deeper into the field with a minimum 90px distance from the wall. Even surprise-angle spawns give you a beat to react.
Merchants too expensive — prices cut ~40%: Healing Tonic 40g→25g, Sharpening Stone 75g→45g, Lucky Charm 60g→40g. Affordable even on a commander-drained purse. "Automate events" is a good idea I'm still sitting on — might ship as a prestige bonus down the line.
Screen flash spam during swarms — was a real bug. 100+ enemies whaling on the wall every frame kept re-triggering the flash before the previous one faded, locking it into a solid red strobe. Now rate-limited: only re-fires when the previous is nearly gone. Still impactful on first hits, no longer strobing.
Scholar's Mind exploit — 100% broken, you nailed it. Kill one goblin, reset, claim +5 RP, repeat. Fixed: the flat prestige RP bonus now requires at least 1 cleared wave OR 20 kills before it unlocks. Legit runs still get it; kill-and-reset returns zero.
Skills costing gold — agreed. Pulled the one-time equip fee entirely. Skills are now free to equip and free to cast, cooldown-gated only. Research unlocks them once, then swap between slots as your build needs.
Prestige grindy / redoing not fun — Ancestry (new prestige bonus) exists specifically for this: preserve 1/2/3 of your favorite research nodes across the wipe so you don't re-climb the same ladder every time. Still tuning baseline shard yields.
Bonus rounds of polish you'll also notice:
New patch is live on itch. Keep the feedback coming — this is how the game gets sharper.
Commenting here instead of replying to my thread below.
MASSIVE shoutout to Westicles for incorporating our feedback so quickly, and so well on top of it.
This feels like a completely different game right now (for the better):
I can only say great work here!
What I can still offer as a constructive criticism:
Will continue trying to beat the game to see if I can but at this point I'm not sure it's possible (is there a final round to beat?)
Again, outstanding work including all of our feedback!
I JUST REALIZED YOU HAVE A PRESTIGE SYSTEM IN PLACE.
Jesus Christ, great work!
I completely missed the menu it seems.
Ha! You're not alone — that discovery happening hours in was exactly the feedback we needed. Your comment was actually the push for a full discoverability pass that just shipped:
Also doubled down on prestige instead of nerfing enemies (per your wall-at-50 feedback) — the tree went from 10 → 20 bonuses, including things like:
Plus the Bard phantom "Alchemy" tooltip is squashed and the projectile hitbox scales with enemy size now — those were both direct from your comment thread.
Genuinely appreciate you sticking with it long enough to find the prestige system. Enjoy the new tree! 🐺
I don't understand the commander. It just wastes all of my gold on one hero.
Edit: it seems fine after you get mages/cannoneers and only need one carry.
Also I think the projectiles are being deleted too fast. Even if my mage has high enough range it will shoot a projectile towards monster and it will be deleted before hitting the target.
Hey, thanks for sticking with it long enough to flag both of these — they were real and they're both fixed now.
The commander problem was the design itself. Every setting used to be on by default, including auto-upgrade, which is exactly what was vacuuming up your gold into one hero. Total rebuild this update:
Projectile lifespan was a hardcoded 1.8s, which was way too short once you upgraded mage range. Now it scales with
range / projSpeedwith a 50% margin (capped 2s–5s). Long-range mage bolts make it to the target.Both shipped in the latest build. Give it another shot if you've got the time — appreciate the feedback either way.
Awesome. This game is fun and it definitely has potential :)
I played for a few hours while ignoring the less optimized gameplay, as others mentioned here, but I have another big big issue: I had to restart my computer and the save was lost completely.
With the amount of grind there is right now, I'm not touching the game until a future update addresses some of the points.
The artwork is very nice (for me), the gameplay is good too, but definitely needs a lot more work on rebalancing.
I only reached the progress that I reached through auto-clicking, otherwise my units are simply useless (tried the mage, tried the crossbowmen, tried the archers... all equally bad even with upgrades).
Looking forward to the future :D
Thanks for the detailed write-up — you flagged four real problems and they all got addressed in subsequent updates.
Save loss on restart. Added
visibilitychange/pagehide/beforeunloadflush handlers so progress writes to localStorage on tab close, page hide, or browser shutdown — not just at run end. Also added a one-time Save Backup nudge that fires after 3 runs pointing you at Settings → Export Save, which copies your full save to a paste-anywhere code. That's the real safety net — browser storage can still get evicted under disk pressure or by clearing site data, and only an export survives that.Grind. RP yield up +25% per wave, you now start with 3 hero slots open (was 1) so you build a real team from run 1, first skill is way cheaper (5 RP + 15g to equip Smite, was 12 RP + 25g), and the skill bar is visible from your very first wave so you know skills exist. Plus a 1× / 2× / 3× game speed toggle in the top-left to chew through the slower stretches.
Units useless even with upgrades. Root cause: heroes were firing at where enemies were, not where they'd be. Arrows landed behind moving chargers basically every time. Fixed with full intercept-quadratic target leading on every projectile-firing class (archer, mage, crossbow, cleric). On top of that:
Auto-clicking. This is now a first-class feature, no external tools needed:
Bestiary, hero panel DPS / KILLS / LVL / Crit% display, range indicators, and a real commander rebuild also shipped. If the artwork pulled you in originally it might be worth another shot — appreciate either way.
So this totally looks like it could be a good game but unfortunately the dev took great length to make it not be one. There are obvious bugs like you can not finish the tutorial because the UI elements overlap each other and the things that you need to click. Or enemies that can be outside the screen damaging your wall without you being able to do anything about it.
The slow progression is extremely annoying. As is the bad aim of the "heroes". If you save up to get another hero like the cannoneer, thinking that the splash damage might at least offset the bad aim, you will get even more disappointed because their aim is even worse, rendering them almost worthless.
The game forces you to constantly click on the enemies and there seems to be no way to automate around that. That clicking gets tiresome soon. Then you do not really have time to manage the updates of your heroes taking all the fun out of a potential micro-management.
Too bad, this looked like it might be fun.
Honest feedback like this is what actually moves a game forward — every single thing you flagged was real, and they're all fixed in the current build.
Tutorial UI overlap. The coachmark placement code used to fall back to "below the anchor" and clamp into viewport, which sometimes pulled the explanation box ON TOP of the very button you needed to click. Rewrote it: now it tries 8 candidate spots (4 sides + 4 corners), each clamped to viewport AND rejected if it would overlap the anchor rect. Worst case it lands in an opposite corner — it can never sit on the target.
Enemies attacking from off-screen. Archer enemies used to park at their stop distance which on narrow phone screens (and for boss archers) could be past the visible edge.
arriveXis now capped atW - 18so any ranged enemy that's shooting at the wall is guaranteed to be on-screen and tappable.Bad aim — the big one. Heroes were firing where enemies were, not where they'd be. Arrows landed behind moving chargers basically every shot. Fixed with full intercept-quadratic target leading on every projectile-firing class (archer, mage, crossbow, cleric). On top of that:
range / projSpeed.Cannoneer "even worse." You called this exactly right — slow shells + moving targets = the splash never fired. Now cannon shells detonate on a timer at the predicted impact point. Even if the target dodges or dies before the shell arrives, the splash still lands and damages whatever's nearby.
Constant clicking with no automation. Three new features, all built-in, no external tools:
No time to manage upgrades. Same root cause — once auto-tap and hold-tap exist, your hands are free for actual decisions. Plus a 1× / 2× / 3× game speed toggle in the top-left to chew through the slow stretches.
Slow progression. RP yield is up +25% per wave, you start with 3 hero slots open (was 1), first skill is way cheaper (5 RP + 15g vs the old 12 RP + 25g), and the skill bar is visible from your very first wave so you actually know skills exist.
The artwork still pulled you in. If you've got it in you to give it another shot, the rough edges you hit are gone. Either way — appreciate the receipts.
Suuuuper grindy. Some bosses are immune to clicks with no explanation. Archer aiming and arrow speed makes no sense with the enemy speed. Enemies spawn off screen. Archer enemies can stay entirely off screen while damaging you.
The skill menu covers part of the screen, hiding enemies.
Huge oversight is zooming in and out the page, allowing you to move enemies around.
Spent an hour. Can't even afford to buy the first skill. Trainwreck of a game. Needs time in the oven, its so raw its pink on the outside.
The overall polish is fine, but with the balance its unplayable. I love that theres a hundred of upgrades but if the archers keep missing whats the point.
Brutal but every single point was real and they're all fixed in the current build. Receipts:
"Bosses are immune to clicks with no explanation." They weren't immune — your taps were just landing invisibly against a huge HP pool with a hitbox sized for goblins. Boss tap radius now scales with
sizeMul(a 2.55× ram had the same 9-pixel hitbox as a normal goblin), and every tap spawns a floating damage number so you can SEE it landing."Archer aiming and arrow speed makes no sense." This was the worst bug in the game. Heroes were firing at where enemies were, not where they'd be — arrows landed behind moving chargers basically every shot. Fixed with full intercept-quadratic target leading on every projectile-firing class. On top of that, projectile lifespan now scales with
range / projSpeedso long-range bolts don't vanish mid-flight, and there's a new hero leveling system with crit chance scaling 0% → 30% per level."Enemies spawn off screen / Archer enemies stay entirely off screen damaging you." Ranged enemies' stop position is now capped at
W - 18so any archer goblin that's actively shooting the wall is guaranteed to be on-screen and tappable."The skill menu covers part of the screen." Shrunk
#skill-panel(narrower min/max width, tighter padding, smaller font) plus a mobile-landscape override that goes smaller still. The battlefield stays visible."Browser zoom moves enemies around." This was a real bug —
resize()re-derived canvas W/H frominnerWidthon every zoom tick, which visibly shifted the simulation. The handler now short-circuits whenvisualViewport.scale !== 1, so Ctrl-+/− is a no-op for game state."Super grindy / spent an hour, can't afford the first skill." RP yield is up +25% per wave, you now start with 3 hero slots open (was 1) so you can field a real team from run 1, the first skill is way cheaper (5 RP + 15g for Smite, was 12 RP + 25g), and the skill bar is visible from your very first wave so it doesn't take 2-3 runs to even discover skills exist. Plus a 1× / 2× / 3× game speed toggle in the top-left.
"100 upgrades but the archers keep missing what's the point." This was the heart of it. Lead-targeting fix means archers actually hit moving things now. Affordable research nodes pulse gold so you know what you can buy at a glance. And there's a new Bestiary in the Pause menu that explains every enemy + boss including the Goblin King, Bull Champion, Iron Vanguard, Master Archer, High Priest, Coven Matron, and Siege Lord boss variants.
Polish was the part you said was already fine. The balance and bugs you called out are the ones we burned through this update. If you've got the time to take another run at it, the rough edges you hit are gone. Either way — your write-up was concrete enough to actually act on, so thank you.