Back to all work
Case Study

Forge & Field

Craft gear and send heroes on quests

Next.jsReact 19PWACSS Modules

The Problem

Most idle games fall into the same trap: exponential number inflation masquerading as progression. Players tap a button, watch numbers climb, prestige, and repeat — with no meaningful decisions between resets. The genre has stagnated around clicker mechanics that reward patience over strategy.

I wanted to build an idle game where the "idle" part funds real decisions: what to craft, which heroes to equip, where to send expeditions, and when to prestige. The goal was a game that respects the player's time — meaningful offline progress, strategic depth in combat and crafting, and a content rotation that gives returning players something new each week.

The Approach

Forge & Field is built as a mobile-first Next.js PWA using React 19 and Turbopack for development. All game state lives client-side in a single reducer — no backend, no accounts, no loading screens. The game saves to localStorage with versioned schema migrations, so state can evolve across updates without breaking existing saves.

The core loop is: generate resources passively, craft weapons and armor with a rarity system (Common through Epic), equip heroes, send them on expeditions through multi-region world maps, resolve turn-based combat, and reinvest rewards. Layered on top are village buildings, skill evolution trees, weekly rotating seasons with exclusive recipes, daily quests, and a prestige system that trades progress for permanent multipliers.

The entire game is a static export — deployed to Cloudflare Pages with zero server costs. PWA support means it installs as a native app on mobile with offline play.

Key Features

Crafting & Rarity System

Queue-based crafting with weighted rarity rolls (Common 58%, Uncommon 25%, Rare 12%, Epic 5%). Each rarity tier applies stat multipliers to base recipes. Items have durability, levels, and equipment slots — creating a gear treadmill that drives expedition strategy.

Turn-Based Combat Engine

Deterministic combat resolution with speed-based turn ordering, active and passive hero skills with cooldowns, party-wide buff auras, and defense-penetration mechanics. Combat logs are replayable turn-by-turn so players can analyze outcomes and optimize team composition.

Progression & Prestige

Multi-axis progression: player level unlocks recipes and regions, hero levels unlock skill evolution tiers, village buildings provide permanent bonuses, and prestige resets trade progress for stars that buy permanent multipliers like boosted generators and starting bonuses.

Seasonal Events & Daily Quests

Weekly rotating seasons (Harvest Festival, Iron Age, Golden Market) each boost a resource by 50%, unlock exclusive recipes, and offer XP-gated reward tracks. Daily quests provide short-term goals that layer on top of the longer progression arcs.

Technical Deep Dive

Results & Learnings

Forge & Field validated that a rich idle RPG can run entirely client-side as a static PWA — no server, no database, no recurring costs. The single-reducer architecture kept complexity manageable across 60+ action types and made save migration straightforward.

  • A pure-function game reducer is the right abstraction for idle games — deterministic state transitions make offline calculation, save/load, and debugging trivial
  • Weighted rarity systems need careful tuning — early versions had Epic drops too rare to feel achievable, leading to a rebalance that made progression feel rewarding without trivializing gear upgrades
  • PWA installation and offline support turned a web game into something that feels native on mobile — the viewport and safe-area handling for iOS required multiple iterations to get right

Links