Papers, Please rebuild deck
HARD
Rules as data and the overlapping-document desk are both closed problems, and then the game is thirty-one days of rule escalation ramped so the morning you knowingly wave someone through actually lands.
You will get the loop working. Then the real work starts.
Making the rulebook data rather than code is the whole difference between a demo and something you can keep extending on the train. Agents will happily bury "check the passport expiry" inside the draw call, and then day twelve arrives and you are rewriting the game. Spend your review time on the desk: overlapping draggable documents in a space that is deliberately too cramped is most of the tension, and the z-order handling is fiddly enough that no model gets it right first go.
- Difficulty
- HARD · 3 of 5
- First playable
- A weekend
- The original
- 1 team-years
- Released
- 2013 · PC
- Genre
- Inspection Sim
Build a document-inspection game in which a border official checks travellers' papers against a rulebook that changes daily. Single self-contained HTML file, Canvas 2D, no build step.
Requirements:
- Rules are data, never code. Each rule is {id, activeFromDay, predicate over the presented documents, citationText}. The engine must enumerate every violation on the desk at any moment, and may only cite rules active today. If any check ends up hard-coded inside the render loop, the design is wrong.
- Cross-document comparison is the core: name, date of birth, document number, expiry against the current in-game date, issuing city against an allowed list, plus photo, sex and height mismatches.
- Travellers are generated from JSON templates, with a controlled probability of injecting exactly one discrepancy and a lower chance of two.
- The desk is deliberately too small. Documents drag, overlap, and have to be shuffled to be read. Only a fresh mousedown promotes a document to the front; a drag must not reorder anything, or papers shuffle themselves as you move them. A stamp panel slides in over the top and covers things.
- Day timer, entrant quota, and an end-of-day ledger where wages go to rent, heat and food. Two warnings before a fine.
- Days, rules and traveller pools all in JSON, so a day is authored rather than coded.
Definition of done: on the day a new rule activates, a traveller whose papers were valid yesterday is a correct denial, and the citation slip quotes that exact rule back at them.- The grubby Soviet-adjacent art direction and that specific unpleasant pixel font
- The writing: the smuggler, your wife's medicine, twenty endings, the night the quota does not cover the heating
- The anthem, which does more emotional work in eight seconds than any mechanic in the game
Build it correct, then break it once
Generate flaws by chance and you never know how hard any given case was; generate a correct thing and then break it deliberately and difficulty becomes a table you can edit, with per-flaw accuracy you can actually measure. Every spot-the-difference problem should be built this way round.
ScopeAn evening— build just this, not the game
Build a discrepancy-spotting toy. Single self-contained HTML file, DOM or Canvas 2D, no build step. - Generate a dossier of three related documents — an identity card, a permit, a stamped slip — sharing a name, a reference number, a date of birth, an issuing city and an expiry date. Field values come from JSON word lists. - The generator's rule: always build a fully consistent dossier first, then apply exactly N mutations drawn from a named mutation table. Transpose two digits, shift a date by one month, swap a city for a neighbouring one, change a single letter of a surname, push an expiry date behind the current in-game date. Record which mutation was applied to which field. Never produce a flaw by accident. - The player clicks the field they believe is wrong, or presses a key for CLEAN. Score against the recorded mutation, never against a re-derived check. - N ramps from 0 to 2 over twenty dossiers. Log accuracy per mutation type. Definition of done: the end screen tells me I catch transposed digits 90% of the time and month shifts 40%, and the mutation table alone controls the difficulty.
Not a clone — Papers, Please 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.
Fathomless Overhead
Papers, Please, but top-down instead of first-person, set in cosmic horror. Rendered in PS1 low-poly with texture warping.
Build a browser game called "Fathomless Overhead". The pitch in one line: a inspection sim in the spirit of Papers, Please, but top-down instead of first-person, set in cosmic horror. WHAT THIS IS Take the SHAPE of Papers, Please — 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 Top-down instead of first-person. A fixed overhead camera. You lose immersion and gain readability, a far cheaper art pipeline, and collision you can actually debug. 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 Cosmic horror. The threat should be mostly absent. Information the player uncovers should make things worse rather than better. 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 PS1 low-poly with texture warping. Vertex-snap positions to a low-resolution grid in the vertex shader, use affine texture mapping so textures swim, dither to 15-bit colour, and fog the draw distance. 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.
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.
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 1 team-years to the counter on the homepage.
Then try these
Questions
How hard is Papers, Please to rebuild with an AI agent?
Yes — every game is buildable at some scope. The question is how hard, and Papers, Please is HARD (3 of 5). You will get the loop working. Then the real work starts. Rules as data and the overlapping-document desk are both closed problems, and then the game is thirty-one days of rule escalation ramped so the morning you knowingly wave someone through actually lands. Reckon on a weekend to something you can actually play — not to something that matches the 1 team-years Lucas Pope (3909 LLC) spent.
What makes Papers, Please hard to rebuild?
Rules as data and the overlapping-document desk are both closed problems, and then the game is thirty-one days of rule escalation ramped so the morning you knowingly wave someone through actually lands. That is why it sits at HARD rather than a tier either side of it. If you want the idea without the project, the transferable part is build it correct, then break it once — an evening of work.
How long does it take to build a Papers, Please clone?
Wrong question, and it is worth saying why. Nobody rebuilds Papers, Please — the original took Lucas Pope (3909 LLC) on the order of 1 team-years, released in 2013 on PC. What you can do is reach something playable and genuinely yours in about a weekend, 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 Papers, Please?
The grubby Soviet-adjacent art direction and that specific unpleasant pixel font. The writing: the smuggler, your wife's medicine, twenty endings, the night the quota does not cover the heating. The anthem, which does more emotional work in eight seconds than any mechanic in the game. 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.
One email when new games go on the list. No other reason to email you, ever.