DOOMQL: A SQL‑Based Doom‑Like Game Powered by GPT‑5.6 Sol
Run the DoomQL repo locally with uv, then launch Datasette with the apps plugin to view the SQL‑rendered game state.
Clone the DOOMQL repo, run `uv run host/doomql.py`, then launch Datasette with the apps plugin to explore the SQL‑rendered game state.
Summary
Peter Gostev built DOOMQL, a Doom‑like game that uses SQLite as the entire game engine, with movement, collision, enemies, and pixel rendering all expressed as SQL queries. The project is a Python terminal script that runs a recursive CTE ray tracer, storing state in doomql.sqlite and exposing it via Datasette. By installing the Datasette Apps plugin, Gostev created an HTML+JavaScript app that auto‑refreshes the frame_pixels view and adds a minimap, demonstrating how SQL can drive real‑time graphics. The repo includes a massive 18‑line SQL query that implements the ray tracer, and the game can be launched with `uv run host/doomql.py`. Gostev used Claude Fable 5 to generate the Datasette app code, showing the power of AI‑assisted programming. The project illustrates that a single SQLite database can serve as a full game engine, challenging the conventional separation between data storage and game logic. It also showcases how Datasette Apps can turn raw SQL into interactive web interfaces without writing server code. The demo is a playful yet practical example of AI‑generated code and SQL‑centric game development.
Key changes
- DOOMQL is a Python terminal script that uses SQLite as the entire game engine.
- The game implements a full ray tracer via a recursive CTE in SQL.
- Game state is stored in doomql.sqlite and can be explored with Datasette.
- The Datasette Apps plugin creates an auto‑refreshing HTML+JS app that displays frame_pixels and a minimap.
- The repo contains an 18‑line SQL query that implements the ray tracer.
- The project demonstrates AI‑assisted programming using GPT‑5.6 Sol to generate the Datasette app code.
- It shows that a single SQLite database can drive real‑time graphics and game logic.
- The demo illustrates how to turn raw SQL into interactive web interfaces without server code.