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