Analysis updated 2026-05-18
Play a Doom-like first-person shooter directly in a terminal window.
Study an unusual example of using SQL as a full game engine and renderer.
Watch a live, read-only SQL audit tool alongside gameplay to see exactly what queries produced each frame.
| petergpt/doomql | forsy-ai/forsy-trace-skill | useknockout/api | |
|---|---|---|---|
| Stars | 54 | 54 | 54 |
| Language | Python | Python | Python |
| Setup difficulty | easy | easy | easy |
| Complexity | 2/5 | 2/5 | 2/5 |
| Audience | developer | researcher | developer |
Figures from each repo's GitHub metadata at analysis time.
Needs Python 3.11+, a recent SQLite version, and a terminal with 24-bit color and Unicode support.
DOOMQL is a playable, first-person shooter game that runs in your terminal, built around one strange idea: the game logic and every pixel on screen are produced by SQL queries running inside SQLite, not by a traditional game engine. Python is only used to read your keyboard input and print the finished picture to the screen, it does not draw anything or decide what happens in the game. Each frame of the game is generated by SQL statements that calculate player movement, collisions, enemy behavior, combat, doors, pickups, and even the exact color of every pixel. A second SQL query turns those pixel values into colored blocks that your terminal can display. The project includes a companion tool called an inspector, which opens a read-only view of the same live database so you can watch, in real time, the exact SQL statements responsible for what is happening on screen as you play, without affecting the game itself. To play, you need a Unix-like system such as macOS or Linux, or Windows using WSL, along with Python 3.11 or newer, a recent version of SQLite, and a terminal that supports 24-bit color and Unicode characters. There are no other software dependencies to install. You start the game with a single command from the project folder, and the objective is to find a token, unlock a gate, defeat an enemy, and reach a portal, while fighting off other enemies along the way. The project describes itself as an original Doom-like game rather than a port of the real Doom, and it contains none of that game's original code, data, or artwork. It includes a fairly large test suite covering gameplay, rendering accuracy, and the boundary rule that the Python code must never contain game logic. DOOMQL is released under the MIT License, which is a permissive open source license that allows free use, including commercial use.
DOOMQL is a terminal first-person shooter game where SQL queries, not a game engine, calculate movement, combat, and every pixel drawn on screen.
Mainly Python. The stack also includes Python, SQLite, SQL.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.