PHPackages                             chemaclass/phel-doom - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. chemaclass/phel-doom

ActiveProject[CLI &amp; Console](/categories/cli)

chemaclass/phel-doom
====================

DOOM-lite showcase written in Phel Lang. Terminal raycaster, pure functional state, ANSI render.

v0.16.0(3w ago)1001[6 issues](https://github.com/Chemaclass/phel-doom/issues)MITShellPHP &gt;=8.4CI passing

Since May 22Pushed 3w agoCompare

[ Source](https://github.com/Chemaclass/phel-doom)[ Packagist](https://packagist.org/packages/chemaclass/phel-doom)[ Docs](https://github.com/Chemaclass/phel-doom)[ Fund](https://chemaclass.com/sponsor)[ RSS](/packages/chemaclass-phel-doom/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (10)Dependencies (9)Versions (42)Used By (0)

phel-doom
=========

[](#phel-doom)

[![phel-doom gameplay (YouTube)](https://camo.githubusercontent.com/d5cd3a5f53f46610393cbbcf739976fc73776f93032e79a575142fbe9b026665/68747470733a2f2f696d672e796f75747562652e636f6d2f76692f30732d73587870636f49412f6d617872657364656661756c742e6a7067)](https://www.youtube.com/watch?v=0s-sXxpcoIA)

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

Play
----

[](#play)

Needs PHP &gt;= 8.4 and a 256-color terminal.

Fastest: grab the single-file PHAR from the [latest release](https://github.com/Chemaclass/phel-doom/releases/latest) (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

[](#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
--------

[](#controls)

KeyAction`w` `a` `s` `d`Move / strafe`←` `→` / `↑` `↓`Turn / look up, downmouseLook + turn, left-click to fire (on by default)`SHIFT`Sprint`space` / `r`Fire / reload`1`...`8`Switch weapon`p` / `q`Pause / quitWalk into doors to advance. Find weapons and pickups on the map.

Full controls, pickups, and weapons: [docs/gameplay.md](docs/gameplay.md).

Internals
---------

[](#internals)

- [docs/README.md](docs/README.md) - per-subsystem guide.
- [docs/coming-from-clojure-or-php.md](docs/coming-from-clojure-or-php.md) - read Phel fast if you know Clojure or PHP.
- [docs/contributing.md](docs/contributing.md) - dev setup, test conventions, Phel gotchas.

License
-------

[](#license)

MIT

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance83

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 99.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

17

Last Release

27d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3d166420c6770c5941e10bd68b2d26501eabb432e280d8e6eba0a344bcc1e5ae?d=identicon)[Chemaclass](/maintainers/Chemaclass)

---

Top Contributors

[![Chemaclass](https://avatars.githubusercontent.com/u/5256287?v=4)](https://github.com/Chemaclass "Chemaclass (583 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (2 commits)")[![SauronBot](https://avatars.githubusercontent.com/u/82400622?v=4)](https://github.com/SauronBot "SauronBot (1 commits)")

---

Tags

ansiascii-artclidoomfpsfps-gamegamelisplisp-gamephelphel-appphel-langphpprocedural-generationraycasterretroterminal-gameterminal-renderingfunctionalgamelisppheldoomraycaster

### Embed Badge

![Health badge](/badges/chemaclass-phel-doom/health.svg)

```
[![Health](https://phpackages.com/badges/chemaclass-phel-doom/health.svg)](https://phpackages.com/packages/chemaclass-phel-doom)
```

###  Alternatives

[phel-lang/phel-lang

Phel is a functional programming language that compiles to PHP

5186.0k19](/packages/phel-lang-phel-lang)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
