DOOM-lite raycaster in your terminal. Pure Phel (Lisp on PHP). 256-color ANSI, 10 procgen levels, FPS combat, ~5ms frame. Full feature list: docs/features.md.
Needs PHP >= 8.4 and a 256-color terminal.
Fastest: grab the single-file PHAR from the latest release (no clone, no Composer):
curl -fsSL -o phel-doom.phar https://github.com/Chemaclass/phel-doom/releases/latest/download/phel-doom.phar
php phel-doom.pharBuild from source (needs Composer, or Docker)
git clone git@github.com:Chemaclass/phel-doom.git
cd phel-doom
make install
make playOr composer install && composer play.
PHP 8.5 CLI + Composer + deps in an image; docker is the only prerequisite.
make docker-build # build image
make docker-play # launch game (raw TTY)
make docker-test # run test suite
make docker-shell # bash inside container
make docker-clean # remove imageOverride tag: DOCKER_IMG=mytag make docker-build. Host PHP is the inner loop; Docker adds ~1s startup.
| Key | Action |
|---|---|
w a s d |
Move / strafe |
← → / ↑ ↓ |
Turn / look up, down |
| mouse | Look + turn, left-click to fire (on by default) |
SHIFT |
Sprint |
space / r |
Fire / reload |
1...8 |
Switch weapon |
p / q |
Pause / quit |
Walk into doors to advance. Find weapons and pickups on the map.
Full controls, pickups, and weapons: docs/gameplay.md.
- docs/README.md - per-subsystem guide.
- docs/contributing.md - dev setup, test conventions, Phel gotchas.
MIT
