Someone Got Doom In an SQL Database (arstechnica.com) 18
An anonymous reader quotes a report from Ars Technica: Rendering Doom in a database is obviously a bad idea," Lukas Vogel writes in a lengthy blog post explaining how exactly he managed to render Doom using an SQL database. OK, that's not entirely accurate. The SQLDoom project uses a small Python client to handle input and output, drive the game's timing, and display each frame to the screen. Behind that, a series of CedarDB tables tracks the game geometry and state, while about 1,300 lines of SQL queries spread across 89 common table expressions implement the game logic and generate 35 bitmap framebuffers per second.
In this, SQLDoom is a major improvement over Vogel's previous DoomQL project, which last year set out to build "a multiplayer Doom-like shooter entirely in SQL." Unfortunately, that effort ended up with raycasting-based, grayscale ASCII graphics that were more akin to the simplistic 90-degree-angled maps of Wolfenstein 3D. The newer SQLDoom, on the other hand, generates full-color 640x480 frames that look like they could have come from the original Doom executable. [...] If you want to run a Doomtabase on your own local machine, you can do so simply with the GitHub code, a copy of CedarDB, and a Doom WAD file. Or you can jump into a free online hosted demo match to test it out without all the setup [...].
In this, SQLDoom is a major improvement over Vogel's previous DoomQL project, which last year set out to build "a multiplayer Doom-like shooter entirely in SQL." Unfortunately, that effort ended up with raycasting-based, grayscale ASCII graphics that were more akin to the simplistic 90-degree-angled maps of Wolfenstein 3D. The newer SQLDoom, on the other hand, generates full-color 640x480 frames that look like they could have come from the original Doom executable. [...] If you want to run a Doomtabase on your own local machine, you can do so simply with the GitHub code, a copy of CedarDB, and a Doom WAD file. Or you can jump into a free online hosted demo match to test it out without all the setup [...].
So? (Score:2)
These stunts are getting boring.
Re: (Score:2)
Re: (Score:1)
As a DOOM fan and a DBA (Score:2)
Re: (Score:2)
Re: (Score:2)
Maybe I'm missing something, but I don't believe SQL includes client data rendering. At least not any SQL implementation I've ever worked with. There's always a client that has to interpret SQL data and convert it into a rendered frame as well as send user input back to SQL as a query.
That would seem to be enough of a limitation to 'Doom on SQL' to make the total project... doomed from the start. It remains an interesting exercise in getting SQL to do the rest of it. As long as the code to do so is elega
Re: (Score:2)
Maybe I'm missing something, but I don't believe SQL includes client data rendering. At least not any SQL implementation I've ever worked with. There's always a client that has to interpret SQL data and convert it into a rendered frame as well as send user input back to SQL as a query.
Here the database outputs a fully rendered bitmap containing the frame to display. Client script driving everything is just taking that bitmap and pushing it out to the display.
Re: (Score:2)
This horrifies me. Talk about a complex way to implement a rather simple solution.
lets be professionally offendeded by things.
Not really a "DOOM on a ..." story (Score:2)
It's always fun to read about people implementing DOOM on various unlikely devices... however this is not one of those stories. This is just porting DOOM to a different language, but still running on a standard computer. And the heavy lifting is being done with python rather than SQL - so it's not even a new language, in terms of DOOM ports.
It does sound like it was an interesting and likely fun project for the coder(s), in any case.
Is this a sponsored post? (Score:2)
Paid for by CedarDB?
For burning time off social media (Score:2)
DoomSQLing :-)
Well I got Adventure in SQL (Score:2)