Lukas Vogel’s SQLDoom project proves that even a game renowned for its polygonal graphics can be tamed by the relational database. Using a small Python client for input and output, and a series of CedarDB tables for tracking game geometry and state, the project generates full-color, 640×480 frames at a rate of 35 bitmap framebuffers per second. This is a significant improvement over his previous DoomQL project, which relied on raycasting-based, grayscale ASCII graphics resembling Wolfenstein 3D.
Converting Doom’s classic WAD files to a relational database was straightforward due to the original game’s structure, which breaks down levels into vertices, lines, sectors, and sectors. Binary-space partition trees, which are notorious for their complexity, can also be broken down into SQL using a pre-computed sort_key for objects, making the task of determining what parts of walls to display much simpler and more efficient.
The SQLDoom project showcases the potential of databases to handle complex tasks, challenging the notion that they are solely for storing and retrieving data. It also raises questions about the future of game development and the limits of what can be achieved with relational databases.
Could this be the dawn of a new era where game developers consider databases as part of their toolkits? Or is SQLDoom simply a quirky experiment? Only time will tell, but one thing is certain: the line between what is possible and what is not is continually being redrawn.







