Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Play classic DOOM in pure Go! Single binary with embedded game data, cross-platform, zero dependencies.

License

Notifications You must be signed in to change notification settings

danielgatis/go-doom

Repository files navigation

Go - Doom

Go Report Card License MIT Go Doc

Play classic DOOM in pure Go! Single binary with embedded game data, cross-platform, zero dependencies.

doom1.mp4

Features

  • All-in-one binary with embedded WADs, WASM engine and SoundFont
  • Runs DOOM WASM module using wazero (no CGO)
  • Graphics rendering with Ebitengine
  • Sound effects and MIDI music via go-soundfont
  • Cross-platform: Windows, macOS, Linux

Installation

go install github.com/danielgatis/go-doom@latest

Or download pre-built binaries from the Releases page.

Usage

doom [game] [flags]

Games

Game Description
doom1 Doom Shareware (default)
doom Doom Registered
doomu Ultimate Doom
doom2 Doom II: Hell on Earth
plutonia Final Doom: The Plutonia Experiment
tnt Final Doom: TNT Evilution

Examples

doom                              # Play Doom Shareware
doom doom2                        # Play Doom II
doom -s 2                         # Play with 2x scale
doom doom2 -s 3                   # Play Doom II with 3x scale
doom -w ~/wads/mywad.wad          # Play custom WAD file
doom -f ~/soundfonts/gm.sf2       # Use custom SoundFont

Flags

Flag Description
-w, --wad Path to custom WAD file
-f, --soundfont Path to custom SoundFont file
-s, --scale Window scale factor (default: 1)
-v, --verbose Show DOOM log output
-V, --version Show version
-h, --help Show help

Controls

Key Action
Arrow keys Move
Ctrl / Z Fire
Space / X Use (open doors, activate)
Shift Run
Alt Strafe
1-7 Select weapon
Escape Menu
Enter Confirm
Tab Automap
+/- Zoom automap
F1 Help
F2 Save game
F3 Load game
F4 Sound volume
F5 Detail level
F6 Quicksave
F9 Quickload
F10 Quit
F11 Gamma correction
Pause Pause game

Building from Source

git clone https://github.com/danielgatis/go-doom.git
cd go-doom

# Build all game variants
make all

# Or build a specific game
make doom1      # Doom Shareware (18MB)
make doom2      # Doom II (28MB)

# Build default (doom1)
make build

Available Binaries

Binary Game Size
doom1 Doom Shareware ~18MB
doom Doom Registered ~24MB
doomu Ultimate Doom ~26MB
doom2 Doom II ~28MB
plutonia Plutonia Experiment ~30MB
tnt TNT Evilution ~31MB

Binaries are placed in the bin/ directory.

Buy me a coffee

If you find this project useful, consider buying me a coffee!

Buy Me A Coffee

License

MIT License - see LICENSE file.

Author

Daniel Gatis

About

Play classic DOOM in pure Go! Single binary with embedded game data, cross-platform, zero dependencies.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published