Period: December 18, 2025
Total Commits: 8
Hey, here’s what we’ve been working on today. The focus was on cleaning up the first-time experience, wiring profiles into actual gameplay, and tuning the early economy to feel fair across 1v1, 2v2, and 3v3. A lot of glue pieces landed: level-ups, unlocks, navigation, and some small but meaningful balance.
What’s New
-
Economy scaled by team size
- Base income now scales with match size to keep pacing consistent:
- 1 player per team: 10 gold/sec
- 2 players per team: 5 gold/sec
- 3+ players per team: 4 gold/sec
- This should make 2v2s and 3v3s less snowbally and keep early pressure comparable to 1v1.
- Income is set during map generation for both local skirmish and multiplayer.
- [screenshot: 2v2 skirmish with adjusted gold income at d48feb5]
- Base income now scales with match size to keep pacing consistent:
-
More choice at the start: five-unit selections
- Initial unit selection counts are now standardized to 5. This replaces a bunch of scattered “3s” and gives you more room to draft a plan (and counter-pick) without feeling stuck.
- Level-up choices, game views, sim logic, and bots now all respect the same config.
-
Profile-driven gameplay and progression
- The game now properly filters available towers/minions by what your profile has unlocked.
- After any game (win or lose), you level up by +1, get to pick 1 of 3 unowned towers, and receive 1 random minion. Edge cases are handled when you already own everything.
- Onboarding has its own unlock flow, so level-ups are skipped there to avoid double rewarding.
-
Cleaner first steps: Homepage and guardrails
- New landing page with a simple Play flow that routes you into onboarding or menu based on your profile.
- Level badge shows your current level with clear color tiers, and appears in the multiplayer lobby too.
- A small access guard helps you get back to the tutorial if you bounced out early.
-
Onboarding flow you can actually play through
- Unlocks → reveals → straight into skirmishes without extra pre-game screens.
- The unlock modal got more space, clearer borders, and fixed icons. The minion reveal uses a tidy 2x2 grid now.
What Got Fixed
-
Bots placing towers in the wrong place
- We fixed gold flow prediction when enemy spawns aren’t present yet. Bots were reading “no danger” and turtling at the back of base. They now evaluate forward castles properly and place more sensibly near conflict.
-
Unit selection and wave timing
- Skirmish now waits for unit selection before starting. Previously there was a case that kicked waves off too early and bypassed the selection step.
- Sim logic correctly tracks the first wave state during initial selections.
-
Post-game flows and saves
- Minion unlocks after a match now save to your profile correctly.
- Victory/defeat screens in onboarding reuse the standard overlay and offer Continue/Main Menu. Both route through the level-up screen first; Continue proceeds to the next skirmish, Main Menu exits after that.
-
Profile reliability
- Profiles are stored per user and reload correctly after login. New users go to Play; returning users go to Menu. The tutorial auto-runs if you haven’t started it yet.
- Removed an old migration that mistakenly boosted some new accounts to level 3.
-
UI/UX polish
- Tab menu is available in offline/skirmish games.
- Settings button renders above the unit selection overlay instead of getting buried.
- Starter tower order is now turret → crossbow → shadow-bolt for consistency.
- Procedural maps now include a base tileset for proper background textures.
-
Balance
- Turret damage reduced slightly. This tones down early brute-force rushes and makes space for crossbow and shadow-bolt to matter in the first few minutes.
Under the Hood
-
One source of truth for selections
- A shared config value now drives initial selection counts (set to 5). This cleans up a bunch of hardcoded cases and keeps UI, bots, and sim in sync.
-
Economy wiring
- A small helper sets base income based on team size during map generation. This applies consistently in skirmish and multiplayer and should be easier to tune going forward.
-
Routing and guards
- Home, Play, and Menu routes now respect authentication and onboarding state. There’s a lightweight guard that lets you continue, skip, or browse, but keeps things understandable.
-
Sim and UI integration
- The level-up flow is integrated in both offline and online wrappers, and the lobby shows your level badge. Campaign mode continues to bypass profile restrictions as intended. Server-side validation still checks unit selections.