Doom rebuild deck
HARD
Raycasting is among the best-documented algorithms in games and lands in a weekend, after which the entire remaining project is becoming a level designer good enough to deserve twenty-seven maps.
You will get the loop working. Then the real work starts.
The renderer is genuinely one prompt — raycasting is one of the best-documented algorithms in games and agents write it cleanly. The KINDA is because Doom is not a renderer, it is 27 maps by John Romero, and no prompt produces level design. Build the engine in a weekend, then accept that you now need to become a level designer.
- Difficulty
- HARD · 3 of 5
- First playable
- A project
- The original
- 15 team-years
- Released
- 1993 · PC
- Genre
- FPS
Build a raycasting first-person shooter engine in the Doom/Wolfenstein tradition. Canvas 2D with a manually written pixel buffer, no WebGL, no engine. Requirements: - DDA raycaster over a grid map, one ray per screen column, writing into an ImageData buffer. Textured walls with perspective-correct vertical scaling, distance-based darkening, and a fisheye correction using the cosine of the ray angle relative to the camera plane. - Floor and ceiling casting per pixel row, not flat colours. - Billboarded sprites for enemies, pickups and projectiles, depth-sorted against the wall z-buffer per column so a sprite behind a pillar is correctly occluded. - Enemies with a small state machine: idle, alerted by noise or line of sight, chasing with simple pathing, attacking with a windup, staggering on hit, dying through an animation. Three types with different speed, health and attack ranges. - Weapons: pistol, shotgun with a spread pattern, chaingun with a windup. Screen-space weapon sprite with a bob synced to head bob, muzzle flash lighting the scene, and hitscan with falloff. - Map defined as a 2D array in a separate file so maps are data, not code. Doors, keycards, and a level exit. - Fixed-timestep physics at 60Hz with rendering interpolated, so movement is frame-rate independent. Definition of done: I can strafe around a corner, get shot at from behind a pillar, and the sprite occlusion is correct.
- Level design — 27 hand-built maps that are the actual product
- Sprite art, sound design, and the soundtrack, none of which a prompt hands you
- The BSP compiler and the tooling pipeline that made the levels possible
- The performance envelope: the original ran at 35fps on a 486, and yours will not
Noise that floods through the level to wake enemies
An enemy that hears your gunshot two rooms away and comes to find you does more for a level than any amount of scripting, and it costs one flood fill. It also hands the player a real decision every time they act: make noise and bring company, or don't.
ScopeA weekend— build just this, not the game
Build a sound-propagation toy for enemy awareness. Single self-contained HTML file, Canvas 2D, top-down, no dependencies. - A tile map of rooms joined by doorways, defined as JSON at the top of the file. Doors open and shut on click. - The player moves with WASD and makes noises carrying a loudness budget: footsteps small, a door slam medium, a gunshot large. - Propagation is a flood fill from the origin across walkable tiles, spending budget per tile crossed and far more per closed door, stopping when the budget is gone. It is not a radius: sound must travel round corners and must never cross a wall. - Agents standing on a reached tile switch from idle to investigating, path to the noise origin, wait a few seconds, then return to their post. - Draw the flood as a heat overlay that decays over one second. Definition of done: a shot fired beside a shut door wakes nobody behind it, and the same shot with that door open brings two agents round the corner to me.
Not a clone — Doom 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. 24,360 ways to land.
Seasonal One Run
Doom, but a roguelike run instead of a campaign, set in a farmer’s market circuit. Rendered in LEGO brick build.
Build a browser game called "Seasonal One Run". The pitch in one line: a fps in the spirit of Doom, but a roguelike run instead of a campaign, set in a farmer’s market circuit. WHAT THIS IS Take the SHAPE of Doom — 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 A roguelike run instead of a campaign. Twenty to forty minutes, procedurally assembled from hand-authored chunks, permadeath, and a meta-progression drip. Replaces authored content volume with combinatorics. 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 farmer’s market circuit. Crops, weather and regular customers. The year loops; the skill is learning the seasons. 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 LEGO brick build. Studded bricks, clutch-power joints, minifig scale proportions, and explosions that separate into pieces not polygons. 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.
- id-Software/DOOM — the original source release
- doomgeneric — the portable-to-anything Doom core
- Lode’s raycasting tutorial — the canonical explainer
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 15 team-years to the counter on the homepage.
Then try these
Questions
How hard is Doom to rebuild with an AI agent?
Yes — every game is buildable at some scope. The question is how hard, and Doom is HARD (3 of 5). You will get the loop working. Then the real work starts. Raycasting is among the best-documented algorithms in games and lands in a weekend, after which the entire remaining project is becoming a level designer good enough to deserve twenty-seven maps. Reckon on a project to something you can actually play — not to something that matches the 15 team-years id Software spent.
What makes Doom hard to rebuild?
Raycasting is among the best-documented algorithms in games and lands in a weekend, after which the entire remaining project is becoming a level designer good enough to deserve twenty-seven maps. 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 noise that floods through the level to wake enemies — a weekend of work.
How long does it take to build a Doom clone?
Wrong question, and it is worth saying why. Nobody rebuilds Doom — the original took id Software on the order of 15 team-years, released in 1993 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 Doom?
Level design — 27 hand-built maps that are the actual product. Sprite art, sound design, and the soundtrack, none of which a prompt hands you. The BSP compiler and the tooling pipeline that made the levels possible. 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.