Files

313 lines
40 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Feature Research
**Domain:** Browser-based narrative idle game (cozy + narrative + idle Venn) — *The Last Garden*
**Researched:** 2026-05-08
**Confidence:** HIGH (genre conventions are well-documented; tonal alignment to PROJECT.md is the load-bearing judgment call)
---
## Feature Landscape
### Table Stakes (Users Expect These)
Features that, if missing, cause idle game players to bounce or write angry reviews. These are non-negotiable. Players don't praise their presence — they punish their absence.
| Feature | Why Expected | Complexity | Notes |
|---------|--------------|------------|-------|
| **Offline progression simulation** | Idle games are *defined* by the promise that the world advances when you're not playing. Without it, the genre contract is broken. | HIGH | Must simulate elapsed time on resume. Cap matters (typically 824 hours) — players resent both "lost" idle time and unbounded numbers. For The Last Garden, the cap *is* a tonal lever (the garden waits, but not forever). |
| **"What you missed while away" report** | Players need to feel rewarded on return, not lost. Industry pattern: a modal/screen showing fragments earned, plants grown, narrative beats reached. | MEDIUM | Tonal opportunity: not a spreadsheet but a small letter from the garden. "While you were away, the moonbloom opened. Lura sat with it." Drives Day-2 retention. |
| **Save persistence (local)** | Idle games run for weeks/months. Losing a save = losing the relationship. Browser idle games *must* survive tab closes, restarts, accidental clears. | MEDIUM | Use IndexedDB primary (50MB+, async, survives storage pressure better than localStorage), with localStorage as fallback. Auto-save every 1030s. Multiple save slots / rolling backups. Hard requirement per PROJECT.md. |
| **Save export / import (manual backup)** | Standard practice in browser idle games because browsers wipe storage. Lets users back up, move between devices, recover from corruption, and submit bug reports. | LOW | Base64-encoded text blob. Copy/paste UI (clipboard via fallback overlay for any embedded WebGL contexts). "Always export before importing" warning is genre-standard. |
| **Manual save / load slot UI** | Defensive players want explicit control over their long-running save. Auto-save alone breeds anxiety. | LOW | 23 slots minimum. Show date, season, key stat. New game = explicit confirmation, never automatic. |
| **Audio toggles (music + SFX + ambient, separate sliders)** | Idle games run in background tabs for hours. A single mute is insufficient — players keep ambient on, mute music, etc. | LOW | Three-channel mixer minimum. Persisted across sessions. Especially important for The Last Garden because cello/silence are part of the storytelling. |
| **Master mute / quick mute keybind** | Idle games are played at work, in meetings, while watching TV. Instant mute is muscle memory. | LOW | M key or icon. Visual confirmation. Survives reload. |
| **Pause / resume** | Cozy/contemplative players want to "set down" the game without feeling time pressure. Even more important when the loop is metaphor. | LOW | True pause (no time advance) vs. afk pause. Both have a place; document the choice. |
| **Settings menu (audio, visual, accessibility, save management)** | Standardized expectation. No settings = unprofessional. | LOW | Single discoverable gear icon. Group sensibly. |
| **Notification of meaningful events** | Long idle gaps mean players miss state changes. They need a cue (browser tab title flash, in-game flag, or PWA push). | MEDIUM | Title bar update is the cheapest, most respectful pattern. Push notifications are higher-impact but require service worker, opt-in, and risk feeling intrusive in a cozy game. |
| **Tab visibility-aware behavior** | Players keep the tab open in background. Game must continue (or simulate continuation on focus return) without burning CPU/battery. | MEDIUM | requestAnimationFrame paused when hidden, fall back to deltaTime calculation on focus. |
| **Multi-buy / max-affordable purchase** | Once costs scale exponentially, single-click purchasing becomes hand-cramping busywork. Genre-standard since Cookie Clicker. | LOW | Buy x1 / x10 / x100 / Max toggle. "Max" calculates the largest affordable batch. UI: a small toggle next to the buy button. |
| **Numeric formatting (K, M, B, scientific notation)** | Idle game numbers blow past human-readable scales. Without formatting, the UI becomes unreadable. | LOW | Standard library: scientific notation past 1e15, named suffixes (K/M/B/T) below. The Last Garden's economy may stay smaller-scale per its tone — still need this. |
| **Visible progress / upgrade tree / what's next hints** | Players need to know what they're working toward. Pure mystery loses players; pure roadmap kills wonder. | MEDIUM | The Last Garden's challenge: convey "something is coming" without spoiling Season transitions. Soft cues (a leaf appears at the wall edge) > explicit progress bars. |
| **Achievement / collection tracking** | Persistent positive feedback. In narrative idle, doubles as a reading log of fragments collected. | MEDIUM | Maps directly to the memory fragment collection in The Last Garden. The Keeper's Journal is essentially this feature, gated as premium. A free baseline collection view is table stakes. |
| **First-time-user experience (FTUE) that doesn't break tone** | First 30 min determines if players stay. Idle games have a unique FTUE problem: there's "nothing to do" until something appears. | HIGH | A Dark Room solves this with a single button and patience. Universal Paperclips trusts the player. The Last Garden should follow this lineage — minimal explicit instruction, lots of careful first-action design. |
| **Resume-from-pause friendliness** | Cozy/idle players close the tab for a week and return. The game must orient them: where am I, what's new, what should I do? | MEDIUM | Returning-player view: time-since indicator, "what happened" recap, gentle "next" affordance. |
| **Accessibility: keyboard navigation** | Industry baseline. Web players assume tab/enter works. | MEDIUM | Most idle games are click-only and fail this. Don't. |
| **Accessibility: text scaling / readable contrast** | Browser players come from many eyesight contexts. Mandatory under modern web norms. | LOW | Respect browser zoom. Minimum AA contrast on all text/UI. |
| **Accessibility: reduced motion option** | Watercolor + animation may include effects (wind, growth, particles) that trigger motion sensitivity. WCAG 2.1 baseline. | LOW | Respect `prefers-reduced-motion`. Provide explicit toggle. |
| **Accessibility: colorblind support / icon redundancy** | Don't convey state by color alone. Especially important if Season palettes shift heavily. | LOW | Pair color cues with shape/icon. The seven Seasons each have distinct palettes — already an opportunity to enforce icon-redundant identity per Season. |
| **Tab title / favicon as background indicator** | When tab is in background, players want a glance signal that something's ready. | LOW | Update document.title with a count or symbol when meaningful events accumulate. Cheap, expected, respected. |
| **Stable performance with tab in background** | Tab throttling (browsers throttle setInterval in background tabs) is a known foot-gun. Players will rage if numbers stop moving. | MEDIUM | Use timestamps + simulation on resume rather than per-tick increments. This is the standard idle-game safe pattern. |
| **No data loss on page refresh** | One accidental F5 cannot wipe progress. | LOW | Frequent autosave + onbeforeunload save. |
| **Privacy-respecting telemetry (or none)** | Cozy/narrative audience overlaps heavily with privacy-conscious indie game audience. Heavy telemetry feels off-brand. | LOW | If included: opt-in, transparent, anonymized. Often "off by default" is the right call for this audience. |
### Differentiators (Competitive Advantage)
These are where The Last Garden competes — features that elevate it above the crowded idle-RPG/clicker space and deliver on the cozy + narrative + idle promise.
| Feature | Value Proposition | Complexity | Notes |
|---------|-------------------|------------|-------|
| **Mechanic-as-metaphor design (every system carries narrative weight)** | This *is* the project's Core Value per PROJECT.md. Composting = letting go. Prestige = grief. Roothold = what survives. No other idle game commits to this. | HIGH | Not a feature so much as a design discipline — but it's what distinguishes The Last Garden from every other idle. Every mechanic gets reviewed against "does this carry the metaphor." |
| **Season-specific mechanics (7 Seasons, each with distinct system)** | Unlike the typical idle that adds layers atop the same loop, each Season transforms the game. Soil → Roots → Canopy → Storm → Depth → Loom → Return. This is *Universal Paperclips*-style escalation, not Cookie Clicker stacking. | HIGH | The biggest production risk *and* the biggest creative differentiator. Each Season ships as a vertical slice of mechanics + art + audio + writing. |
| **Discovery-driven progression (no roadmap; reveal by play)** | Hallmark of A Dark Room and Paperclips. Players don't know what's coming — finding out *is* the game. This is the cozy-narrative-idle audience's primary delight. | MEDIUM | Tension with FTUE: players need *just enough* to not bounce. Lean on the A Dark Room rule: one button at start, expand only when the player is ready. |
| **Authored memory fragment system (every harvest = a piece of writing)** | Direct alignment to PROJECT.md core mechanic. Turns the idle harvest loop into a reading experience. The fragments *are* the world-building (no codex). | HIGH | Requires hundreds of authored fragments. Pipeline is content-pipeline-heavy, not engineering-heavy. Display: "while you were away" report doubles as fragment delivery. |
| **Watercolor + cello aesthetic (consistent through all 7 Seasons, evolving)** | Aesthetic is the moat. No idle game looks or sounds like this. Audience overlaps significantly with the *Spiritfarer* / *Stardew* / *Cozy Grove* art-direction-driven audience. | HIGH | AI-assisted art + hand-refinement pipeline (per PROJECT.md). Audio: solo cello + ambient. Tone-locked per Season. |
| **"Place-memory vignettes" (Season 3+) — short interactive scenes from canopy trees** | Breaks the idle loop with bursts of authored interactivity. Like *Spiritfarer*'s spirit storylines but short and lyrical. | HIGH | Scene-graph / dialogue system needed. Could ship as Season 3 content, doesn't have to be in v1's earliest playable build. |
| **Three-character authored arcs (Lura, Nameless Man, Archivist)** | Idle games rarely have characters with arcs. This is borrowed from cozy/narrative games (*Spiritfarer*, *Stardew*, *Disco Elysium*-light). Hard differentiator. | HIGH | Dialogue tree / scripting system. Characters appear in tonally-keyed beats per Season, not gated behind currencies. |
| **Roothold as never-lost prestige currency** | Most idle games' prestige currencies are about throughput (multipliers). Roothold represents *understanding*. It's a thematic choice that becomes a mechanical signature. | MEDIUM | Standard prestige math (Cookie Clicker / Paperclips style); the differentiator is thematic framing and what it unlocks (memory permanence, not number scale). |
| **Final binary narrative choice ("the garden persists" ending)** | Single-decision ending matches A Dark Room / Paperclips conviction. Players project themselves onto their gardens — the choice lands because of accumulated investment, not because of fork-tree-of-decisions complexity. | MEDIUM | One scene. Two outcomes. Both respect player investment. Locked by story bible. |
| **Tonal pacing across Seasons (palette + audio shift)** | Seasons aren't just mechanic shifts — they're emotional shifts. Golden/autumnal warmth → deep green/storm tension → dawn/silver release. Almost no idle game does this. | MEDIUM | Asset organization by Season. Cross-fade transitions. Per-Season ambient loops. |
| **Memory Storms (Season 4+ event mechanic)** | Idle games rarely have weather/event systems with narrative weight. Storms are both mechanic (resource influx + risk) and metaphor (memory rushes back, then leaves). | MEDIUM | Time-windowed events. Visual + audio cue. Can ship in a later Season patch. |
| **Cross-pollination + ecosystem planting (Season 5+)** | Idle games stack systems shallowly; this introduces a true depth curve in late Seasons. Differentiates from clicker/RPG flatness. | HIGH | Plant-relationship system. Compatibility / interaction matrix. Requires careful design to remain readable. |
| **Episodic Season patches as live content updates** | Hollow Knight / Hades model: ship base game with a complete arc, then drop free additive content patches that deepen specific Seasons or add new place-memory vignettes. Sustains community without exploiting it. | MEDIUM | Requires content pipeline + hot-patchable content data. Distinct from full-episodic release (which we're explicitly not doing — see Anti-Features). |
| **Cosmetic-only monetization (planters, walls, gates, tool skins) tied to garden aesthetic** | Per PROJECT.md. Animal Crossing-style decoration purchases that *reinforce* the aesthetic, not generic skins. Trust-building monetization. | MEDIUM | Item pipeline + cosmetic equip system. Content-light (a dozen items at launch is enough). |
| **Premium "Keeper's Journal" feature for annotating fragments** | One-time purchase or unlockable. Lets players annotate, organize, mark favorites, write their own observations next to fragments. Genuinely valuable feature, ethical pricing. | MEDIUM | Rich-text or markdown editing surface, persistent storage. The free version still shows fragments; the premium adds annotation layer. |
| **Season acceleration purchase (never skipping)** | Per PROJECT.md: a paid "lean forward" option for players short on time. Clear ethical line: accelerates the rate but never bypasses a story beat. | MEDIUM | Simple multiplier on Season-specific tick rate. Story gates still apply. |
| **Letter-style "while you were away" return screen** | Tonal differentiator. Most idle games show a stat dump on return; The Last Garden shows a small written note from Lura/the garden. | MEDIUM | Templated micro-prose generated from the events that occurred. Authored variants per Season. |
| **PWA / installable home screen presence** | Lets dedicated players "live with" the game without a tab. Aligns with cozy game aesthetics (Stardew on a phone home screen). | MEDIUM | Manifest + service worker. Optional push notification opt-in for Memory Storm events. |
| **"Quiet mode" / sleep mode for the garden** | Cozy player tells the game: "I'll be back in a week. Wait for me." The garden enters a stasis state. Tonally rhymes with the Pale's silence. | LOW | Narrative-dressed pause feature. Player consent for time-skip behavior. |
### Anti-Features (Commonly Requested, Often Problematic)
Features standard in the broader idle/F2P market that would directly undermine The Last Garden's thematic argument or cozy/narrative tone. The reasoning here ties to PROJECT.md's hard constraints — these aren't soft preferences, they're load-bearing creative decisions.
| Feature | Why Requested | Why Problematic | Alternative |
|---------|---------------|-----------------|-------------|
| **Gacha / lootbox mechanics** | Industry-standard mobile idle monetization (54.7% of idle revenue is IAP). Highly effective at extraction. | Directly contradicts PROJECT.md's thematic argument: "the game's argument is that you cannot reduce complex things to simple transactions." Gacha is the embodiment of that reduction. Locked out by story bible. | Cosmetic catalog with fixed prices. Players see exactly what they're paying for. |
| **Combat / boss fights / enemy power creep loops** | Idle RPG is the genre's largest sub-segment (13.7% CAGR). The "kill numbers go up" loop is well-understood and lucrative. | The Archivist is not a boss. There is no enemy. PROJECT.md is explicit. Adding combat would shift the game out of the cozy-narrative-idle Venn entirely. | The "stakes" come from the Unremembering — environmental, not adversarial. Tension via loss, not opposition. |
| **Daily quest / login bonus pressure systems** | Industry-standard retention pattern. Forms habits, increases DAU. Players in idle communities tolerate it. | Active hostility to the cozy/contemplative audience. Cozy players play *when they want to*. Daily quests turn the game from a relationship into an obligation. Many cozy-game communities cite "no daily quest harassment" as a buying reason. | Persistent narrative pull (something always growing) instead of FOMO mechanics. Streaks would actively poison the metaphor. |
| **Energy / stamina systems** | Mobile F2P pattern that creates monetizable friction. | Energy systems exist to artificially gate play, then sell the gate. Anti-cozy. Anti-trust. | Time-gated growth (plants take real time) is the natural rhythm. No artificial stamina layer. |
| **Rewarded ads / ad-watch incentives** | 28.3% of idle game revenue. Easy money. | Disrupts atmosphere catastrophically. Cello + watercolor + Mountain Dew ad = tone collapse. Also requires partner SDK that complicates web build. | Cosmetic purchases. Premium Keeper's Journal. Season acceleration. All non-disruptive to atmosphere. |
| **Narrative content gated behind purchase** | Story-DLC monetization works in many genres. | Hard line per PROJECT.md: story is the product, story is never paid. This is the highest-trust commitment to the audience. | Cosmetics + utility (Keeper's Journal) + acceleration. Never the story itself. |
| **Skipping Seasons (vs accelerating)** | Players who already played want to "see the end" faster. | The cumulative weight of the seven Seasons *is* the experience. Skipping breaks the metaphor. Per PROJECT.md. | Acceleration purchase: same beats, faster ticks. Story preserved. |
| **Lore codex / encyclopedia / wiki-style entries** | Standard worldbuilding feature in narrative games. Players love feeling completionist about lore. | PROJECT.md: "World-building emerges through fragments only. The player should always feel like they're *almost* understanding." A codex would resolve the ambiguity that *is* the meaning. | Memory fragments only. Fragments are by nature incomplete. Resist the pull to make them tidy. |
| **Generic fantasy flora (D&D-style)** | Easier to source AI art for "moonbloom" than for "a hyacinth that's slightly wrong." | PROJECT.md: plants must be real species, slightly wrong. Generic fantasy plants would shift the visual language toward standard fantasy idle and lose the uncanny grounding. | Real-species reference + AI generation tuned to slight wrongness. Curation is heavier; the payoff is unique. |
| **Multiplayer / social / clan / leaderboard systems** | Drives long-tail retention. Universal in modern idle. | PROJECT.md: "This is a contemplative, solitary experience." Adding social features pollutes the introspective tone. Garden visiting *might* be considered post-1.0 if it preserves tone — but the bar is high. | Solitude is the feature. Lean into it. The Keeper is alone. |
| **Voiced dialogue / cutscenes (v1)** | Modern narrative game expectation. | PROJECT.md tone: "a friend texting you while you're at work." Voice acting at v1 cost is also production-prohibitive. Reconsider only if specific scenes benefit. | Text only, with cello and ambient as the soundscape. Silence does dialogue work. |
| **Always-online requirement / server-side validation** | Anti-cheat / anti-piracy. | The audience is browser indie players. Always-online breaks the "I can play this on a plane" expectation and adds infrastructure cost for no thematic gain. | Local-first save. Cloud sync as optional stretch. |
| **Aggressive notification / re-engagement push** | F2P industry standard ("we miss you!" emails, "your harvest is ready!" pings). | Cozy audience finds these intrusive. Erodes trust. | Opt-in push for Memory Storms only (rare, tonally appropriate events). Default off. Tab title is sufficient for routine signaling. |
| **Power-creep loops / multiplier escalation as primary motivator** | The bedrock pattern of clicker/idle. | Numbers in service of story (PROJECT.md), not the inverse. Pure power-creep would make the metaphors invisible. | Roothold-as-understanding, not Roothold-as-multiplier. Mechanical depth over numerical scale. |
| **Cosmetic items unrelated to the garden setting** | Easy revenue (skins of every flavor sell). | PROJECT.md: cosmetics must reinforce, not dilute, the aesthetic. A neon planter would break the watercolor world. | Every cosmetic is a planter, wall, gate, tool — all garden-coherent. Curated catalog over volume. |
| **A named/personality-rich Keeper character** | Players want to know who they are. | PROJECT.md: "The Keeper is a presence, not a personality." The player projects themselves onto the Keeper — that's the trick. | Keeper has presence (cursor, intent, the garden's care) but no portrait, no name, no dialogue beyond the final choice. |
| **In-game wiki / hint system / objective tracker** | Modern UX expectation in many genres. | Resolves the discovery loop that Paperclips/Dark Room teach the audience to *love*. Patronizes the player. | Trust the player. Lean on environmental cues. If a system needs a hint system to be understood, the system needs redesign. |
| **Time-skip purchases that bypass real-time growth** | "Speed up by 4 hours" is mobile-standard. | The waiting *is* the metaphor. Bypassing time bypasses the meaning. | Season acceleration adjusts the rate, doesn't compress real-time gates that carry weight. |
| **Generic UI chrome / corporate idle aesthetic** | Most idle games look like spreadsheets with skins. | The Last Garden's UI is part of the watercolor world. Hand-crafted UI that breathes the same air as the art. | Custom UI components. Watercolor-edged buttons. Hand-lettered numerics where it serves. |
---
## Feature Dependencies
```
Save persistence (local)
└── enables ──> Offline progression simulation
└── enables ──> "What you missed" return screen
└── enables ──> Letter-style return narration
Memory fragment system
└── requires ──> Save persistence
└── enables ──> Achievement / collection tracking
└── enables ──> Premium Keeper's Journal (annotation layer)
Core idle loop (plant/wait/harvest)
└── enables ──> Roothold prestige currency
└── enables ──> Seasonal prestige cycle
└── enables ──> Season-specific mechanics (17)
└── enables ──> Place-memory vignettes (S3+)
└── enables ──> Memory Storms (S4+)
└── enables ──> Cross-pollination/ecosystem (S5+)
└── enables ──> Final binary choice (S7)
Settings menu (audio/visual/accessibility)
└── required for ──> All accessibility features
└── required for ──> Audio toggles, reduced motion, etc.
Cosmetic system
└── requires ──> Save persistence (to remember equipped items)
└── requires ──> Asset pipeline maturity
└── enables ──> Cosmetic monetization
Episodic content patches (live updates)
└── requires ──> Hot-patchable content data layout
└── requires ──> Save schema versioning + migration
└── enables ──> Post-launch Season expansions / vignette additions
PWA / installability
└── enables ──> Push notifications (opt-in)
└── enables ──> Home-screen presence
Tab visibility-aware tick logic
└── required for ──> Stable performance with tab in background
└── required for ──> Offline progression accuracy on focus return
```
### Dependency Notes
- **Save persistence is foundational.** Every long-running idle feature depends on it. Get this right first — schema migrations are painful retroactively, especially when 7 Seasons of content evolution will demand schema growth.
- **Memory fragments depend on save persistence + offline progression.** Players will want to read fragments from offline harvests; the "while you were away" report and the fragment delivery are the same surface.
- **Save schema versioning is required before episodic patches.** If post-launch content patches add new Season state, old saves must migrate cleanly. This is the kind of decision that wrecks an idle game retroactively.
- **Settings menu is required infrastructure for accessibility.** Don't ship without it — accessibility added late is twice the work.
- **The cosmetic system needs the asset pipeline to be mature.** Cosmetics aren't urgent, but they require curated assets — the same pipeline that produces Season art. Monetization is unlikely to be a v1.0 launch feature; v1.1+ is fine and more honest.
- **Tab visibility / background tick logic is a foot-gun.** Browsers throttle background tabs. The standard fix is timestamp-based simulation on focus, not interval-based ticks. This must be the default architecture, not retrofitted.
- **Discovery-driven progression conflicts with explicit objective tracker / hint system.** Don't ship both. The discovery loop is the differentiator; explicit hints kill it.
---
## MVP Definition
The Last Garden is committed to shipping all 7 Seasons at v1 (per PROJECT.md). That's the *content* commitment. But within that, there's a "smallest playable vertical" that proves the loop and tone before scaling content.
### Launch With (v1.0)
The shipped game. All seven Seasons of authored content + the table-stakes feature set.
- [ ] **Core idle loop** — plant, wait, harvest memory fragments — *this is the entire game's foundation*
- [ ] **Offline progression simulation** with sensible cap — *genre table stakes*
- [ ] **"While you were away" return screen, in letter style** — *tonal differentiator on a table-stakes feature*
- [ ] **Save persistence (IndexedDB primary, localStorage fallback)***non-negotiable for long-running play*
- [ ] **Save export / import (Base64 text)***defensive UX for browser persistence reality*
- [ ] **Memory fragment system + fragment collection view***core narrative delivery vehicle*
- [ ] **All 7 Seasons of authored content** (Soil → Roots → Canopy → Storm → Depth → Loom → Return) — *PROJECT.md commitment*
- [ ] **Three character arcs (Lura, Nameless Man, Archivist)***PROJECT.md commitment*
- [ ] **Final binary narrative choice + "garden persists" ending***story-bible-locked*
- [ ] **Roothold prestige currency***story-bible-locked*
- [ ] **Settings menu** with audio sliders (music/SFX/ambient), reduced motion toggle, contrast/text-size respect — *accessibility baseline*
- [ ] **Master mute keybind + tab title indicator***idle-genre baseline*
- [ ] **Tab visibility-aware tick logic***required for correctness*
- [ ] **Multi-buy (x1/x10/x100/Max) for purchases that scale***idle baseline*
- [ ] **FTUE that respects the player** (one button at start, expand by reveal) — *competes on tone*
- [ ] **Watercolor + cello aesthetic, palette-shifted by Season***the moat*
- [ ] **Cross-pollination, composting, ecosystem planting (S5+) and Memory Storms (S4+)***PROJECT.md commitment*
- [ ] **Place-memory vignettes (S3+)***PROJECT.md commitment*
### Add After Validation (v1.x)
Features to ship as free patches once the base game is out and the audience is real. These are genuinely valuable but don't gate launch.
- [ ] **PWA / installability***added when player demand for "live with it" is confirmed*
- [ ] **Opt-in push notifications for Memory Storm events***only after PWA exists; risk of feeling intrusive*
- [ ] **Cloud save sync***huge UX win, but infrastructure cost; ship after proving demand*
- [ ] **Cosmetic monetization catalog***requires asset pipeline maturity; don't launch with monetization, launch with the game*
- [ ] **Season acceleration purchase***genuine player value once the game is stable; tonally needs careful execution*
- [ ] **Premium Keeper's Journal (annotations layer)***deepens the relationship with fragments; ship once free baseline is loved*
- [ ] **Additional place-memory vignettes***episodic content patches, Hollow-Knight-style free additive content*
- [ ] **Achievements / collection milestones (beyond fragment count)***deepens completionist motivation, but secondary to the main loop*
- [ ] **Multiple save slots beyond the default 23***if requested*
- [ ] **Quiet/sleep mode (narrative-framed pause)***if players ask for it*
### Future Consideration (v2+)
Things to defer until product-market fit is established and the team has room.
- [ ] **Steam port***post-1.0 per PROJECT.md*
- [ ] **Mobile port (iOS/Android native or PWA-as-app)***post-1.0 per PROJECT.md*
- [ ] **Garden visiting / sharing (limited social)***only if it preserves the contemplative tone; bar is high*
- [ ] **Localization beyond English***enormous content burden given fragment density; v2+ minimum*
- [ ] **Voiced moments (specific scenes, not full dialogue)***only if cello/silence soundscape benefits*
- [ ] **Modding / fragment authoring tools***community-extension dream, far-future*
---
## Feature Prioritization Matrix
| Feature | User Value | Implementation Cost | Priority |
|---------|------------|---------------------|----------|
| Core idle loop (plant/wait/harvest) | HIGH | MEDIUM | P1 |
| Save persistence (local) | HIGH | MEDIUM | P1 |
| Offline progression | HIGH | HIGH | P1 |
| "While you were away" letter | HIGH | MEDIUM | P1 |
| Memory fragment system | HIGH | HIGH | P1 |
| 7 Seasons of authored content | HIGH | VERY HIGH | P1 |
| Settings + audio toggles | HIGH | LOW | P1 |
| Reduced motion / accessibility baseline | MEDIUM | LOW | P1 |
| Save export/import | MEDIUM | LOW | P1 |
| Multi-buy / max-affordable | MEDIUM | LOW | P1 |
| Tab visibility-aware ticks | HIGH | MEDIUM | P1 |
| FTUE that respects the player | HIGH | MEDIUM | P1 |
| Roothold prestige | HIGH | MEDIUM | P1 |
| Three character arcs | HIGH | HIGH | P1 |
| Final binary choice | HIGH | LOW | P1 |
| Watercolor + cello aesthetic | HIGH | VERY HIGH | P1 |
| Place-memory vignettes (S3+) | HIGH | HIGH | P1 |
| Memory Storms (S4+) | HIGH | MEDIUM | P1 |
| Cross-pollination (S5+) | HIGH | HIGH | P1 |
| PWA installability | MEDIUM | MEDIUM | P2 |
| Cosmetic monetization | MEDIUM | MEDIUM | P2 |
| Premium Keeper's Journal | MEDIUM | MEDIUM | P2 |
| Season acceleration | MEDIUM | LOW | P2 |
| Cloud save sync | MEDIUM | HIGH | P2 |
| Push notifications (opt-in) | LOW | MEDIUM | P2 |
| Multiple save slots | LOW | LOW | P2 |
| Quiet/sleep mode | LOW | LOW | P3 |
| Achievement system (beyond fragments) | LOW | MEDIUM | P3 |
| Steam port | MEDIUM | HIGH | P3 |
| Mobile port | MEDIUM | HIGH | P3 |
| Localization | MEDIUM | VERY HIGH | P3 |
| Garden visiting (limited social) | LOW | HIGH | P3 |
**Priority key:**
- P1: Must have for launch (v1.0)
- P2: Should have, ship as v1.x patch
- P3: Future consideration, defer
---
## Competitor Feature Analysis
| Feature | A Dark Room | Universal Paperclips | Cookie Clicker | Melvor Idle | Spiritfarer | Stardew Valley | The Last Garden Approach |
|---------|-------------|----------------------|----------------|-------------|-------------|----------------|--------------------------|
| **Offline progression** | Limited (event-driven) | No (active session) | Yes (capped) | Yes (full) | N/A (not idle) | N/A | Yes, capped, narratively framed |
| **"What you missed" report** | Random events on return | None | Stat dump | Stat dump | N/A | N/A | Letter-style narrative (differentiator) |
| **Tutorial / FTUE** | Single button reveal | Trust-the-player | Tooltip-light | Heavy tutorial | Hand-holding intro | Soft intro | A Dark Room lineage — discovery |
| **Save persistence** | localStorage | localStorage | localStorage + cloud | Local + cloud (Steam) | Steam cloud | Steam cloud | IndexedDB + export/import + optional cloud |
| **Save export/import** | Yes (text) | Yes (text) | Yes (text) | Yes (text) | No | No | Yes (Base64 text) |
| **Discovery vs roadmap** | Pure discovery | Pure discovery | Visible upgrades | Visible skill tree | Mixed | Mixed | Pure discovery (lineage commitment) |
| **Narrative depth** | Heavy (the twist) | Heavy (the existential arc) | Light (jokes) | Almost none | Heavy (the arcs) | Medium (NPCs) | Heavy (7 Seasons + 3 arcs) |
| **Prestige** | None (one-shot) | "New Universe" loop | Heavenly Chips | None (skill-based) | N/A | N/A | Roothold (never-lost prestige) |
| **Multi-buy** | N/A | N/A | x1/x10/x100/Max | x1/x10/x100/Max | N/A | N/A | x1/x10/x100/Max |
| **Aesthetic ambition** | Minimalist text | Minimalist UI | Cookies-and-jokes | Functional UI | High (hand-painted) | High (pixel art) | High (watercolor + cello) |
| **Monetization model** | Free + paid mobile port | Free | Free + paid mobile | One-time paid + DLC | Premium ($30) | Premium ($15) | Free base + cosmetics + acceleration + Keeper's Journal |
| **Daily quest pressure** | None | None | None | Optional events | None | None (festivals are voluntary) | None — explicit anti-feature |
| **Combat / enemies** | Yes (combat layer) | Yes (drone wars) | None | Yes (skill-based) | None | Light (mining) | None — explicit anti-feature |
| **Episodic content updates** | No (static) | No (static) | Yes (free patches) | Yes (paid DLC) | No | Yes (free patches) | Yes (free additive patches, Hollow Knight model) |
| **Multiplayer / social** | None | None | None (leaderboards on Steam) | None | None | Multiplayer (3.0+) | None v1; maybe garden-visiting v2+ |
| **Accessibility (color/motion)** | Minimal | Minimal | Minimal | Minimal | Strong | Strong | Strong (cozy-audience expectation) |
**Key takeaway:** The Last Garden inherits A Dark Room and Paperclips' lineage on **discovery**, **narrative weight**, and **trust the player**, while inheriting Spiritfarer and Stardew's lineage on **aesthetic ambition**, **accessibility**, and **respectful monetization**. It uniquely combines these into the cozy + narrative + idle Venn that PROJECT.md identifies as uncontested.
---
## Tonal-Tradeoff Notes (load-bearing for downstream design)
Because PROJECT.md is unusually opinionated about tone, several normally-default features need explicit tonal review:
1. **"What you missed" screen as letter, not stat dump.** The data is the same; the framing is the entire experience.
2. **Notifications opt-in and rare.** The push notification standard for idle games is aggressive. This game's contract with the player is gentler. Default off; opt-in for Memory Storms only.
3. **No streaks, no "don't break the chain."** Streaks are FOMO weaponized. The garden does not punish absence.
4. **Numbers should grow but not dominate the screen.** Most idle games center the count; The Last Garden centers the garden visualization, with numbers as a secondary read.
5. **Tutorialization is environmental.** No "click here" arrows. No popup overlays. The first plant teaches you what planting is. The Dark Room rule: one button, expand only when the player is ready.
6. **Settings menu chrome must match the world.** A standard browser-game settings overlay (gray rectangle, system fonts) would break atmosphere. Watercolor-edged components, garden-vocabulary labels where natural ("Quiet" not "Mute"), but not so cute it becomes opaque.
7. **Cosmetic items are catalog, not random drop.** Players see exactly what they're buying. No surprise, no FOMO.
---
## Sources
- **A Dark Room design philosophy:** [TV Tropes](https://tvtropes.org/pmwiki/pmwiki.php/VideoGame/ADarkRoom), [Beginners guide without spoilers](https://ber10thal.com/blog/the-unofficial-guide-to-a-dark-room-without-spoilers/), [Wikipedia](https://en.wikipedia.org/wiki/A_Dark_Room)
- **Universal Paperclips structure:** [Paperclips Wiki - Stages](https://universalpaperclips.fandom.com/wiki/Stages), [History of incremental games](https://medium.com/@touloutoumou/from-progress-quest-to-universal-paperclip-the-history-of-free-incremental-games-3c96bfeaa918)
- **Cookie Clicker prestige system:** [Cookie Clicker Wiki - Ascension](https://cookieclicker.fandom.com/wiki/Ascension), [Heavenly Chips](https://cookieclicker.fandom.com/wiki/Heavenly_Chips)
- **Idle game player expectations 2025/2026:** [Future of Idle Games](https://gamertagguru.com/blog/the-future-of-idle-games-trends-and-expectations), [Apptrove guide](https://apptrove.com/a-guide-to-idle-games/)
- **Save persistence patterns:** [IndexedDB game saves tutorial](https://app.cinevva.com/tutorials/indexeddb-game-saves), [LocalStorage vs IndexedDB](https://dev.to/tene/localstorage-vs-indexeddb-javascript-guide-storage-limits-best-practices-fl5), [localForage](https://blog.logrocket.com/localforage-managing-offline-browser-storage/), [Construct 3 game save best practices](https://bugnet.io/blog/game-save-best-practices-construct3)
- **Save export/import conventions:** [TV Tropes - Export Save](https://tvtropes.org/pmwiki/pmwiki.php/Main/ExportSave), [Salt Keep devlog on save import/export](https://smallgraygames.itch.io/the-salt-keep/devlog/485074/feature-design-save-import-export)
- **Cozy game progression and storytelling:** [Stardew vs Spiritfarer comparison](https://thegemsbok.com/art-reviews-and-articles/spiritfarer-stardew-valley-mechanics-comparison/), [Spiritfarer preview](https://gameinformer.com/preview/2020/07/30/why-spiritfarer-is-a-different-kind-of-sim), [Integrating storytelling in cozy games](https://sdlccorp.com/post/integrating-narrative-and-gameplay-how-storytelling-enhances-cozy-games/)
- **Cosmetic monetization ethics:** [Game Economist Consulting on cozy games](https://www.gameeconomistconsulting.com/here-come-the-cozy-games-so-what-now/), [Ethical monetization design](https://www.daydreamsoft.com/blog/ethical-monetization-system-design-earning-revenue-without-losing-player-trust), [Indie monetization ethics](https://www.wayline.io/blog/ethical-dilemmas-monetization-indie-games)
- **Animal Crossing customization model:** [Furniture customization Wiki](https://nookipedia.com/wiki/Furniture_customization), [Customization guide](https://animalcrossing.fandom.com/wiki/Furniture_customization)
- **PWA / push notifications for games:** [MDN: PWAs and push for js13kGames](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Tutorials/js13kGames/Re-engageable_Notifications_Push), [W3C games-on-the-web roadmap](https://w3c.github.io/web-roadmaps/games/lifecycle.html), [Web Game Dev: PWAs](https://www.webgamedev.com/publishing/pwa)
- **Episodic vs full release for narrative games:** [Episodic video games on Wikipedia](https://en.wikipedia.org/wiki/Episodic_video_game), [Black Tabby on episodic narrative](https://blacktabbygames.medium.com/how-early-access-can-work-for-episodic-narrative-games-a-midpoint-post-mortem-ab19796de5b0), [Vice on the death of episodic gaming](https://www.vice.com/en/article/why-did-episodic-gaming-die/)
- **Live content updates (Hollow Knight / Hades model):** [Hollow Knight DLC](https://hollowknight.wiki.fextralife.com/DLC), [Hades II patch model](https://steamcommunity.com/app/1145350/discussions/0/682987821011709628/)
- **FTUE / onboarding best practices:** [Antidote FTUE playbook](https://antidote.gg/ftue-the-antidote-playbook/), [Unity 10 FTUE tips](https://unity.com/how-to/10-first-time-user-experience-tips-games), [GameAnalytics F2P FTUE tips](https://www.gameanalytics.com/blog/tips-for-a-great-first-time-user-experience-ftue-in-f2p-games)
- **Accessibility patterns for games:** [Color-Blindness Accessibility Guide](https://caniplaythat.com/2020/01/29/color-blindness-accessibility-guide/), [Accessible Games - Distinguish This From That](https://accessible.games/accessible-player-experiences/access-patterns/distinguish-this-from-that/), [Filament Games - Color blindness](https://www.filamentgames.com/blog/color-blindness-accessibility-in-video-games/)
- **Daily-quest harassment dynamics:** [Resetera idle escalation thread](https://www.resetera.com/threads/what-idle-game-escalation-is-your-favorite.109498/), [Idle Slayer community discussion on weekly quest design](https://steamcommunity.com/app/1353300/discussions/0/5287797783031277967/)
---
*Feature research for: cozy + narrative + idle browser game (The Last Garden)*
*Researched: 2026-05-08*