All work

Candy Tycoon (Revamped)

A from-scratch rewrite of my 2019 incremental game in clean, framework-free JavaScript. Build candy factories, ride a live market of spikes and crashes, automate your shops with stop-loss and logistics upgrades, and watch it all on a hand-rolled canvas dashboard. No engine, no dependencies, just ES modules.

Vanilla JS (ES Modules) HTML5 Canvas CSS No framework LocalStorage Eleventy
Play it live

The problem

The original Candy Tycoon (2019) was a single ~500-line minified AngularJS file: fun, but impossible to extend, and quietly shipping a watermarked chart library and a stray redirect to google.com. I wanted to keep the game and lose the cruft.

My role

Solo: design, balance, architecture and code. I recovered the game model from the old minified bundle and rebuilt it from the ground up.

Outcome

A modular, dependency-free game: a live market system, shop automation, versioned saves with a patch-notes popup, and a custom canvas chart, all plain ES modules served as static files. Runs at 60fps with a tiny memory footprint.

A living candy economy
A living candy economy

Build factories across 16 candy types, open shops, and price-optimise as exponential cost curves push you to keep expanding. Hundreds of values recompute live every frame.

A market that fights back

Prices spike and crash on live market events, with a scrolling news ticker, per-candy trend arrows, and a market-odds readout. Upgrade toward friendlier headlines and more frequent events to bend the market your way.

Automate your empire

Stop-Loss closes a shop when its product crashes; Hired Hands reopens it when prices recover; Franchise Playbook points every shop at one product; and the R&D Department auto-buys production upgrades, toggleable any time.

Hand-rolled dashboard

The Information panel renders a doughnut sales-mix, per-candy bars, and live balance / earned / cash-per-second lines on a custom HTML5 canvas chart, replacing the watermarked library the original shipped.

Plays anywhere
Plays anywhere

A responsive three-column board that collapses to a single column on phones, with collapse-all controls, press-and-hold confirmations for irreversible actions, and folding panels to tame the density.

How it's built

A deep dive into the architecture: a pure simulation core, a fixed-step game loop, data-driven balance, versioned saves, and a framework-free panel system.