Doom, Played over Curl

(github.com)

120 pontos | por creaktive 2 dias atrás

10 comentários

  • varun_ch
    2 dias atrás
    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
      1 dia atrás
      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...

    • z3c0
      2 dias atrás
      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
        1 dia atrás
        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?

        • z3c0
          19 horas atrás
          You are correct, on all counts. (See my response to the other commenter.) I was more harsh than I should have been. You're correct that it's not the most advanced of DOOM implementations, but I'd hate to hinder DOOM-ifying things with pedantry. (So long as one isn't simply piping a DOOM binary to bash, of course.)
      • moeffju
        1 dia atrás
        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
        2 dias atrás
        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!!!
    • bitwize
      2 dias atrás
      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.
    • a_t48
      1 dia atrás
      Constant struggle to get Claude to stop putting in little comments in the code that are only relevant to pointing out the thing it just changed, rather than actually helpful context for later.
    • prettyblocks
      1 dia atrás
      I think it's safe to assume that "AI help was used" in everything these days and I don't understand why that should be a problem.
  • azalemeth
    2 dias atrás
    Reminds me of libcaca - http://caca.zoy.org/wiki/libcaca - which can render many things natively in ascii, really incredibly effectively.
  • thomasfl
    2 dias atrás
    This is a good template for making terminal based apps that run on remote servers.
    • stratos123
      2 dias atrás
      This idea has the rather severe problem that it requires piping an untrusted remote script directly into bash.
    • anthk
      2 dias atrás
      You are reinventing telnet.
    • kaoD
      2 dias atrás
      Or just use SSH.
  • BobbyTables2
    1 dia atrás
    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.

  • ehtbanton
    1 dia atrás
    This is very impressive, have tried it out.

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

  • reactordev
    2 dias atrás
    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
      2 dias atrás
      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
        1 dia atrás
        rofl, my AGP VGA CRT had permanent ghosting damage from the Doom logo. So yeah, I feel this.
  • Leomuck
    2 dias atrás
    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
      1 dia atrás
      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
      2 dias atrás
      Play nethack with a simple oneliner: nc nethack.alt.org 23
  • fao_
    2 dias atrás
    > 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

  • vjay15
    1 dia atrás
    So coool