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 developer at CedarDB reports porting the original 1993 Doom’s game logic and renderer into SQL queries running inside a database. The prototype runs the game loop at 35 frames per second, renders 320-by-200 frames, and supports four-player deathmatch; Python handles input, timing and display.
A CedarDB developer says they have ported the original 1993 Doom’s game logic and renderer to SQL queries running inside a database, producing playable gameplay and four-slot deathmatch. The project, called SQLDoom, keeps the game loop at Doom’s original 35 ticks per second while a separate client handles keyboard input, timing and display.
In a post published September 22, the developer describes a system in which game state, game logic and rendering live in database tables and SQL queries. The renderer returns a complete 320-by-200 RGB frame buffer; the author reports that the client can request frames at up to 60 Hz on a laptop. These are different rates: the game logic advances at 35 ticks per second, while frame requests can happen more often.
The project uses Python with pygame as a deliberately limited client. According to the post, it reads the keyboard, drives the fixed-rate game ticks and displays the bitmap returned by the database. The developer says the port includes gameplay systems such as enemy movement and attacks, item pickups, projectiles, explosions, animations, view bobbing and the heads-up display.
The post also says multiplayer deathmatch is playable, with four player slots on EU and US servers. The available game is the shareware first episode. Players arriving when all slots are occupied enter a queue; if that queue is also full, the site says they can still inspect live game state with SQL queries. The developer reports importing the full Doom 1 data from its WAD files into the database in about 18 seconds on their laptop, using roughly 1,000 lines of Python for the import.
A Database Runs the Game
SQLDoom is a technical demonstration of how far database queries can be pushed beyond conventional data retrieval. Rather than using SQL only to store the game’s maps or scores, the project places the simulation and rendering work inside the database. It gives database developers and game programmers an unusual, concrete example of a database executing a stateful, time-sensitive application.
The achievement is also a reminder that a successful port is not just a visual imitation. The author’s earlier DOOMQL project produced a rough ASCII view using raycasting; the new effort aims to preserve the original game’s mechanics as well as its appearance. That distinction matters because Doom’s original rendering relies on binary space partitioning (BSP) and supports angled walls, textures and varied floor heights. The report presents SQLDoom as a way to run the actual game logic and renderer in SQL, not merely to generate a Doom-like image.
The project is not evidence that databases are a practical replacement for game engines. The report describes a constrained demonstration, with a client still responsible for input and presentation, and gives performance figures tied to the author’s laptop. Its relevance lies in the engineering experiment: it tests the boundaries of SQL and database execution in a recognizable workload.
portable gaming monitor 320×200 resolution
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
From ASCII Demo to Doom
The developer says the new project follows DOOMQL, an earlier experiment that rendered a rough ASCII representation at 30 frames per second. The author acknowledges that project was closer to Wolfenstein 3D in its raycasting approach than to Doom’s rendering method. That criticism prompted a more complete port.
Doom’s WAD data is organized around map elements such as vertices, linedefs, sidedefs, sectors and things. The post says that structure translated relatively naturally into relational tables. The developer’s stated rules for the new project were that it should look and feel like Doom, that both rendering and game logic should be SQL-based, and that a non-SQL client could be used only for input, timing and displaying the returned image.
The implementation separates the simulation from frame production: a game tick updates state at 35 Hz, while the renderer reads that state as a function and can be called independently. This separation is central to the project’s design and explains how its reported game-loop rate differs from its maximum frame-request rate.
“The original game is just raw fun.”
— The SQLDoom developer
Python pygame game development kit
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Performance Beyond the Demo
The performance figures are the developer’s own report; the post does not provide independent benchmarking or comparisons with a conventional Doom engine. It identifies an AMD Ryzen 7 7840U laptop in its demonstration but does not give detailed database configuration, resource use, query latency or performance across other hardware.
The report does not establish how the project behaves under sustained multiplayer use, how many simultaneous database clients it can support, or whether all gameplay behavior has been tested against the original release. It describes four deathmatch slots and playable access through EU and US servers, but offers no broader reliability or scalability measurements. Those limits leave the prototype’s performance outside the reported setup unclear.
As an affiliate, we earn on qualifying purchases.
Play and Inspect SQLDoom
The project post directs readers to playable deathmatch servers in the EU and US, subject to available player slots and queue capacity. It also says visitors who cannot join can query live game state through SQL. The post does not announce a release schedule, further milestones or plans to package the work as a general-purpose database feature, so any next steps beyond trying or inspecting the demonstration remain unannounced.
multiplayer gaming server hardware
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Key Questions
Does SQLDoom run entirely in SQL?
According to the developer, the game logic, state and renderer run in the database using SQL. Python with pygame remains responsible for reading input, driving the 35-tick-per-second game loop and displaying the frame returned by the database.
How fast does the SQLDoom game run?
The developer says the simulation runs at Doom’s original 35 ticks per second. The renderer can produce frames at up to 60 Hz on the author’s laptop, but the report does not present that as an independently verified or universal performance result.
Can people play SQLDoom online?
The project post lists four-player deathmatch servers in the EU and US. It says the shareware first episode is available, with a queue when all player slots are occupied.
Is SQLDoom a commercial replacement for a game engine?
The source describes it as a technical port and demonstration, not as a commercial game engine or a replacement for conventional engines. It does not report plans to turn it into a general-purpose product.
Source: hn
Halloween Picks
halloween
As an affiliate, we earn on qualifying purchases.
