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

Skip to content

danielgatis/go-doom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-doom

A pure Go DOOM engine that runs DOOM via WebAssembly with all game data embedded.

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

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published