Developer Lukas Vogel has ported Doom to run entirely inside a SQL database, with CedarDB queries handling the game logic and rendering. The project, called SQLDoom, stores level geometry and game state in database tables, while a lightweight Python script handles timing, input and display output.
SQLDoom produces 35 full-color frames per second at 640×480 resolution using about 1,300 lines of SQL across 89 query blocks. Vogel reports that it reaches about 60 fps on a laptop with a Ryzen 7 7840U chip, though busy scenes can drop to 35 fps.
An earlier project, DoomQL, used raycasting and grayscale text characters. Vogel said it skipped the BSP-tree traversal associated with Doom’s rendering approach, so he developed a second version. For SQLDoom, he required the game loop and rendering system to run through SQL, with output limited to exact-color tables or bitmaps.
Vogel said in a blog post that rendering Doom in a database was “obviously a bad idea.” Floors and ceilings posed a particular challenge because Doom’s original engine uses visplanes and state changes. He replaced that system with a sequence of sorted panels to fill the surfaces, describing the method as “pretty hacky.”
The port supports deathmatch, with public online servers in Europe and the United States. TechRadar reports that reviewers found the online demos sluggish; one outlet suggested the servers, rather than the port, were responsible. The code can be run locally with CedarDB and Doom’s original WAD data, or played in a hosted match.
Comments
0No comments yet. Be the first to comment.