Search by

chemaclass / phel-doom

Chemaclass

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!

chemaclass.com/sponsor

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 10

Open Issues: 0

v0.20.0 2026-09-24 10:16 UTC

README

phel-doom gameplay (YouTube)

DOOM-lite raycaster in your terminal. Pure Phel (Lisp on PHP). 256-color ANSI, 10 levels, FPS combat, ~5ms frame. Full feature list: docs/features.md.

Play

Needs PHP >= 8.5 and a 256-color terminal.

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 (Composer or Docker)
git clone git@github.com:Chemaclass/phel-doom.git
cd phel-doom
make install   # or: composer install
make play      # or: composer play

No local PHP? The Docker image bundles PHP 8.5, Composer and the deps:

make docker-build   # build image (tag: DOCKER_IMG=mytag)
make docker-play    # launch game (raw TTY)
make docker-test    # run test suite
make docker-shell   # bash inside container
make docker-clean   # remove image

Docker adds ~1s per command. Host PHP stays the faster inner loop.

Controls

w a s d move, arrows or mouse turn and look, space or left-click fire, r reload, 1-7 weapons, p pause, q quit (press twice). Walk into doors to advance.

Full key list, pickups and weapons: docs/gameplay.md.

Internals

License

MIT