< Back to all clusters
[TECHNOLOGY] · 6 sources

started · updated

SQLDoom renders Doom engine using relational database queries

Developer Lukas Vogel has created SQLDoom, a project that implements the Doom engine using a relational database. The system uses approximately 1,300 lines of SQL, organized into 89 common table expressions, to manage game geometry and logic.

While a small Python client handles input, timing, and rendering, the core game state and geometry are stored in CedarDB tables. The project achieves a performance of 35 bitmap frames per second at a resolution of 640x480.

This approach represents a significant technical advancement over Vogel’s previous project, DoomQL, which utilized grayscale ASCII graphics. By converting Doom’s WAD files into relational tables, the developer utilized pre-computed sort keys for binary-space partitioning, allowing simple ‘ORDER BY’ statements to determine visibility and improve rendering performance.

Entities

CedarDB · Doom · Lukas Vogel