Close Menu
    Facebook X (Twitter) Instagram
    Facebook X (Twitter) Instagram
    TechtroduceTechtroduce
    Subscribe
    • NEWS
    • GUIDES
    • COMPARISONS
    • REVIEWS
    TechtroduceTechtroduce
    Home » SQLDoom Runs the Original Doom Inside a SQL Database
    NEWS Updated:October 5, 2026

    SQLDoom Runs the Original Doom Inside a SQL Database

    Abyan KhanBy Abyan KhanOctober 5, 2026Updated:October 5, 2026No Comments3 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Side-by-side comparison of original 1993 Doom and SQLDoom rendering the same game
    Share
    Facebook Twitter LinkedIn Pinterest Email

    Developer Lukas Vogel has built SQLDoom, a working reimplementation of the original 1993 Doom that moves both the game logic and rendering pipeline into a SQL database. The project runs inside CedarDB and uses roughly 5,900 lines of SQL for Doom’s game logic, compared with around 9,000 lines in the original implementation. Its renderer adds another roughly 1,300 lines of SQL spread across 89 common table expressions.

    SQLDoom is not literally running without any conventional code outside the database. A small Python client handles keyboard input, game timing and displaying the finished bitmap, while the game state, logic and renderer live inside CedarDB. The Python driver triggers a game tick 35 times per second, preserving Doom’s original gameplay timing, while rendering can run separately and produce the complete 320×200 framebuffer at up to 60 Hz on ordinary laptop hardware.

    Vogel describes the project as a more complete successor to DOOMQL, an earlier experiment that implemented a Doom-like multiplayer shooter using SQL but relied on a simplified raycasting renderer with ASCII-style visuals. SQLDoom instead loads real Doom WAD data and recreates substantially more of the original engine, including textures, BSP traversal, sprites and the underlying gameplay systems. The source code is publicly available under the GPL, though the project does not distribute Doom’s copyrighted WAD files.

    Side-by-side compiled assembly comparison between original Doom code and SQLDoom

    One reason the experiment works at all is that Doom’s level format already maps surprisingly well onto relational data. Vertices, linedefs, sectors and other pieces of map geometry can be represented as database tables, while SQL queries can transform and filter that information to determine what should appear on screen. Vogel’s renderer ultimately produces 64,000 rows representing individual pixels before combining them into a single RGB framebuffer returned to the client.

    The rendering query itself is considerably more elaborate than a typical database workload. Its 89 CTEs handle tasks including traversing Doom’s BSP structure, clipping geometry, projecting walls into screen space, rendering floors and ceilings, processing sprites and resolving which fragment should occupy each pixel. Vogel notes that the original Linux Doom renderer contains roughly 3,300 lines of source code excluding comments, making SQLDoom’s approximately 1,300-line renderer unexpectedly compact despite using a language never intended for this job.

    The gameplay side takes advantage of SQL’s ability to update sets of entities at once. A typical game tick with six active monsters reportedly takes around 2.15 milliseconds, while one of Vogel’s heavier measurements reached about 10.45 milliseconds on E4M1 with 46 monsters active. That leaves the database comfortably within the approximately 28.6-millisecond budget required to maintain Doom’s original 35-tick-per-second simulation rate.

    SQLDoom belongs to the same class of technically unnecessary but revealing engineering projects that push familiar software far outside its intended use. Developers have similarly built unusual tools such as a 3D source-code visualizer capable of handling millions of lines and brought old console software to unexpected hardware through projects like native original Xbox emulation on a jailbroken PS5. In each case, the practical value is secondary to demonstrating what the underlying technology can be made to do.

    SQLDoom also includes multiplayer support and can be run locally by users with CedarDB Community Edition, Python and a compatible Doom IWAD. Vogel has additionally provided live demonstrations, allowing the project to be tested without building the full environment from scratch. While nobody is likely to choose a relational database as the foundation of a commercial first-person shooter, SQLDoom shows that even Doom’s real-time game loop and software renderer can be expressed through database operations with surprisingly respectable performance.

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Abyan Khan
    • Instagram
    • LinkedIn

    Abyan Khan is a dedicated writer and tech enthusiast currently pursuing a Bachelor’s degree in Information Technology. With over 3 years of professional writing experience, he specializes in crafting clear, engaging, and informative content across a range of topics, particularly in the tech and gaming industries. Abyan combines his academic knowledge with real-world insights to deliver articles that are both well-researched and reader-friendly.

    Related Posts

    Roarty Digital Confirms Work on Valve’s Deadlock

    October 4, 2026

    Sony Reportedly Taking Pitches for Dormant PlayStation Franchises

    October 4, 2026

    AI-Built Taipei GTA Game Reportedly Hits 1.2 Million Players

    October 4, 2026
    Leave A Reply Cancel Reply

    Google Techtroduce

    See more Techtroduce stories on Google.

    Add us on Google

    • SQLDoom Runs the Original Doom Inside a SQL DatabaseOctober 5, 2026
      SQLDoom ports Doom’s game logic and renderer to SQL, using about 5,900 lines for gameplay and a 1,300-line database-powered renderer.
    • Roarty Digital Confirms Work on Valve’s DeadlockOctober 4, 2026
      Roarty Digital has confirmed it contributed to Valve’s Deadlock and its major City Never Sleeps update alongside the game’s internal team.
    • Sony Reportedly Taking Pitches for Dormant PlayStation FranchisesOctober 4, 2026
      Sony is reportedly accepting external pitches for dormant PlayStation franchises including Sly Cooper, Ape Escape and Killzone.
    TRENDING NOW

    Gundam Rogue Orbit Launches March 5, 2027

    Call of Duty x Squid Game: Launching Jan 3!

    Fortnite Leak Says Kado Thorne Is Returning With Reload Rewards

    Fortnite v42.20 Leak Reveals Sprite Mastery Rewards

    Facebook Instagram YouTube
    © 2026 Techtroduce. All Rights Reserved | Cookies Policy | Privacy Policy | Contact Us | About Us | Corrections Policy

    Type above and press Enter to search. Press Esc to cancel.

    Manage Consent
    To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
    Functional Always active
    The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
    Preferences
    The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
    Statistics
    The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
    Marketing
    The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
    • Manage options
    • Manage services
    • Manage {vendor_count} vendors
    • Read more about these purposes
    View preferences
    • {title}
    • {title}
    • {title}