Cloned Games

cssDOOM

SporadicSemi-playableWeb

Based on Doom

cssDOOM screenshotLinks, repository & details

About

Doom is id Software's 1993 first-person shooter. cssDOOM is a recreation of Doom whose 3D rendering — every wall, floor, sprite, and effect — is built from styled DOM elements positioned in 3D space with CSS transforms, rather than <canvas> or WebGL. The game loop and logic are written in JavaScript, using id Software's open-source Doom release as a reference; the renderer reads wall geometry (linedefs, sidedefs, sectors) straight out of the WAD file and uses CSS trigonometry functions to compute transforms. It supports mouse, keyboard, touch, and gamepad input.

How it differs from the original

The rendering pipeline is CSS-only (DOM elements plus CSS 3D transforms, clip-path, and animations) rather than canvas- or WebGL-based. Sky occlusion, which the original engine handled with a 2D rendering hack, can't be reproduced identically in this true 3D scene and is instead approximated through element culling.

Getting started

Playable directly in the browser at the project's live site. Mouse-look uses the Pointer Lock API, activated automatically when entering fullscreen via the on-screen icon (not F11); keyboard arrow keys and a gamepad's right stick turn at a constant rate, touch supports a drag gesture on the right half of the screen, and left click or the gamepad's right trigger fires the weapon.

Known issues & limitations

  • compatibility: View Transitions cannot be used with CSS 3D scenes in Safari; the 3D scene flattens to 2D during transitions.
  • compatibility: On Chromium-based browsers, textures can disappear during gameplay under certain circumstances.
  • compatibility: Background images cannot use CSS custom properties without causing severe compositor issues.
  • compatibility: On Safari, @starting-style transitions re-trigger continuously on 3D-positioned elements.
  • Large maps can crash Safari on iOS, and Chromium-based browsers (Chrome, Edge) can experience textures randomly disappearing mid-game — an unresolved compositor issue not seen in Safari or Firefox.
  • Safari can't combine View Transitions with the CSS 3D scene: it flattens the 3D perspective during a transition, making the game briefly appear flat.
Requires original assets. Requires DOOM WAD files (linedefs, sidedefs, sectors) to construct the playable levels.
Share:

More like cssDOOM

Halted
Doom screenshot
id Software's original 1997 DOOM source code, released under GPL v2, powering the classic demon-hunting FPS on the UAC's Mars facility.
Platforms:LinuxDOS
Stars19,552
Updated2 years ago
LicenseGPL-2.0
Release2012
Active
Original game (original game, not this project)Original game image
GZDoom is a modder-friendly source port of the Doom engine covering Doom, Heretic, and Hexen, with OpenGL and Vulkan rendering support.
Platforms:WindowsLinux
Stars3,102
Updated2 months ago
LicenseGPL-3.0
Release2013
Active
Chocolate Doom screenshot
A source port that reproduces the original DOS Doom, Heretic, Hexen, and Strife with their original bugs intact on modern systems.
Platforms:WindowsLinuxOSX
Stars2,416
Updated2 months ago
LicenseGPL-2.0
Release2009
Active
Original game (original game, not this project)Original game image
A modern GPLv3 source port continuing the ZDoom/GZDoom lineage for Doom, Heretic, and Hexen.
Platforms:WindowsLinuxOSX
Stars2,218
Updated1 month ago
LicenseUnknown
Release2025
Active
Freedoom screenshot
A free replacement for Doom's levels, art, sounds, and music, requiring a separate Doom source port to actually run it.
Platforms:None
Stars1,343
Updated4 months ago
LicenseUnknown
Release2012
Halted
Original game (original game, not this project)Original game image
Platforms:SNES
Stars1,248
Updated4 years ago
LicenseGPL-3.0
Release2020