Shooter

Doom

A minimal Doom WebAssembly runtime with a playable browser example.

A first-person plasma weapon fires across a courtyard in Doom. Original-game reference.PlayDemo or your game files
Original-game image
Credits

Doom publisher gameplay reference from the current DOOM + DOOM II gallery; not a capture of the linked port.

DOOM + DOOM II game imagery remains copyright its respective rights holders. Publisher-supplied screenshot from the linked official Steam store gallery.

Source & attribution ↗View image ↗

About this version

Jacob Enget’s runtime focuses on a small host interface and provides a separate browser demonstration. This is an engine experiment with its own limitations, not a claim of a modern full-featured Doom client.

Project
doom.wasm
Original game
Doom
Choose a version

Compare your options

Doom

Classic WAD play, shared browser sessions and Doom 3 have different engines and file requirements.

Read Doom guide
Browse all version comparisons →

The original Doom in a minimal browser shell

The 1993 Doom casts you as a marine fighting a demonic invasion. Its appeal is immediate first-person combat: choosing weapons, reading the space around enemies and pushing through to the next area. This project approaches that original game as a compact runnable engine, rather than as the enhanced commercial Doom + Doom II package.

Bethesda · original Doom descriptiondoom.wasm · runtime and browser example documentation

Why this Doom port is different

Jacob Enget designed doom.wasm around a small interface that other programs can use. The browser page is a deliberately simple demonstration of the same module also used by native and Python examples. It defaults to shareware data; its programming interface can load custom WAD data, but that is not the same as a polished drag-and-drop mod launcher.

Choose this version if you want to see a small WebAssembly implementation at work. For a longer campaign session, its missing audio is a substantial tradeoff: neither music nor sound effects are produced.

doom.wasm · runtime and browser example documentation

Use the classic keyboard layout

The example follows vanilla Doom controls. Arrows move and turn, Ctrl fires, Space operates doors and switches, and comma or period steps sideways. Learn the strafe keys early so that moving out of the way does not require turning away from a target.

A brief apparent freeze during a screen transition can be the original melting animation completing without intermediate browser frames. That documented limitation is separate from a failed game load. Retail content requires your own WAD data; the shareware default is not the complete paid game.

doom.wasm · runtime and browser example documentation

Before you play

Do I need the original game files?

The runtime defaults to Doom shareware and can accept custom WAD data; use your own files for retail content.

Creator-reported · Project guide
How do I get started?

Open the browser example and use the classic keyboard controls.

Creator-reported · Project guide
What are the controls?

The example uses vanilla Doom keyboard controls: arrows move/turn, Ctrl fires, Space uses doors and switches, and comma/period strafe.

Creator-reported · Project guide
What should I know before playing?

This runtime currently produces no music or sound effects. Screen transitions can appear frozen while the original melt effect completes.

Creator-reported · Project guide
Project & original game credits
    Original project

    Keep exploring

    Doom

    Open original
    A first-person plasma weapon fires across a courtyard in Doom. Original-game reference.

    Doom publisher gameplay reference from the current DOOM + DOOM II gallery; not a capture of the linked port. DOOM + DOOM II game imagery remains copyright its respective rights holders. Publisher-supplied screenshot from the linked official Steam store gallery. Source · Editorial-use framework