« BackDoom, Played over Curlgithub.comSubmitted by creaktive a day ago
  • varun_ch 21 hours ago

    One interesting side effect of having a LLM write the thing including the README, is that the models tend to leave little hints of the authors intention or prompt as over-explained passages that make it obvious that AI help was used.

    https://github.com/xsawyerx/curl-doom?tab=readme-ov-file#how...

    eg. > A browser hitting the same URL gets a tiny landing page that just shows the one-liner

    it’s subtle but once you notice it, it’s hard to miss.

    As an aside, I feel like projects like this used to be really fun and impressive (I guess due to the fact that you’d think “Wow a human put their time into this wacky crazy thing”), whereas now you can have Claude consistently crap out something like this in 5 minutes, so it ruins the whole appeal to me…

    • xsawyerx 4 hours ago

      I think you're assuming a lot on how LLM was used here. I understand why you would, but it doesn't make it correct. You found me documenting how something works in the style that I do and you assume I just LLM'ed the entire thing.

      Like I said, I understand why, but still...

      • bitwize 13 hours ago

        Is there any interest in 100% human-made malarkey like this still? I know the nonstop firehose of AI "art" has sharpened my interest in even the worst human-created art.

        • z3c0 18 hours ago

          Not to mention that the objectively bad practice of piping a curl call to bash is nowhere close to "playing doom via curl". It's almost as if they simply prompted "play doom with curl". In my experience, almost any overly-ambitious prompt ends similarly.

          • xsawyerx 4 hours ago

            One form is to `curl` to get the bash code to just run the loop on keys that make additional curl requests. That is playing DOOM via curl. Each curl is a movement.

            However, if you see the next form, it creates a single curl request that stays open and does not need bash or additional calls for each key. It uses the open request. (You do need to set the terminal to raw for this.)

            HOWEVER, to push back against myself: It's relatively easy to do when other people did the heavy lifting: Doomgeneric, terminals, curl, etc. I also couldn't use websockets because it doesn't come with curl by default. And you can also move forward only when pressing a button to refresh the frame.

            So yeah, not the most impressive thing by far. But it is curl used to play the game and that's... something?

            • moeffju 11 hours ago

              But that's not what it does, the bash option just saves you from doing stty setup and reset I think? You can just type it all out by hand, too, as the readme explains

            • varun_ch 17 hours ago

              Oh wait I didn't even register that! yeah of course you can do anything in a terminal using curl if you're piping to bash!!!

          • azalemeth 16 hours ago

            Reminds me of libcaca - http://caca.zoy.org/wiki/libcaca - which can render many things natively in ascii, really incredibly effectively.

            • BobbyTables2 10 hours ago

              I’m shocked that curl is fancy enough to start reading and outputting the HTTP response before the request has even been fully sent!

              I wasn’t expecting that a “simple” command line application supports this kind of thing — the HTTP spec is crazy enough that I can’t say I’m surprised it’s not forbidden.

              • thomasfl 21 hours ago

                This is a good template for making terminal based apps that run on remote servers.

                • stratos123 13 hours ago

                  This idea has the rather severe problem that it requires piping an untrusted remote script directly into bash.

                  • anthk 14 hours ago

                    You are reinventing telnet.

                    • kaoD 14 hours ago

                      Or just use SSH.

                    • ehtbanton 11 hours ago

                      This is very impressive, have tried it out.

                      If only everyone was as good at making performant terminal applications (cough cough Anthropic)

                      • reactordev 18 hours ago

                        oddly enough, this is how it looked when I ran it on my 486 when I was a kid. Pretty accurate except this runs at a faster fps than mine did... ;)

                        • nurettin 17 hours ago

                          I remember Liquid crystal displays having an unintended blur effect when something animates or rotates, but it wasn't as bad as ansi chars.

                          • reactordev 10 hours ago

                            rofl, my AGP VGA CRT had permanent ghosting damage from the Doom logo. So yeah, I feel this.

                        • Leomuck 19 hours ago

                          What the hell. First, I thought this was crazy. How could you do anything crazy with curl? But of course, curling a bash script opens lots of opportunities. Given the right permissions, you could run an enterprise Jira server via only a curl to a bash script.

                          Still cool that people find more ways to play doom, but calling it "via curl" seems a little missleading to me. "Playing doom via a simple bash script" would have felt more appropriate.

                          • moeffju 11 hours ago

                            Isn't it literally playing it via curl though - curl reads STDIN and transmits that to the server, which responds. The whole bash thing is completely optional and only saves you some tty setup.

                            • anthk 14 hours ago

                              Play nethack with a simple oneliner: nc nethack.alt.org 23

                            • vjay15 9 hours ago

                              So coool

                              • fao_ a day ago

                                > The catch: the shell normally puts the terminal in *cooked mode,*

                                Yeah, that's not the name of the mode. In this sense, it's "canonical mode". Description reads like AI slop where technical content was reformatted into marketing/PRspeak. It feels like a 30 year old PR representative desperately trying to twist any kind of technical language specifically to pander to the AAVE-derived slang of the younger set of internet-addled minds.

                                As a result, this does not interest me.

                                For anyone who is interested in ANSI terminal stuff, or building their own, Lexi Hale had a decent article on this: https://xn--rpa.cc/irl/term.html which got discussion here about eight years ago: https://news.ycombinator.com/item?id=24436860