A browser idle/incremental mining game — strike ore, build an empire, descend forever.
Mine → sell → automate → fight your way to the Ender → prestige → descend into infinite depth. Tuned for a real weeks-long, multi-prestige grind (think Clicker Heroes × Cookie Clicker), with the whole economy validated by an in-repo simulation harness.
Deepcore is a single-page idle game built with React + Vite. You start with a wooden
pickaxe and one ore worth $1. From there you compound: better pickaxes, a passive crew,
research, an army to slay bosses, a portal to the Ender, and a permanent Descent
into ever-deeper, ever-richer layers — all gated behind a carefully balanced economy designed
to last weeks, not an afternoon.
The numbers aren't guessed. The core economy lives in pure, unit-tested modules and is
stress-tested by a deterministic economy simulator (pnpm test economy.sim) that plays a
greedy optimal player through ~60 simulated days and asserts the pacing never runs away or stalls.
MINE ore ──► SELL for $ ──► PICKAXES · CREW · UPGRADES ──► mine faster & deeper
│ └──► RESEARCH POINTS ──► in-run tech tree (yield · sell · speed · luck)
│
▼ ($50k) the ZOMBIE attacks ──► build an ARMY ──► BOSS CURRENCY ──► slay bosses
│ └─► Soul Orbs · Portal parts
▼
4 Portal parts ──► open the ENDER ──► Endore & Anti-Matter (the deepest ore)
│
▼ enough lifetime earnings ──► PRESTIGE: reset the run for permanent % bonuses
│ + a Soul-Orb meta-tree
▼
spend $ to DESCEND ──► permanent depth layers (richer ore + Soul Orbs), forever
Two progression loops run in tandem: a fast inner loop (prestige — reset for a permanent
√PP multiplier) and a slow outer loop (Depth — a permanent, infinitely-scaling descent).
| System | What it does |
|---|---|
| ⛏️ Mining | Click (or AutoPilot) to swing. 10 ore types, value-weighted drop rolls, crits & luck. |
| 👷 Crew | Hire miners for passive income that scales with the real ore market + your depth. |
| 🧰 Upgrades | One-time milestone upgrades plus repeatable, geometric-cost lines (a perpetual sink). |
| 🔬 Research | An in-run RP tech tree: +yield, +sell, +speed, crit, deep-ore odds, repeatable capstones. |
| 🗄️ Storage & Vault | Capacity tiers, auto-sell, and per-ore reserve sliders to bank materials. |
| ⚔️ Army & Attack | Recruit units, fight the Zombie and a boss ladder up to the 500B-HP Singularity. |
| 🌀 Portal → Ender | Assemble 4 parts to unlock the Ender phase: Endore, Anti-Matter, deep bosses. |
| 🏚️ Village & Items | Ore-trades (incl. the escalating Soul-Orb mage) and timed consumable buffs. |
| 🌌 Prestige | Ascend to reset the run for permanent global % bonuses + a Soul-Orb meta-tree. |
| 🕳️ Depth / Descend | The infinite axis: spend money to breach permanent layers — richer ore + Soul Orbs. |
| 🏆 Achievements | Permanent yield bonuses for milestones, plus an infinite depth-badge series. |
| 💾 Persistence | Autosave (20s + on hide/unload) and offline earnings while you're away. |
Currencies: $ Money · RP Research Points · BC Boss Currency · ◆ Soul Orbs · % Prestige · ▾ Depth
Prerequisites: Node.js 18+ and pnpm 9+.
pnpm install # install dependencies
pnpm dev # start the dev server (http://localhost:5173)
pnpm build # production build → dist/
pnpm preview # preview the production build
pnpm test # run the vitest suite (incl. the economy simulator)
pnpm lint # eslintProgress saves to
localStorage. Use Reset in the top bar to wipe and start fresh.
The economy is simulation-driven. Pure math lives in src/utils/*Data.js / *Logic.js
with vitest coverage, and src/sim/economy.sim.test.js is an integrated harness that imports
the real data modules and plays a greedy player through mining, crew, upgrades, research,
prestige and depth — printing a full multi-prestige timeline and asserting pacing guard-rails
(first prestige is a real arc, prestige count stays bounded, progression spans weeks).
pnpm test # everything
pnpm test economy.sim # print the pacing timeline + guard-railsIt has already earned its keep, catching two would-be-fatal feedback runaways in the prestige and depth loops before they shipped.
src/
├── App.jsx # game state + the wiring hub for every system
├── components/ # UI panels (Mine, Crew, Upgrades, Research, Army, Prestige, Depth…)
│ ├── mining/ # MiningHero, DropsFeed, PickaxePath
│ └── toast/ # toast provider/stack
├── utils/ # pure economy data + logic (one module per system) + tests
│ ├── oresData · pickaxeData · workerData · upgradesData · researchData
│ ├── prestigeData · depthData · achievementsData · villageData · itemsData
│ ├── armyData · attackData · bossData
│ └── miningLogic · vaultLogic · workerEconomy · offlineProgress · purchaseMath · saveGame
├── sim/ # the integrated economy simulator (runs under vitest)
└── styles/ # design tokens + theme
docs/design/ # economy audit, system map, and the depth/meta design spec
- React 18 + Vite 6 (Babel Fast Refresh)
- Tailwind CSS 3 + custom design tokens
- prop-types, clsx, tailwind-merge
- Vitest 2 + Testing Library / jsdom for the integration smoke test
- pnpm, ESLint 9
This started as a Minecraft-flavored clicker and was deliberately re-balanced into a
long-haul idle game. The design rationale — currency web, pacing targets, the prestige and
depth loops, and every tuning decision — is documented under docs/design/:
economy-audit-2026-06-03.md— the rebalance findings2026-06-03-depth-and-meta-expansion.md— the infinite Depth + meta designeconomy-map.md·system-inventory.md
Released under the MIT License — see LICENSE for the full text.
© 2026 Hank Wyatt.
Sprites are Minecraft-inspired placeholders — Deepcore is an unofficial fan/hobby project, not affiliated with or endorsed by Mojang or Microsoft.