Building a DOOM-like multiplayer shooter in pure SQL

(cedardb.com)

197 points | by lvogel 21 hours ago ago

28 comments

  • a3w 18 hours ago ago

    THIS IS MADNESS.

    Krieger, is that you? You went too far with it.

    I am all for catgirl holograms, so good science by Archer's Krieger on that. But SQL should not run Doom. The limits of science have been pushed beyond madness!

    Well okay, "does it run Doom" comes up here frequently.

    But why not solve "does it run catgirls" first, if you are a real-life mad scientist?

    • lelanthran 3 hours ago ago

      > Krieger, is that you? You went too far with it.

      Is this a reference to Far Cry 1?

  • pjot 17 hours ago ago

    Author of the mentioned DuckDB-DOOM here!

    This is awesome - multiplayer is a great addition. Really like the cone in the mini-map too

    • lvogel 15 hours ago ago

      Love that you liked it! Your project was the inspiration and showed me the insanity was actually feasible :D

    • IncRnd 16 hours ago ago

      This is pretty neat. I was expecting a WAD file to get loaded, but this was still pretty neat, even better than Windows XP in JS.

    • selimthegrim 15 hours ago ago
  • paulryanrogers 11 hours ago ago

    I feel like these more extreme efforts barely qualify as running Doom. Technically I guess it's Doom in pure SQL, not running on it (since that suggests hardware).

    Other efforts such as Doom (like) CAPTCHA or Doom in TypeScript types are either so incomplete, unplayable, or so absurdly abstract that it strikes me as desperate cries for attention.

    That said, people have all kinds of weird interests, so to each their own. I'd just prefer these absurd efforts didn't take up so much attention that they distract from artistic efforts with more to say than "look what I can do". Even some other efforts in Doom; like "Thatcher's Techbase", "Kriegsland: Blutorden", "Blades of Agony", or HDoom.

  • romperstomper 17 hours ago ago

    I'd say this is more like Wolfenstein 3D :)

    • lvogel 15 hours ago ago

      That's just my age showing, I guess. For me, all 2.5D shooters are DOOMlikes. I was actually first thinking about calling it a Quake-like since IMHO that is much more well known for its multiplayer, but then I never got around to implement powerups and all the other stuff people might have expected.

    • to11mtm 13 hours ago ago

      tbh feels like OG Wolf crossed with some early text based 'first person' RPG crossed with real time updates...

      I suppose if there's one frustration it's that various 8/16bit dooms are out there including asciidoom and wondering why the better UX/vis of those weren't a thing...

    • gs17 16 hours ago ago

      For some reason it's really common to call this kind of project a "Doom clone" despite it not having the features that made Doom notable at the time. Honestly, it's impressive enough that it doesn't need to be tied to being a "[90s game] clone".

  • lvogel 18 hours ago ago

    If you want to take a look at the source code, here's the repo! https://github.com/cedardb/DOOMQL

  • boredinstapanda 12 hours ago ago

    Reminds me of the text mode Doom before the ASCII mode video drivers.

    I couldn't find the site after a quick search,maybe the wayback machine.

  • esafak 19 hours ago ago

    This is a clever ad! I had not heard of them so I looked up the technology behind it: https://cedardb.com/docs/technology/

    A Postgresql-compatible HTAP. It appears to be single server and closed source. Roadmap: https://cedardb.com/docs/roadmap/

    • FridgeSeal 13 hours ago ago

      IIUC its a commercialisation of a research DB called Umbra which has some pretty amazing performance characteristics.

    • zekrioca 15 hours ago ago

      Would this multiplayer work on Postgresql?

  • valorzard 17 hours ago ago

    Feel like the logical extreme of this is a database built for multiplayer games, something like: https://github.com/clockworklabs/SpacetimeDB

    Though there, you are still writing the main game logic in Rust or C#

    • crooked-v 16 hours ago ago

      "Just build all the logic directly in the DB" is something I've thought about before for simple multiplayer online RPGs and the like, where quite a lot of things are effectively just a direct mapping from database to screen. But, using the general idea for 'twitch' gaming is really wild.

    • lvogel 15 hours ago ago

      Yea, I actually thought of the viability of SQL for games while working on DOOMQL. It's just so easy to express a lot of game logic in SQL queries. As an avid OSRS player I was thinking about doing a simple MUD/MMO next.

      Thanks for the pointer to SpacetimeDB - haven't heard of it before!

  • ant6n 17 hours ago ago

    It’s a very cool accomplishment. As a nerd of early shooters, I do wonder whether it’s fair to call it Doom-like. It’s clearly more untextured Wolfenstein 3d.

    Are we sufficiently far from 1993 to just “round” it all to being Doom-like? certainly it’s better for eyeballs.

    • omoikane 7 hours ago ago

      Part of the brilliance of Doom has got to be this short one-syllable name, so all later games that did raycasting would call themselves "Doom-like" as opposed to "Wolfenstein-like". The latter is just too many syllables.

    • johnisgood 16 hours ago ago

      Yeah, it is definitely Wolfenstein 3D in my opinion. Many Doom-clones are. Maybe Wolfenstein 3D is a Doom-clone in itself? I dunno, I do not know the history. Can anyone enlighten me?

  • flykespice 12 hours ago ago

    The previous trend was about trying to run DOOM on as many constrained devices as possible

    now it has evolved to trying to prove turing-completeness on the least places you'd expect it to be.

  • phoenixhaber 13 hours ago ago

    I once made a doom emulator with a bandsaw and a pile of toothpicks but unfortunately I had difficulties cross compiling to a dumpster fire of banana peels.

  • ForHackernews 13 hours ago ago

    There's also pg_doom that runs Doom as a Postgres extension https://github.com/DreamNik/pg_doom arguably less impressive because PG extensions can be normal(ish) C.

  • OhMeadhbh 12 hours ago ago

    "Programming languages differ not so much in what they make possible, but in what they make easy."

  • alexchantavy 16 hours ago ago

    Do it in Neo4j now lmao