Skip to content

riegodavid-git/spreadsheet-valley

Repository files navigation

GROWTH.xlsx

A cozy, Stardew-Valley-inspired farming sim disguised as a Google Sheets spreadsheet.

You inherit a run-down farm and a 5,000g bank loan. Pay it off by tilling, planting, fishing, mining, and foraging — except the whole game is dressed up as Q3_Forecast_FINAL_v2.xlsx, so it looks like you're hard at work on a quarterly forecast. Column letters, row numbers, a formula bar, conditional-formatted cells, and bottom sheet tabs aren't a skin bolted on top — they are the interface. Range selection is your tool. Formulas are power-user shortcuts. Tabs are world areas.

▶ Play the live demo

GROWTH.xlsx

🌱 Playable. All four money tracks (farming, fishing, mining, foraging), the RPG/skills layer, weather, the overnight economy, an onboarding Objectives board, and a full celebration/feedback layer are in. Remaining work is content depth, cosmetic sheet themes, audio, and a balance pass — see the roadmap below.


The concept: spreadsheet cosplay

The disguise is the game:

  • Cells are tiles. Each cell on the Farm sheet shows its state with an emoji + a conditional-formatting background color: grey untilled dirt, brown tilled, blue-tint watered, crop emoji with a growth ring, gold border when ripe — plus a corner water-status droplet (blue = watered, amber = needs water today) so the morning watering pass reads at a glance.
  • Range selection is the core verb. Drag-select a range like B2:I9 and click an action to apply it to the whole field at once (paying energy until it runs out) — exactly how you'd fill a formula across a range in Sheets.
  • A real formula bar with autocomplete drives the same engine as clicking:
    • =plant(A1:H1,"turnip") · =water(A1:H8) · =harvest() · =buy("Copper Can")
    • =ship("Potato",20) · =cast() · =mine() · =sleep() · =goto("Mine")
  • The HUD is a frozen header row of cells: day, clock, weather + tomorrow's forecast, gold, loan balance, and an energy bar rendered as conditional-formatted cells.
  • Tabs are world areas: Farm · Store · Mine · Pond · Woods · Skills · Mailbox · Almanac · Objectives.
  • The gag: the browser tab reads Q3_Forecast_FINAL_v2.xlsx — you're secretly farming at work.

The four money tracks

You spend a limited daily energy budget across four income paths, each designed to play differently — not just reskins of one another:

Track Capital Variance Role
🌱 Farming Med (seeds) Low The backbone; scales with land + regrow crops + sprinklers
🎣 Fishing ~0 High Best when broke; energy-cheap, time-heavy, weather-boosted
Mining Tools Bursty Yields the bars that upgrade your tools, not just gold
🌲 Foraging / Lumber ~0 Low Free daily forage + renewable wood, the building-material supply line

The "best" choice depends on the day: rain means fish or mine (crops self-water for free); broke means fish; saving for a sprinkler means mine + chop for materials.

Systems

  • Energy / stamina is the central daily limiter (the Stardew model). Watering a full field by hand is intentionally impossible — that tension pushes you toward rain, sprinklers, and watering-can upgrades. Running out fails soft; there's no game over.
  • Skills (RPG layer): four skills (Farming / Fishing / Mining / Foraging), levels 1–10, each level granting a concrete unlock — a new crop, a tool tier you become eligible for, a quality bonus, or extra max energy.
  • Tool tiers: Watering Can, Hoe, Axe, Pickaxe, and Rod each upgrade through Copper → Iron → Gold → Iridium tiers, gated by skill level + gold + smelted ore bars. Per-tile energy plummets as area grows, so upgrades feel transformative.
  • Weather & forecast: rolled overnight and shown one day ahead so you can plan — rain auto-waters every crop for free; storms, heatwaves, and night-only catches change the calculus.
  • Overnight resolver: drop harvests/fish/ore into the Mailbox shipping bin, then =sleep() — the bin sells overnight (with daily price drift), crops advance, weather rerolls, letters arrive, and you wake at 6:00 AM with full energy.
  • Daily watering loop: every crop must be watered (or rained on) each day to advance a growth stage — skip it and a morning note tells you what didn't grow. Harvesting a single-harvest crop clears the tile back to dirt, so you re-hoe before replanting (regrow crops keep producing).
  • Objectives board: a spreadsheet-styled checklist of chained goals (an Act 1 onboarding chain through Act 2 mastery). Each completion is claimable for a reward and reveals the next thing to chase — and the early ones double as the tutorial.
  • Feedback & celebrations: floating +gold / +XP popups, a morning shipment summary, and milestone overlays for level-ups, tool upgrades, mine depth, and the loan payoff — so progress lands instead of passing by.
  • Fishing reel: cast, wait for the bite, then hold SPACE (or the button) to keep the green zone on the darting fish until the catch meter fills; better rods widen the zone.
  • Farm expansion: buy extra rows/columns of soil from the Market (escalating cost) as your field outgrows the starting 8×8.
  • Autosave to localStorage on every action.

Tech stack

  • Vanilla JavaScript — no framework, turn-based engine (performAction → advanceTime → render), localStorage autosave.
  • HTML + CSS with Tailwind CSS precompiled to a static stylesheet (no runtime CDN).
  • Content as data tables in data/ (crops.js, fish.js, ore.js, forage.js, tools.js, skills.js, recipes.js, letters.js, objectives.js) — balancing is just editing a table.
index.html        # the spreadsheet shell + disguise
engine.js         # game state, actions, overnight resolver
ui.js             # presentation layer / cell rendering
styles.css        # custom styles
tailwind.css      # precompiled Tailwind (rebuild via tailwind-input.css + tailwind.config.js)
data/             # crops, fish, ore, forage, tools, skills, recipes, letters, objectives
GAME_DESIGN.md    # full design document
stitch_spreadsheet_valley/  # design mockups
docs/screenshot.png

Run it locally

The game loads its data scripts with relative paths, so serve the folder over HTTP rather than opening index.html from the filesystem:

python -m http.server 8123
# then open http://localhost:8123/index.html

Or just use the live demo (GitHub Pages, served over HTTPS).

Roadmap

# Milestone Status
M0 Shell — tabs, grid, formula bar, HUD, save/load
M1 Farming loop — hoe/can/seeds/harvest, store, shipping bin, sleep cycle, energy
M2 RPG layer — skills + XP, tool upgrade tiers, weather, sprinklers
M3 Fishing — pond tab + hold-SPACE reel mini-game + rod tiers
M4 Mining — ore/ladders/elevator, Blacksmith smelting → tool upgrades
M5 Lumber & forage — chopping, forage spawns, tree tapping, crafting
M6 Story + economy — loan act, tutorial/onboarding, Objectives board, Act 2 unlocks ✅ core · 🚧 balance pass
M7 Polish — celebrations & feedback ✅ · sheet themes, sfx, accessibility 🚧 🚧
M8 Content depth — cosmetic themes, cooking, more fish/crops, festivals 🔜 next

See GAME_DESIGN.md for the full design document.


Working title: GROWTH.xlsx (alt: Cells & Soil). A cozy game about spreadsheets, soil, and slowly clawing your way out of debt.

About

A cozy farming sim disguised as a Google Sheets spreadsheet — till, plant, fish, mine, and sell via cells and formula-bar commands. Vanilla JS, in active development.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors