Someone got Doom in an SQL database
Key Points:
- Lukas Vogel developed SQLDoom, a project that renders the classic game Doom using an SQL database, with a Python client managing input, output, and display while SQL queries handle game logic and frame generation.
- SQLDoom significantly improves on Vogel’s earlier DoomQL project by producing full-color 640×480 frames similar to the original Doom, compared to the previous grayscale ASCII graphics.
- The project converts Doom’s WAD files into relational database tables, using SQL queries with pre-computed sort keys to efficiently determine visible game elements and maintain performance.
- Despite the complexity and overhead of using SQL for rendering, SQLDoom achieves around 60 fps on high-end hardware and benefits from the database’s consistent state management, making it advantageous for multiplayer server synchronization.
- The SQLDoom code is available on GitHub, allowing users to run it locally with CedarDB and a Doom WAD file, or try an online hosted demo, though the latter currently suffers from performance issues.