TL;DR
Get the latest gadgets delivered free — and shop member deals
- Fast, free delivery on millions of items
- Access to Prime Big Deal Days deals on October 6–7
- Prime Video, Amazon Music and more included
A CedarDB developer reports porting the original 1993 Doom’s game logic and renderer to SQL running inside a database. The game loop runs at 35 frames per second, and the renderer can produce 320-by-200 frames at up to 60 Hz; a Python client handles input, timing and display.
A CedarDB developer has published SQLDoom, a port of the original 1993 game in which SQL queries run the game logic and renderer inside a database. The developer says the game loop runs at Doom’s original 35 frames per second and the renderer can return a complete 320-by-200 frame buffer at up to 60 Hz, while a Python client handles keyboard input, timing and display.
The project’s author describes the database as the home for game state, logic and rendering. SQL produces either a table or a bitmap encoding the exact RGB value for every pixel. The client requests game updates on a fixed 35 Hz loop and can request rendered frames more frequently. Python, using pygame, polls and parses input, drives the game ticks, and displays the returned bitmap.
The developer says the port includes more than a visual approximation: it processes movement, turning and shooting, as well as enemy behavior, pickups, projectiles and explosions. The report also describes animations, view bobbing and the heads-up display. Its author says multiplayer deathmatch works, with four player slots available on EU and US servers; if slots are occupied, players enter a queue.
The game data comes from Doom’s WAD files, which the developer says map naturally to relational tables for vertices, linedefs, sidedefs, sectors and in-game objects. A Python importer loads the full Doom 1 data in about 18 seconds on the author’s laptop, according to the report. The playable release uses the shareware version of the first episode.
How SQL Runs the Game
SQLDoom is a demonstration of how much of a game can be expressed as database queries when its data and processing are organized for that purpose. It moves the game’s core state changes and rendering into the database, while leaving the client with a deliberately narrow role. That makes the project relevant to database developers and game programmers curious about query languages beyond conventional data retrieval.
The report also sets out a technical distinction from the author’s earlier experiment, DOOMQL. That project rendered an ASCII scene using raycasting; the developer says it resembled Wolfenstein 3D more than Doom. SQLDoom instead aims to reproduce Doom’s approach, including BSP-based depth ordering, textured walls, angled geometry and varying floor heights. The new report says the project runs the original game’s logic as well as producing a more complete image.
Those claims describe a demanding engineering demonstration, rather than evidence that SQL is a practical replacement for game engines. The account gives performance figures for the developer’s laptop but does not compare the implementation’s resource use with the original game or other engines. Its clearest contribution is showing a working arrangement in which database queries handle a real-time game loop and frame rendering.
As an affiliate, we earn on qualifying purchases.
From ASCII to Doom’s Renderer
The project follows DOOMQL, which the author says was published the previous year. It rendered ASCII art at roughly 30 frames per second. Readers pointed out that its raycasting method was closer to Wolfenstein 3D than Doom, prompting the developer to attempt a fuller port.
In the new report, the developer describes Doom’s use of binary space partitioning trees to order geometry for rendering. The WAD file format provided another practical starting point: its maps contain connected structures, including vertices, lines and sectors, that the author says were straightforward to translate into database tables. The importer itself took about 1,000 lines of Python, according to the account.
“The original Doom’s game logic and renderer, both implemented as SQL queries.”
— SQLDoom’s developer, in the CedarDB report
As an affiliate, we earn on qualifying purchases.
Limits of the Published Results
The performance figures are reported by the developer and tied to the author’s laptop; the report does not provide independent benchmarks or a hardware comparison. The available account also does not specify database resource use, performance under different workloads, or how the implementation behaves across a broader range of machines. The stated frame rates describe the author’s reported setup, not a general guarantee.
The developer says deathmatch works and offers four slots on EU and US servers, but the report excerpt does not detail latency, server capacity beyond those slots, or how multiplayer state is coordinated. The account identifies the release as based on the shareware episode; it does not establish whether the rest of Doom’s content is included. These details remain unclear from the published material.
As an affiliate, we earn on qualifying purchases.
Playing and Inspecting SQLDoom
The developer’s report directs readers to playable EU and US servers. It says a player who finds all four seats occupied is placed in a queue, and that people can query live game state through SQL while waiting if the queue is full. The report does not give a schedule for further releases or describe planned additions.
Readers can use the project’s published material to inspect its architecture and compare the claims with the implementation. Further information about performance across hardware, database costs and multiplayer operation would help establish how broadly the approach works beyond the developer’s setup.
game development books for beginners
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Key Questions
What does SQLDoom run in SQL?
According to its developer, the game logic, game state and renderer run inside the database. SQL returns a table or a bitmap encoding RGB values for the frame.
What does the Python client do?
The report says Python handles keyboard input, drives the game loop at 35 ticks per second, requests frames and displays the bitmap returned by the database.
Can people play against each other?
The developer says deathmatch is available on EU and US servers, with four player slots. Players who arrive when slots are occupied enter a queue.
Does SQLDoom include the full game?
The reported playable release uses the shareware version of Doom’s first episode. The report does not say that the full game is included.
Source: hn
Fall Picks
fall essentials
As an affiliate, we earn on qualifying purchases.
