Skip to content
🖥️ PC2020Wube SoftwareBRUTAL

Factorio rebuild deck

BRUTAL

None of the hard part is game design — the whole thing exists so 100,000 entities can update at 60 ticks a second and still feel instant, which is data-oriented performance engineering with a literature.

The hard part is not game design at all.

You can absolutely prompt your way to a working belt-and-inserter prototype, and it is a fantastic weekend. It is a NOT REALLY because Factorio is a performance engineering project that happens to be a game — the entire design exists to make a 100k-entity simulation feel instant, and one prompt does not get you there. Build it to learn ECS and data-oriented design.

Difficulty
BRUTAL · 5 of 5
First playable
A project
The original
40 team-years
Released
2020 · PC
Genre
Automation
The one-shot build prompt
Build a factory automation prototype in the Factorio mould. Top-down grid, Canvas 2D, vanilla JS or TypeScript.

Requirements:
- Grid world with resource patches (iron, copper, coal, stone) generated by noise.
- Entities: miner, belt, inserter, furnace, assembler, chest, power pole, steam engine. Every entity is data in an array-of-structs, updated by system functions — an entity-component layout, not objects with an update() method. Performance is the design.
- Belts are the hard part and must be done properly: model each belt as a compressed lane of items with positions, moving items forward as a group rather than simulating each item individually. Side-loading, merging, and belt corners all need to work. Build and stress-test this before anything else.
- Inserters swing on a timer, taking from a belt/chest/machine and placing into another, respecting stack limits and blocking when the target is full.
- Recipes as a JSON graph: inputs, output, craft time. Assemblers pull inputs, consume power, and output on a timer. Furnaces smelt ore with coal.
- Power network: generators and consumers on a connected graph, with brownouts slowing every machine proportionally when demand exceeds supply. This must be visible and annoying.
- Build UI: hotbar, ghost placement preview with rotation, drag-to-place belt runs that auto-corner, and a delete tool.
- An alert when a machine is idle for lack of input, because debugging your own factory is the game.

Definition of done: iron ore is mined, belted, smelted, and assembled into gears with no clicks from me, and 5000 belt items run at 60fps.
What you lose
  • A simulation that runs 100,000 entities at 60 updates per second — this is the entire achievement
  • A tech tree and recipe graph balanced across hundreds of hours
  • Multiplayer with deterministic lockstep across enormous factories
  • Biters, pollution feedback, and the pressure that gives the building meaning
What to steal

Proportional brownout across a shared supply network

When demand outruns supply, slowing everything by the same ratio beats switching machines off: the player sees a factory that is uniformly sluggish rather than a mystery about which node died, and the diagnosis is in the symptom. It works just as well for water, staff, bandwidth or mana.

ScopeA weekend— build just this, not the game

Build a shared-supply network toy. Single self-contained HTML file, Canvas 2D, grid-based, no dependencies.

- Three node types placed on a grid: producers with a fixed output rate, consumers with a demand rate and a work timer, and poles connecting anything within a radius. Connectivity resolves with union-find into independent networks.
- Each tick, per network: satisfaction equals supply divided by demand, capped at one. Every consumer advances its work timer by dt times satisfaction. No consumer is ever switched off, and none is prioritised over another.
- Consumers show it: a duller tint and a visibly slower animation as satisfaction falls.
- A buffer node that charges from surplus and discharges into deficit, which is the whole argument for building storage.
- Per-network readout: supply, demand, satisfaction, and a 60-second rolling graph.

Definition of done: adding one consumer to a saturated network slows every machine on that network by the same proportion, and the graph shows both the dip and the recovery when I add a producer.
Make it different

Not a clone — Factorio re-themed and cut down to something you can finish. The angle is the important reel: it is what turns a project into a weekend. 5,880 ways to land.

Jianghu Play By Mail

Factorio, but asynchronous multiplayer — no live server, set in a wuxia martial world. Rendered in risograph two-colour print.

Themea wuxia martial world
Angleasynchronous multiplayer — no live server
Lookrisograph two-colour print
Build a browser game called "Jianghu Play By Mail".

The pitch in one line: a automation in the spirit of Factorio, but asynchronous multiplayer — no live server, set in a wuxia martial world.

WHAT THIS IS
Take the SHAPE of Factorio — its core loop, and whatever makes that loop good — and rebuild it as your own game in a different world at a smaller scope. Use your own names, art and audio, which you want anyway: a reskin of somebody else's game is less interesting than a new one that works the same way.

THE ANGLE — this is the important constraint, honour it above everything else
Asynchronous multiplayer — no live server. Players take turns hours apart against stored state. You get real multiplayer with none of the real-time netcode.
This is what makes the project finishable. If a decision would push the scope back towards the original's, take the smaller option every time.

THE THEME
A wuxia martial world. Movement is the fantasy — rooftops, bamboo and impossible leaps — and honour is a mechanic with teeth.
The theme is not a coat of paint. Let it change what the mechanics mean — a reload, a health pack and a locked door should all be things that make sense in this world and nowhere else.

LOOK
Risograph two-colour print. Two spot inks with visible misregistration, halftone dot shading, and paper texture showing through every fill.

REQUIREMENTS
- Runs in a browser with no build step. Canvas 2D unless the angle genuinely requires 3D, in which case three.js.
- Fixed-timestep update loop with interpolated rendering, so it behaves the same at 60Hz and 144Hz.
- Every tuning constant in one CONFIG object at the top, exposed as live sliders in a debug panel. You will find the feel by dragging those, not by prompting.
- All content — levels, entities, balance numbers — in JSON or plain data files, never inline in the logic.
- Audio generated with the Web Audio API rather than asset files.
- Respect prefers-reduced-motion: keep the fades, drop the shake and the parallax.

BUILD ORDER
1. The core loop with placeholder rectangles, at the reduced scope the angle demands. No theme, no art, no audio. Make it fun as rectangles first.
2. The angle's consequences. Cutting to bots, or to turn-based, or to one level changes the design rather than just shrinking it — find out how and rewrite step 1.
3. The theme, as content and data.
4. The look, applied last as a rendering layer over a game that already works.

Start by writing a one-page plan: the core loop, what the angle removes and what that frees you to do properly, and what you are deliberately leaving out. Wait for me to approve it before writing code.
Prior art — read before you build

Half the time one of these already does what you wanted, and the other half it saves you a week of solving a problem someone documented in 1997.

Did you build it?
0Share on X

One count per game. No account — it is tied to a salted hash of your IP, which is not stored in a form anyone can reverse. Every build adds 40 team-years to the counter on the homepage.

Questions

How hard is Factorio to rebuild with an AI agent?

Yes — every game is buildable at some scope. The question is how hard, and Factorio is BRUTAL (5 of 5). The hard part is not game design at all. None of the hard part is game design — the whole thing exists so 100,000 entities can update at 60 ticks a second and still feel instant, which is data-oriented performance engineering with a literature. Reckon on a project to something you can actually play — not to something that matches the 40 team-years Wube Software spent.

What makes Factorio hard to rebuild?

None of the hard part is game design — the whole thing exists so 100,000 entities can update at 60 ticks a second and still feel instant, which is data-oriented performance engineering with a literature. That is why it sits at BRUTAL rather than a tier either side of it. If you want the idea without the project, the transferable part is proportional brownout across a shared supply network — a weekend of work.

How long does it take to build a Factorio clone?

Wrong question, and it is worth saying why. Nobody rebuilds Factorio — the original took Wube Software on the order of 40 team-years, released in 2020 on PC. What you can do is reach something playable and genuinely yours in about a project, and then keep going for as long as it stays interesting. Any figure that claims otherwise is measuring a prototype and calling it a game.

What do I lose by building my own Factorio?

A simulation that runs 100,000 entities at 60 updates per second — this is the entire achievement. A tech tree and recipe graph balanced across hundreds of hours. Multiplayer with deterministic lockstep across enormous factories. Those are the parts a prompt will not hand you.

Which AI coding agent should I use to build it?

Any of Claude Code, Codex or Cursor will handle this prompt. Paste it as your first message, let the agent scaffold the project, then iterate on feel — the second, third and tenth prompts are where a game actually gets good. Work in an empty folder or a fresh git branch so you can throw it away cheaply.

Get the next game

One email when new games go on the list. No other reason to email you, ever.