Doom now runs inside an SQL database

A developer rendered the classic shooter using database queries, achieving 60 fps with full-color graphics.

Oct 2, 2026

6 cards · 1m 40s · tap to begin

From · · 1m 40s

Doom now runs inside an SQL database

A developer rendered the classic shooter using database queries, achieving 60 fps with full-color graphics.

In brief

A developer rendered the classic shooter using database queries, achieving 60 fps with full-color graphics. Lukas Vogel built SQLDoom, a working version of Doom that runs inside an SQL database using Python for input and output, generating thirty-five bitmap framebuffers per second. Originally reported by Ars Technica.

Doom rendered in SQL

Lukas Vogel built SQLDoom, which renders the classic shooter using an SQL database. A Python client handles input, output, timing, and display while CedarDB tables track game geometry and state.

“Rendering Doom in a database is obviously a bad idea”

How it works technically

About one thousand three hundred lines of S Q L queries spread across eighty-nine common table expressions implement the game logic and generate thirty-five bitmap framebuffers per second at full-color six hundred forty by four hundred eighty resolution.

Better than the last attempt

Better than the last attempt

Vogel's previous DoomQL project generated grayscale A S C I I graphics similar to Wolfenstein three D. SQLDoom improves on this by generating full-color frames that look like they came from the original Doom executable.

Converting Doom to database

Converting Doom to database

Doom's classic W A D files converted to a relational database relatively simply because the original game broke levels into vertices, lines, and sectors. Binary-space partition trees use a sort key pre-computed for each position at load time.

Performance and multiplayer benefits

SQLDoom runs at about sixty frames per second on a Ryzen seven-powered laptop, with occasional dips to thirty-five fps for busy scenes. The database's reference snapshot of game state offers benefits for multiplayer servers.

“no partially applied updates, physics bugs, or disagreements over whether the rocket actually hit”

How to try it yourself

The code is available on GitHub with CedarDB and a Doom W A D file. A free online hosted demo match is also available, though performance varies depending on your connection and system.

The takeaway

Lukas Vogel built SQLDoom, a working version of Doom that runs inside an SQL database using Python for input and output, generating thirty-five bitmap framebuffers per second.

Read the original on Ars Technica

React

Sign in to react and comment.

Comments (0)

Life is short. Keep it sweet. Respect others' opinions and be kind!

    Recommended next

    More decks on doom and related topics.