Skip to content
💿 PS11996Naughty DogHARD

Crash Bandicoot rebuild deck

HARD

The capsule controller and the vertex-snapping PS1 shader are one prompt each, and then the job is thirty corridors where the camera angle is the difficulty, tuned jump by jump until a blind landing is fair.

You will get the loop working. Then the real work starts.

The controller and the PS1 shader are genuinely one prompt each, and the vertex-snapping look is a five-line shader that instantly sells the whole thing. The KINDA is level design, as always with platformers — Naughty Dog spent two years on thirty corridors, and you will have three.

Difficulty
HARD · 3 of 5
First playable
A project
The original
15 team-years
Released
1996 · PS1
Genre
Platformer
The one-shot build prompt
Build a 3D corridor platformer in the Crash Bandicoot mould. three.js, third-person, on-rails camera.

Requirements:
- Character controller as a capsule with custom kinematics, NOT a physics rigid body: gravity, a jump with variable height by button hold, coyote time of 100ms, jump buffering of 120ms, and air control at 70% of ground acceleration. These four forgiveness values are the difference between a good platformer and an infuriating one.
- Spin attack on a cooldown with a hitbox arc, knocking crates and enemies away.
- Crates as a data-driven system: normal, TNT with a 3-second fuse, nitro that detonates on touch, checkpoint, bounce, and a random-item crate. Crate layouts are JSON level data.
- Camera: fixed behind the player in corridor sections, swinging to a side-on view in 2.5D sections, and pulling back in arena sections. Drive this from trigger volumes placed in the level data — no free-look camera.
- Level structure: a linear corridor with branching side paths, gem gates, and a death-plane. Checkpoints restore crate state correctly.
- Enemies: a patroller, a charger that telegraphs before lunging, and a hazard that cycles on a timer.
- The PS1 look, deliberately: vertex-snapping in the vertex shader (quantise clip-space position to a low-resolution grid), affine texture mapping so textures warp, no z-buffer dithering, 15-bit colour, and fog to hide the draw distance.

Definition of done: I clear a jump I should have missed because of coyote time, and the textures wobble like it is 1996.
What you lose
  • Thirty levels of hand-built platforming, which is the product
  • Character art, animation and the licensed personality
  • The original streaming trick that let a PS1 hold levels it had no memory for
  • Camera work tuned per corridor by hand
What to steal

Camera behaviour authored as level data

The moment camera logic lives inside the character controller it grows conditionals forever and nobody can change a shot without touching movement code. Move framing into the level data and the camera becomes something you tune in seconds instead of rebuild in hours, which is why every game with memorable framing does it this way.

ScopeA weekend— build just this, not the game

Build a camera zone system as a single self-contained HTML file. Canvas 2D, no build step, no dependencies.

- A side-on level of platforms with a controllable character. The movement can be crude. The camera is the subject.
- All camera behaviour comes from zone rectangles in a JSON level block and none of it from the character controller. Each zone names a mode plus parameters: follow with a dead zone, lock one axis, lock to a fixed frame, or pull back to a wider zoom.
- Entering a zone blends from the current camera state to the new one over a per-zone duration with an ease-in-out curve. Overlapping zones resolve by a priority field, also in the data.
- No free look and no player camera control at any point.
- Debug view: draw every zone boundary, name the active zone, show target versus actual camera position, and let me drag zone edges live, printing the updated JSON.

Definition of done: walking a corridor into an open area pulls the camera back on its own, and dragging that zone edge 100 pixels left makes it happen 100 pixels earlier with no code change.
Make it different

Not a clone — Crash Bandicoot 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.

Gaslight Flatland

Crash Bandicoot, but 2D instead of 3D, set in Victorian gothic. Rendered in flat vector minimalism.

ThemeVictorian gothic
Angle2D instead of 3D
Lookflat vector minimalism
Build a browser game called "Gaslight Flatland".

The pitch in one line: a platformer in the spirit of Crash Bandicoot, but 2D instead of 3D, set in Victorian gothic.

WHAT THIS IS
Take the SHAPE of Crash Bandicoot — 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
2D instead of 3D. Canvas 2D and sprites. The mechanics survive the dimension drop; the asset budget falls by an order of magnitude.
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
Victorian gothic. Fog, gaslight and etiquette. Social rules that constrain movement as hard as walls do.
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
Flat vector minimalism. Pure geometry, no textures, three colours plus white. All feedback carried by motion and scale rather than detail.

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 15 team-years to the counter on the homepage.

Questions

How hard is Crash Bandicoot to rebuild with an AI agent?

Yes — every game is buildable at some scope. The question is how hard, and Crash Bandicoot is HARD (3 of 5). You will get the loop working. Then the real work starts. The capsule controller and the vertex-snapping PS1 shader are one prompt each, and then the job is thirty corridors where the camera angle is the difficulty, tuned jump by jump until a blind landing is fair. Reckon on a project to something you can actually play — not to something that matches the 15 team-years Naughty Dog spent.

What makes Crash Bandicoot hard to rebuild?

The capsule controller and the vertex-snapping PS1 shader are one prompt each, and then the job is thirty corridors where the camera angle is the difficulty, tuned jump by jump until a blind landing is fair. 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 camera behaviour authored as level data — a weekend of work.

How long does it take to build a Crash Bandicoot clone?

Wrong question, and it is worth saying why. Nobody rebuilds Crash Bandicoot — the original took Naughty Dog on the order of 15 team-years, released in 1996 on PS1. 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 Crash Bandicoot?

Thirty levels of hand-built platforming, which is the product. Character art, animation and the licensed personality. The original streaming trick that let a PS1 hold levels it had no memory for. 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.