Block 10 — Polish & Playtest (2 days)
Goal: 3rd encounter, economy tuning, bug sweep, end-to-end verification. Prototype complete and ready for art pass.
Depends on: All prior blocks.
Deliverables
3rd Encounter Type — Bonus Stash
DataAsset: DA_BonusStash
| Field | Value |
|---|---|
| Stat Check | Luck (sum of crew Luck) |
| Threshold | 15 (Easy), 25 (Medium) |
| Pass | EEncounterConsequence::BonusLoot — extra valuables or currency added to FLootPayload::PendingLoot |
| Fail | EEncounterConsequence::None — no penalty, reward-only encounter |
Implementation in URaidSubsystem::ResolveEncounter: if consequence is BonusLoot, append bonus items to the active raid’s PendingLoot (e.g., +1 valuable with Tier 2, or +$10 currency).
Add to encounter pools on raid target DataAssets where appropriate (Rich Neighbor, Grocery Store).
Visual feedback on AI pawn: sparkle/glow effect on pass. Nothing on fail (player may not even notice they missed it).
Economy Balance Pass
Play through full loop multiple times. Adjust values directly on DataAssets and DataTables:
| Parameter | Where to Tune | What to Watch |
|---|---|---|
| Dispatch trash cost | URaidTargetDataAsset::DispatchCost | Too tight → can’t raid. Too loose → trash meaningless. |
| Training cost | Training UI constant (or UStationDataAsset) | Sessions needed to meaningfully improve encounter pass rate. |
| Training stat gain | URaccoonSubsystem::TrainStat constant | +3 default. Adjust if progression feels too slow or too fast. |
| Day length (upkeep tick) | UGameClockSubsystem time ratio | 1 real min = 1 game hr (24 real min/day). Upkeep fires at 06:00 game time. Adjust ratio if pressure too high/low. See Game Clock. |
| Food per tick | Hardcoded 1 per raccoon | Could scale, but 1-per is clean for MVP. |
| Valuable sell rates | FValuableItem::BaseSellPrice per tier | Tier 1: 10, Tier 3: $15. Currency must feel scarce. |
| Food sell rate | Online Sales conversion rate | 1 food = $2. Should feel like a sacrifice — selling food to buy upgrades. |
| Loot bias weights | Per URaidTargetDataAsset | Targets must feel distinct. Dump = trash heavy. Grocery = food heavy. |
| Encounter thresholds | Per UEncounterDataAsset per difficulty | Starter crew (sum ~20-30) should pass Easy. Medium should require training/gear. |
| Gear stat bonus | DT_Gear rows | +5 must meaningfully shift encounter outcomes. |
| Upgrade costs | Per UStationDataAsset tier array | Early upgrades affordable after 2-3 raids. Later tiers require sustained play. |
| Recruit chance | Per URaidTargetDataAsset | The Dump ~20%. Others lower. Too high → crew explodes → food death spiral. |
Bug Sweep
Test every system at boundaries and edge cases:
| Test | Expected |
|---|---|
| Dispatch with 0 trash | Blocked — UI grays dispatch, SpendResource returns false |
| Dispatch with 0 raccoons | Blocked — UI grays dispatch |
| Dispatch all raccoons (none left idle) | Works — but no one to send on next raid. Roster shows all “Raiding”. |
| Full raid pile overflow | New raid loot buffered. Warning shown. Must process before more deliveries. |
| All raccoons deserted | Game still runs. No raids possible. Player stuck — note as MVP endpoint. |
| Equip/unequip during raid | Gear on raiding raccoons shouldn’t change mid-raid (stats locked at dispatch). |
| Save/load with active raids | Raids resume timer. AI pawns re-spawned on city map at correct progress. |
| Save/load with hungry raccoons | Hunger counters preserved. Next tick applies correctly. |
| Save/load with pending loot | Loot payloads at sorting station preserved. |
| Upgrade station at max tier | Button disabled. No crash. |
| Train non-idle raccoon | Blocked — UI only shows idle raccoons. |
| City map with no unlocked targets beyond initial 2 | Only Average Home + The Dump hoverable/clickable. Locked buildings show padlock. |
| Milestone fires mid-raid | Reward applies correctly (new raccoon joins, targets unlock) without breaking active raid. |
End-to-End Playtest
Fresh game → full milestone chain → verify all systems interact correctly:
- Start: 1 raccoon (Scout), 200 trash, 10 food
- First raid: Open Raid Board → city map → hover Average Home → assign Scout → dispatch → watch AI navigate → encounters resolve → loot returns
- “First Score” milestone: 1 raid complete → first Hauler joins → roster now 2
- Intake loot: Process at Sorting Station → route food to Pantry → claim globals
- Train: Spend trash at Training Corner → stats improve
- Upkeep ticks: Food consumed → pressure builds → need more raids
- Recruit: Raid The Dump → recruit chance → new raccoon joins
- “Growing Operation”: 5 raids → Rich Neighbor + Grocery Store unlock on city map
- Harder raids: Rich Neighbor has tougher encounters → need trained/geared crew
- Craft gear: Gear Bench → equip Speed Bandana → encounter pass rate improves
- Upgrade: Upgrade Desk → raise Pantry cap → more food buffer
- “Street Cred”: 4 recruits → Distractor unlocked → recruit one → auto-passes dogs
- Quest log: All milestones tracked and completed
- Full loop: Sustainable 4-5 raccoon crew, managing food, cycling raids, progressing
Success criteria:
- Can complete all milestones in one session
- 4+ raccoon crew sustainable with active play
- Progression feels directed (milestones give goals)
- Upkeep feels pressured (food scarcity drives decisions)
- No death spirals (player can recover from hunger with 1 surviving raccoon + Dump raids)
- No infinite exploits (can’t generate unlimited resources without risk)
- Where does player run out of things to do? (That’s the MVP endpoint — note for post-MVP)
Done When
- Bonus Stash encounter works in raids (Luck check, bonus loot on pass, no penalty on fail)
- Economy balanced through at least one full playthrough — no death spirals, no infinite exploits
- All edge cases pass without crashes or blocked states
- Save/load works across all game states (mid-raid, hungry, pending loot, active milestones)
- Fresh playtest from start to all milestones plays cleanly
- All systems functional with blockout geometry and placeholder UMG — ready for art pass
- MVP endpoint identified and documented for post-MVP planning