Developer ports Doom to run entirely inside a SQL database

Started by Perigee Jaguar, Today at 05:51 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Topic: Developer ports Doom to run entirely inside a SQL database   Views(Read 38 times)
Active members in this topic:
Perigee Jaguar(1)

Perigee Jaguar

Developer Lukas Vogel has ported Doom to run entirely inside a SQL database, TechRadar reports. The project is called SQLDoom. Both the game logic and the rendering run through database queries. Vogel admits that rendering Doom in a database is obviously a bad idea, which is exactly why it is so much fun

The details are impressive. Level geometry and game state live in tables inside CedarDB, a database that compiles queries into machine code. A small Python script handles timing, input and display. The port renders 35 full colour frames per second at 640 by 480 using about 1,300 lines of SQL across 89 query blocks

Vogel reports around 60 frames per second on a Ryzen 7 7840U laptop, dropping to 35 in busy scenes. An earlier project of his, DoomQL, used raycasting with grayscale text characters and looked more like Wolfenstein 3D. Floors and ceilings were the hardest part this time. He replaced Doom's visplanes with a looping pass over sorted panels

It even supports deathmatch, with public servers in Europe and the US, and the code is on GitHub. Vogel said he intended it as a tech demo, but it just feels like the real Doom. He also described the code as pretty hacky, which is the most honest thing any developer has ever said about a side project. It is a different story from the Doom on a Hasselblad camera we covered earlier this week

I love these projects. Running Doom on unlikely hardware has become a tradition, but running it inside a database is a different kind of challenge. It shows how far modern databases have come in speed and flexibility. It also makes you wonder what else people are underusing their databases for

What is the most ridiculous place you would like to see Doom run? And has anyone here tried writing games in something that was never meant for them?