doomcr

play doom in the terminal using the termisu lib

doomcr

Run doomgeneric in a terminal using termisu (Crystal).

Docker (recommended)

# Build image
docker build -t doomcr:latest .

# Run with shareware DOOM1.WAD (default source)
docker run --rm -it doomcr:latest

# Run with Freedoom instead
docker run --rm -it -e DOOM_WAD_SOURCE=freedoom doomcr:latest

Persist downloaded WAD files between runs:

docker run --rm -it -v "$(pwd)/wads:/data/wads" doomcr:latest

Use your own IWAD directly:

docker run --rm -it -v "/absolute/path/to:/iwads:ro" doomcr:latest -iwad /iwads/doom1.wad

Supported runtime flags:

  • DOOM_WAD_SOURCE=shareware|freedoom (default: shareware)
  • DOOM_SHAREWARE_URL=<url> to override the shareware download URL
  • DOOM_WAD=/path/in/container/file.wad to bypass auto-download

Development

# Run tests
crystal spec

# Run task runner workflow (format + lint + spec)
bin/hace all

# Optional wrappers for docker commands
bin/hace docker:build
bin/hace docker:run
bin/hace docker:run:freedoom

Basic controls in this terminal port:

  • Arrow keys: movement/turn
  • space or f: fire
  • e: use/open
  • esc: menu
  • Ctrl+Q: quit wrapper

Contributing

  1. Fork it (https://github.com/omarluq/doomcr/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

License Note

doomgeneric is GPL-2.0 licensed upstream. If you distribute builds containing it, review GPL obligations.

Repository

doomcr

Owner
Statistic
  • 1
  • 0
  • 0
  • 0
  • 3
  • about 16 hours ago
  • February 28, 2026
License

MIT License

Links
Synced at

Sat, 28 Feb 2026 08:29:42 GMT

Languages