chemaclass / phel-doom
DOOM-lite showcase written in Phel Lang. Terminal raycaster, pure functional state, ANSI render.
Package info
github.com/Chemaclass/phel-doom
Language:Shell
Type:project
pkg:composer/chemaclass/phel-doom
Fund package maintenance!
Requires
- php: >=8.4
- phel-lang/phel-lang: ^0.41
- symfony/console: ^7.4
Requires (Dev)
- symfony/var-dumper: ^7.4
- dev-main
- v0.12.0
- v0.11.0
- v0.10.0
- v0.9.0
- v0.8.0
- v0.7.0
- v0.6.0
- v0.5.0
- v0.4.1
- v0.4.0
- v0.3.0
- v0.2.0
- v0.1.0
- dev-feat/157-bump-kill-loot-drop-rate
- dev-feat/156-scale-heal-armor-pickups-by-difficulty
- dev-feat/155-scale-ammo-boxes-by-difficulty
- dev-feat/freedoom-enemies
- dev-dependabot/composer/phel-c71d045d9d
This package is auto-updated.
Last update: 2026-06-09 22:43:21 UTC
README
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.
Play
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.phar
Build from source (needs Composer, or Docker)
git clone git@github.com:Chemaclass/phel-doom.git
cd phel-doom
make install
make play
Or composer install && composer play.
No local PHP? Run in Docker
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 image
Override tag: DOCKER_IMG=mytag make docker-build. Host PHP is the inner loop; Docker adds ~1s startup.
Controls
| Key | Action |
|---|---|
w a s d / arrows |
Move / turn |
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.
Internals
- docs/README.md - per-subsystem guide.
- docs/contributing.md - dev setup, test conventions, Phel gotchas.
License
MIT