Solo Lobby

Solo Lobby

Lobby — Game Preview

Detail view after clicking a game icon, showing the game sheet and Play now.

DOOM: Knee-Deep in the Dead

Episode 1 — The Original

DOOM Engine
Screenshot of DOOM: Knee-Deep in the Dead
About

The original shareware episode of DOOM (1993) — "Knee-Deep in the Dead" — the game that launched the FPS genre into the mainstream. Nine levels of demon-infested corridors on the Martian moon Phobos, where a UAC teleportation experiment has gone horribly wrong.

As a lone space marine, fight your way through military bases overrun by hellspawn using an arsenal that includes the iconic shotgun, chaingun, and rocket launcher. The level design by John Romero and Sandy Petersen remains a masterclass in non-linear FPS map design.

This is the freely distributable shareware release — Episode 1 of the original DOOM, exactly as id Software released it in December 1993. It runs on the PrBoom+ engine compiled to WebAssembly.

Keyboard Controls
Key Action
W / ↑ Move forward
S / ↓ Move backward
A Strafe left
D Strafe right
Mouse Aim / turn
Left Click Fire weapon
E Use / open doors
Space Jump (PrBoom+)
1–7 Select weapon
Tab Toggle automap
Shift Run (hold)
Esc Menu
Tips
  • Hold Shift to run — movement speed doubles, essential for dodging projectiles.
  • Use F6 for quicksave and F9 for quickload — save often, especially before new areas.
  • Secrets are everywhere — look for misaligned wall textures and listen for hidden doors.
  • The chainsaw is devastating against Pinkies (Demons) — it stunlocks them completely.
  • Strafe-running (forward + strafe simultaneously) makes you move ~40% faster than running straight.

      <.solo_lobby
      id="lobby-preview"
      groups={@groups}
      session_status="lobby"
      previewed_game={@previewed_game}
      on_select_game="arcade_select_game"
      on_back="arcade_back"
      on_close="arcade_leave"
      />
    
Playing State

Active game session with timer and end session button.

DOOM

Game in progress

Started 14:30:00

The game runs in a tab of its own, with its own address. Closing that tab does not end the session — End Session does, and so does leaving it alone for a while.
Open the game tab

      <.solo_lobby
      id="lobby-playing"
      groups={@groups}
      session_status="playing"
      game_name="DOOM"
      game_id="doom_shareware"
      game_started_at="2026-02-27T14:30:00Z"
      />
    
Finished State

Session complete with play time summary.

DOOM

Session complete
Play time: 30m 47s

      <.solo_lobby
      id="lobby-finished"
      session_status="finished"
      game_name="DOOM"
      game_id="doom_shareware"
      game_duration={1847}
      />
    
Help
Help Topics GitHub License (MIT)
6 objects
Help Topics
GitHub License (MIT)