SQLDoom Runs Full Doom Inside SQL
SQLDoom reimplements 1993 Doom’s game logic and renderer as SQL inside CedarDB, while Python handles only input, timing, and display. It preserves the original 35 Hz game loop, renders 320×200 frames at up to 60 Hz, and supports multiplayer deathmatch. [CedarDB](https://cedardb.com/blog/sqldoom/) [GitHub](https://github.com/cedardb/sqldoom)
SQLDoom is a brilliant database stress test and a surprisingly sharp demonstration of data-native simulation. It does not make SQL a sensible game-engine replacement, but it shows how transactional state, deterministic updates, and access control can simplify multiplayer systems.
- –Its renderer uses BSP traversal, window functions, and packed ordering keys across roughly 1,300 lines of SQL.
- –About 5,900 lines of SQL implement the game logic while the client remains deliberately minimal.
- –Transactional game ticks provide consistent multiplayer snapshots and prevent partially applied state changes.
- –The project is CedarDB-specific because it uses CedarScript, though the authors say much of it could be ported to PL/pgSQL.
- –Running it requires CedarDB, Python, pygame, and a legally obtained Doom IWAD, making it more compelling as an engineering experiment than a practical game platform.
DISCOVERED
1h ago
2026-10-06
PUBLISHED
1h ago
2026-10-06
RELEVANCE
AUTHOR
Better Stack