Idle How to Make an Incremental Game (Tick Loop 2026)

By Arron R.13 min read
How to make an incremental game in 2026: model resources, generators, and upgrades as a small tick-loop state object, wire offline catch-up in WizardGenie, dres

Most beginners who search "how to make an incremental game" want the Cookie Clicker feel - a fat clickable icon that spits out currency, a shopping list of generators whose prices climb 15% per purchase, upgrades that quietly multiply everything, an offline catch-up bonus when they return, and a prestige button that resets progress for a permanent multiplier - not a Progress Quest reimplementation on day one. The genre is famously "glorified spreadsheets with really neat mechanics", and that is a compliment. A commercial idle game is a live-service business with weekly balance patches and event calendars. A browser incremental game is different. A coding agent scaffolds the tick loop, the resource math, the offline catch-up, and the prestige reset from one prompt, and AI generation covers the icons and audio cues. On desktop or web, that means WizardGenie for the tick-loop interpreter, AI Image Gen for cookie, grandma, and factory icons, and SFX Gen for click and prestige cues. This guide is the honest end-to-end for how to make an incremental game in 2026, as a weekend build you can actually finish.

How to make an incremental game browser pipeline: click income, generators, upgrades, and prestige reset wired in WizardGenie
The 2026 how to make an incremental game recipe: click income seeds the economy, generators automate ticks, upgrades multiply output, and prestige resets progress for a permanent bonus.

What how to make an incremental game actually means in 2026

The query "how to make an incremental game" hides three distinct intents. Some searchers want an economics deep dive on live-service monetization - ad rewards, gacha boosters, time-warp microtransactions - a business brief, not a browser build. A second intent is a broader how to make a video game guide covering engines, art, and audio under one umbrella - useful, but too broad to answer the incremental-specific "click, generate, upgrade, automate, prestige" mental model. The intent this guide targets is the third: a browser incremental game that boots into a single-page HTML shell with a clickable resource, a shopping list of generators whose costs climb exponentially, a small upgrade grid, an automated tick that runs even while the tab is hidden, and a prestige reset that grants a permanent multiplier and restarts the run. That is a weekend build, it demos the Sorceress toolset, and it is the format most incremental game tutorial and browser clicker upgrade searchers actually want.

The presentation contract is small and strict. A hero panel shows the primary resource with a big animated icon and the current total in a short-scale suffix like 12.4M. A per-second readout tracks the current cumulative income. A generators panel lists each generator with cost, count owned, and per-tick emission. An upgrades panel lists purchasable multipliers or unlocks with cost and effect. A prestige panel appears once the player crosses the reset threshold, showing how many prestige points ("ascension points", "sacred coins", whatever theme you pick) the current run would grant. The incremental game overview on Wikipedia (verified 2026-08-30) traces the genre from Progress Quest (2002) through Cow Clicker, Candy Box, Cookie Clicker (2013), and Clicker Heroes (which pioneered layered prestige), and confirms these five panels as the defining loop - cite that page in your itch.io blurb so players know you shipped a browser incremental game tick loop, not a walking simulator.

The incremental tick loop in one minute (click, generate, upgrade, automate, prestige)

Five moving parts, cycled forever. First, click - the player taps the primary resource icon and it emits a small amount of currency, which seeds the whole economy. Second, generate - the player spends accumulated currency on generators; each owned generator emits a per-tick amount that scales linearly with count and exponentially with tier. Third, upgrade - the player buys milestone upgrades that multiply either click income, one generator's output, or the whole economy; costs are usually flat but effect stacks are permanent. Fourth, automate - the tick loop runs every 100 ms, evaluating idle income even when the player is not clicking; when the tab is hidden, the loop pauses but timestamps are saved so the next visit can catch up. Fifth, prestige - once total lifetime earnings cross a threshold, a prestige button appears; pressing it resets the run but grants prestige points that permanently multiply future income. That five-step cycle is the whole idle game javascript loop - everything else (themes, upgrades trees, ascension layers, event currencies) is polish on top.

Incremental tick loop state machine diagram showing click income, generators, upgrades, automated ticks, and prestige reset with permanent multiplier
The incremental tick loop: click seeds income, generators automate output, upgrades multiply, automate runs while idle, prestige resets for a permanent bonus.

Pick your engine for how to make an incremental game: vanilla DOM, Canvas, or WizardGenie

Three good targets in 2026, each with a different trade-off. Vanilla HTML with a bit of CSS grid is the honest default and the pick this guide recommends for a first build. Incremental games are UI-heavy, not render-heavy - the game state fits in one JavaScript object, the DOM handles all layout, and the only animation you need is a subtle scale bounce on the click target and a numeric ticker. Bind buttons and use requestAnimationFrame only for the visual ticker; keep the game tick on a setInterval at 100 ms so it survives tab focus changes cleanly. The MDN Page Visibility API docs (verified 2026-08-30) explain why setTimeout and setInterval are throttled in background tabs, and how the visibilitychange event lets you save state at the exact moment the tab hides so a browser crash never costs the player a full run.

Big numbers matter more than beginners realize. Cookie Clicker style pacing routinely crosses 1e15 within a few prestige loops, and plain JavaScript Number starts losing integer precision at 2^53. The MDN BigInt reference (verified 2026-08-30) covers the native primitive that handles arbitrary-precision integers with the n suffix - 10n ** 100n is exact, no library required. For a first build, stick with Number and cap the design around 1e12; when a v2 wants Cookie-Clicker-scale pacing, migrate the currency fields to BigInt and format for display with a short-scale suffix table (K, M, B, T, Qa, Qi, Sx, Sp, Oc, No, De) or fall through to scientific notation once you cross the last suffix.

Phaser v4.2.1 "Giedi" (released 9 July 2026, verified 2026-08-30 on the official Phaser stable download page) becomes the right pick only when the incremental game is really an incremental hybrid - a shooter with idle DPS, a clicker with a real Canvas play field, an autobattler with per-frame simulation. Phaser Scenes give you a clean HUD-plus-play-field split and physics-arcade bodies for particle bursts on click. For a pure spreadsheet-style incremental, Phaser is overkill; stick to DOM. Use Phaser when the Scene stack and per-frame render are the product; use plain HTML when the product is a readable incremental game tutorial people can build in one sitting.

WizardGenie is not a separate incremental engine - it scaffolds whichever of the two you pick from a single natural-language prompt. WizardGenie ships as both a desktop app (Windows installer with auto-update, available to Early Access supporters and above) and a no-install web build. Its coding-model lineup covers Claude Opus 4.7, Claude Sonnet 4.6, GPT-5.5, Gemini 3.1 Pro, DeepSeek V4 Pro, Kimi K2.5, Grok 4.2, and MiniMax M2.7 (verified 2026-08-30 in src/app/_home-v2/_data/tools.ts). For a first incremental tick loop, any frontier model scaffolds the click-generate-upgrade-automate-prestige state machine in one prompt. Pair a frontier planner with a budget executor like DeepSeek V4 Pro or Kimi K2.5 for the typing pass - the dual-agent pattern lands most projects at roughly one-fifth the single-frontier cost.

Step 1 - model resources, generators, upgrades, and the tick math

Nothing else in the pipeline matters if the numbers drift or a refresh loses the run. Start with a small, testable model:

const SAVE_KEY = "incremental.save.v1";
const TICK_MS = 100;
const OFFLINE_CAP_SECONDS = 8 * 60 * 60;
const COST_GROWTH = 1.15;

const state = {
  cookies: 0,
  lifetime: 0,
  prestige: 0,
  clickPower: 1,
  generators: [
    { id: "grandma", baseCost: 15, baseCps: 1, count: 0 },
    { id: "factory", baseCost: 100, baseCps: 8, count: 0 },
    { id: "temple",  baseCost: 1e4, baseCps: 47, count: 0 },
    { id: "portal",  baseCost: 1e6, baseCps: 260, count: 0 },
  ],
  upgrades: { doubleClick: false, sugarRush: false },
  lastTick: Date.now(),
};

function multiplier() {
  return 1 + state.prestige * 0.02;
}

function costFor(gen) {
  return Math.ceil(gen.baseCost * Math.pow(COST_GROWTH, gen.count));
}

function cps() {
  const base = state.generators.reduce((s, g) => s + g.count * g.baseCps, 0);
  const boost = state.upgrades.sugarRush ? 5 : 1;
  return base * boost * multiplier();
}

function clickCookie() {
  const gain = state.clickPower * (state.upgrades.doubleClick ? 2 : 1) * multiplier();
  state.cookies += gain;
  state.lifetime += gain;
  playSound("click");
}

function buy(id) {
  const gen = state.generators.find(g => g.id === id);
  const cost = costFor(gen);
  if (state.cookies < cost) return false;
  state.cookies -= cost;
  gen.count += 1;
  playSound("purchase");
  return true;
}

function prestigePointsAvailable() {
  return Math.floor(Math.pow(state.lifetime / 1e12, 0.5));
}

function ascend() {
  const gain = prestigePointsAvailable();
  if (gain <= 0) return;
  state.prestige += gain;
  state.cookies = 0;
  state.lifetime = 0;
  state.generators.forEach(g => g.count = 0);
  state.upgrades = { doubleClick: false, sugarRush: false };
  playSound("prestige");
}

Unit-test five cases before you generate any art: clicking with default state raises cookies by exactly 1; buying the first grandma at cost 15 sets count to 1 and drops cookies by 15; the second grandma costs 18 (15 * 1.15 rounded up); cps() returns 1 when one grandma is owned and no prestige bonus is active; ascending with lifetime = 4e12 grants 2 prestige points and zeroes cookies. Those five tests catch ninety percent of javascript idle game bugs. Keep the cost growth constant at 1.15 - Cookie Clicker's original ratio - and only tune it after the whole loop feels honest.

Step 2 - wire the tick loop and offline progress in WizardGenie

With the state machine drafted, open WizardGenie. Drop in a bare index.html shell with a hero click target, a generators list, an upgrades panel, a prestige panel, and a save/reset row. Give the agent one paragraph: Build a browser incremental game. Model cookies, lifetime cookies, prestige points, four generators (grandma, factory, temple, portal), two upgrades (doubleClick, sugarRush), and a click power. On the click target, add the click income function. Render the generators list with cost and count; buying uses the exponential cost formula. Render the upgrades panel with fixed costs. Every 100 ms, add cps() * 0.1 cookies. Save state to localStorage on every tick. On page load, read the last save, compute elapsed seconds since lastTick, cap at 8 hours, and apply that much idle income in one pass. On tab visibility change, save state on hide and re-catch up on show. Show a prestige button when prestigePointsAvailable() is at least 1; clicking it resets cookies and generators and grants the points. Feed that to any coding model in the lineup and the interpreter scaffolds in under fifteen minutes.

The remaining hour is polish via follow-up prompts. Add a satisfying click bounce - a 100 ms transform: scale(0.95) then back on click - four lines of CSS plus a class toggle. Add a flying-number burst - a floating +1 that spawns at the cursor and drifts up while fading - fifteen lines. Add an upgrade unlock condition - the sugarRush upgrade only appears once the player owns 10 grandmas - one line. Add an offline welcome-back modal - a small dialog reading "Welcome back! Your factory earned 24,500 cookies while you were gone." on load if elapsed seconds is more than 60 - ten lines. Each item is a follow-up prompt, and the whole browser clicker upgrade experience lands over a Saturday afternoon.

Optional siblings on the same tick shell: for a click-only prestige-free version, borrow the input handling from how to make an idle game or the pure click emphasis in how to make a clicker game. For a tycoon-flavored variant that adds visible workers and a per-department UI, see the profit loop in how to make a tycoon game.

Persist the whole save with the MDN localStorage API (verified 2026-08-30) so a refresh still shows the player's exact state. Keep the save payload tiny: cookies, lifetime, prestige, generator counts, upgrade flags, and lastTick - not a full click history. Include a schema version key so a future upgrade can migrate old saves rather than wipe them.

Step 3 - AI Image Gen icons, SFX Gen cues, and the prestige meta-loop

A DOM shell with placeholder emoji reads as unfinished even when the math is honest. Two asset passes plus one design pass cover the whole html5 incremental game experience:

  • Icons - AI Image Gen generates the main resource icon (a golden cookie, a shiny gem, a wobbling slime - whatever your theme picks) and one icon per generator tier. Prompt one square 1024x1024 image per subject: "small chunky golden cookie icon, cel-shaded, transparent background", "small pixel-art grandma character icon, warm palette, transparent background", "small isometric factory icon with smokestacks, transparent background". The AI Image Gen picker exposes Nano Banana Pro, Nano Banana 2, GPT Image 2, Seedream 5 Lite, Flux 2 Pro, Z-Image Turbo, and Grok Imagine (verified 2026-08-30 in src/app/generate/page.tsx) - pick a fast, cheap model like Z-Image Turbo or Nano Banana 2 for icon iteration and only bump to a heavier model for the hero cookie.
  • SFX cues - open SFX Gen and describe four clips in plain language: "short bright bell ding on click", "small purchase chime on generator buy", "rising three-note fanfare on upgrade purchase", "deep resonant stinger on prestige reset". SFX Gen bills roughly one credit per second of generated audio (BytePlus Seed Audio pricing verified 2026-08-30 in src/app/sfx-gen/page.tsx) - four short clips land around 6 credits total. Cap the click cue at 80 ms and mute rapid-fire duplicates so a fast clicker does not blow out the mix.
  • Prestige balance - the meta-loop only works if the first prestige feels earned. Tune so the first ascension sits between 30 and 60 minutes of real play, grants roughly 2-5 prestige points, and the second run reaches the first prestige threshold in about half the time. Prestige Points that permanently multiply cps by 2% each (as in the code above) is the safe default; steeper multipliers like 15% quickly break the exponential balance curve. Cookie Clicker uses a heavenly-chip system with roughly the same math - lean on that shape rather than inventing your own on day one.

Load icons as regular <img> elements and let CSS handle sizing - no canvas needed. Do not chase a "perfect" first icon set - a second AI Image Gen retry is cheap, but three retries per subject is a signal to change the prompt, not the seed.

Incremental game asset stack diagram showing AI Image Gen icons for cookie grandma and factory, SFX Gen click and prestige cues, roughly 26 credits total
The incremental asset stack: AI Image Gen for hero cookie and generator icons, SFX Gen for click, purchase, upgrade, and prestige cues - roughly 26 credits total.

Step 4 - playtest the browser incremental game like a live-service producer

Before you share the build, run a five-minute checklist borrowed from live-service producer reviews:

  1. The first click feels good - the click emits a satisfying sound, the number moves visibly, and the floating +1 lands cleanly.
  2. The first purchase happens inside 30 seconds - a fresh player accumulates enough to buy the first grandma without over-clicking; that first purchase is the hook.
  3. The exponential wall shows up but is not brutal - a first-time player reaches four to six generator types in ten minutes; each new type opens a new upgrade branch.
  4. Offline progress is a reward, not a rug-pull - closing the tab for five minutes and returning shows a welcome-back modal with an honest number; closing for 24 hours caps at the 8-hour ceiling without complaint.
  5. The first prestige lands between 30 and 60 minutes - the prestige button appears, glows, and grants a number the player understands; the next run is visibly faster.

Log issues as WizardGenie follow-ups, not rewrites. "Add a click-per-second readout above the cookie" is one prompt. "Add a keyboard shortcut so pressing space clicks the cookie" is another. The Sorceress tools guide lists every asset tool if you want to swap AI Image Gen icons for a hand-drawn set or add a Music Gen ambient track later - the tick-loop code does not change.

What how to make an incremental game costs on Sorceress in 2026

An honest budget for the stack above against the 2026 Sorceress rate card (verified 2026-08-30 against local source):

  • Six AI Image Gen icons (hero cookie, four generators, one upgrade badge) at a typical fast-model cost of ~4 credits each: about 20 credits (0.20 USD)
  • Four SFX Gen clips (~6 seconds of audio total): ~6 credits (0.06 USD)
  • No Music Gen track for a first build - most incremental games ship silent or ambient
  • Coding-model API time with planner + budget executor: under 0.30 USD

Total roughly 26 credits or 0.26 USD in generation, plus a small model bill. The free 100-credit signup grant covers this build outright, with headroom for icon retries and a v2 ambient track. Lifetime Early Access sits at 49 USD (LIFETIME_PRICE in src/app/plans/page.tsx) if you want desktop WizardGenie with auto-update for the next jam. Credits convert at 100 per dollar (CREDITS_PER_DOLLAR in src/lib/models.ts). Adding a Music Gen ambient loop (10 credits) plus a second prestige-currency icon (4 credits) lifts the total to about 40 credits or 0.40 USD, still well under the one-dollar ceiling this guide targets.

That is the whole path for how to make an incremental game as a browser tick loop in 2026: model resources, generators, and upgrades as a small testable state object, let WizardGenie scaffold the click-generate-upgrade-automate-prestige flow from one prompt, dress the interface with AI Image Gen icons and SFX Gen cues, and ship the spreadsheet before the weekend ends. When you are ready for layered prestige, meta-currencies, or event content, graduate slowly - but finish one honest tick loop first.

Frequently Asked Questions

What defines an incremental game as a genre in 2026?

An incremental game is a subgenre built around accumulating in-game resources through repetitive clicks or automation and progressing along an exponential curve, per the Wikipedia incremental game entry (verified 2026-08-30). Clicker games emphasize manual input; idle games emphasize automation and offline progress; most modern titles blend both. The defining loop is click income, buy generators, buy upgrades, automate, and eventually prestige - reset progress in exchange for a permanent multiplier that makes the next run faster. Progress Quest (2002) is the acknowledged origin, Cookie Clicker (2013) popularized the shape, and Clicker Heroes pioneered layered prestige. Any browser incremental game that ships those five beats reads correctly to a genre-literate player.

How is how to make an incremental game different from how to make a clicker or idle game?

Clicker games are the subset that require manual clicks to earn currency; idle games are the subset where progress continues while the tab is closed. Incremental is the umbrella term for both, plus every hybrid in between. A honest how to make an incremental game tutorial should cover the click branch (a click emits X currency), the generator branch (each owned generator emits Y per tick), and the automation branch (upgrades convert clicks-per-second and idle income scaling factors). If you only cover clicks, you shipped a clicker game tutorial; if you only cover automated ticks, you shipped an idle game guide. This article ships both and adds the prestige reset that ties the two together.

Do I need BigInt or a big-number library for the numbers to keep making sense?

For a first weekend build, plain JavaScript Number is fine up to about 1e15 before precision starts breaking. Cookie Clicker style games routinely cross 1e100 within a few prestige loops, at which point you need help. The MDN BigInt reference (verified 2026-08-30) covers the native primitive that handles arbitrary-precision integers with the n suffix (10n ** 100n is exact). For decimal-precision beyond that, ship break_infinity.js or a comparable library in v2 - do not roll your own. Format for display with a short-scale suffix table (K, M, B, T, Qa, Qi, Sx, Sp) or scientific notation once you cross the largest suffix you defined.

How does offline progress work if the tab is closed?

Two moving parts. First, on every tick, save the current game state and a wall-clock timestamp to localStorage. Second, on page load, read the last timestamp, compute the elapsed seconds since then, and simulate that many ticks of automated income in a single fast pass. Cap offline earnings at a design ceiling like 8 or 24 hours so returning players get a reward but not an economy-breaking windfall. Use the MDN Page Visibility API (verified 2026-08-30) to also save state whenever the tab hides so a browser crash does not lose a full session. Do not confuse Page Visibility - which fires on tab hide - with the beforeunload event, which fires on page close and is not reliable on mobile.

How much does building an incremental game on Sorceress cost in 2026?

A first-project browser tick loop budgets like this against the 2026 Sorceress rate card (verified 2026-08-30 against local source). Six AI Image Gen icons (main resource, three generators, prestige currency, one upgrade badge) at a typical model cost of a few credits each land around 20 credits. Four SFX Gen clips (click ding, purchase chime, upgrade fanfare, prestige stinger) at roughly one credit per second of audio total around 6 credits. No music for a first build - most incremental games ship silent or ambient. Coding-model API time under 0.30 USD with a planner plus budget executor. Total roughly 26 credits or 0.26 USD in generation. The free 100-credit signup grant covers the build with headroom for icon retries. Lifetime Early Access is 49 USD and unlocks the desktop WizardGenie with auto-update for the next jam.

Sources

  1. Incremental game - Wikipedia
  2. Phaser v4.2.1 Giedi download
  3. MDN - Page Visibility API
  4. MDN - localStorage
  5. MDN - BigInt
Written by Arron R.·2,933 words·13 min read

Related posts