1. 22
  1.  

  2. 6

    I’m late to the “50 Years of Text Games” project, but this recent article on LambdaMOO, and MUDs in general, may be one of the best pieces I’ve read on the subject: where they came from, how they worked (in detail! yay!), who played them, and how they influenced every online social space to come. (This is near & dear to me since my pandemic project has been writing a mud engine.)

    1. 1

      A MUD engine has been on my “someday” list for so damn long. Care to share some words about yours?

      1. 2

        I may never finish it, but demoing it has been a good way to hang out with friends during lockdown. :)

        The features I think are interesting:

        • curses-like text interface accessible over ssh, or through a web page (that just uses ssh to make a terminal)
        • custom PL in the style of basic
        • editing uses forms and text editors so you can see what’s possible
        • infocom-style parser (look behind the bookcase)

        I sometimes post demos to the fediverse, like this one: https://mastodon.technology/@robey/106082355464880605

        1. 1

          That’s really cool. What are you using to build the ssh interface?

          1. 2

            I’m building it in typescript, so I used the “ssh2” and “socket.io” packages on the server, and “xterm” in the browser. Also, looks like I misremembered: ssh is only used for TCP connections, the browser version relies on web server TLS.

    2. 2

      LambdaMoo - I joined in ‘94 as an undergrad (along with other MOOs like BayMoo and ParkMoo). It was how I learned OOP and I still have very fond memories of that time/virtual place. FWIW, at last year’s EuroPython I gave a presentation about a goofy Pythonic MOO-ish project I’d been working on.

      This thread is totally going to turn into a bunch of reminiscences by folks of a certain age… :-)

      1. 1

        I got my first job in tech because a co-worker was impressed and amused at some of the MOO code I wrote :)

        I was a big mudder/MOOer back in the day. I was living in a semi-rural town where I couldn’t get around and worked across the street so, I didn’t get out much :)

        Back then, TinySex was a thing. I never got into it, I personally prefer such experiences IRL and don’t get much joy from blasting vaguely naughty bits of text back and forth with random people online.

        So in MOO, there’s the concept of a “player class”. It’s a custom class players create that adds various features to your player. More evolved mechanisms for such customization came later, but early on it was one of the only ways to augment your player.

        One of the best player classes at the time was the “Schmoo” class. It had all kinds of features and some of them were pretty great. One of the features I didn’t personally care for but didn’t bother to disable as such was the ability to wear clothes.

        Initially, these ‘verbs’ didn’t have any kind of permissions on them, so anyone could walk up and undress you. Not cricket.

        So I wrote an overriden version of the ‘undress’ verb that, if called by anyone other than me, sent the player a message about keeping their filthy hands to themselves and then sent them to HELL. (Which was a literal room in the MOO :)

        In fact, I just checked and the code is still there:

        #23239:"dress undress strip"   this none none
        1:  if (player == #23239)
        2:    pass(@args);
        3:    return;
        4:  endif
        5:  player:tell("As you reach for Feoh to try to " + verb + " him he makes whistles almost imperceptibly, and two snow white wolves come lunging out of an unseen corner, mouths foaming, eyes glaring red with bloodlust and
        fur bristling with anticipation for the kill.  They take you down with ease, pinning you to the ground a few feet away from Feoh.  Feoh smiles and points to his sign, saying: \"I'm not into that kind of thing, sorry! \".The
        wolves, not having been fed recently, gnaw every piece of flesh off your body.  Not a pleasant process at all.  You find yourself observing the total decimation of your body from a very odd vantage point.. You're *floating*
        above your body! Suddenly, you feel a wretching sensation and find yourself in...");
        6:  player.location:announce_all_but({player}, player.name + " Tries to " + verb + " Feoh, *BIG* mistake.  Feoh whistles imperceptibly and two snow white wolves lunge out of a corner and attack the poor soul, pinning " +
        player.po + " to the floor, whereupon Feoh points to his sign, smiles, and says:\" I'm not into that kind of thing, sorry!\".  The wolves, not having been fed recently, gnaw every piece of flesh off " + player.name + " body,
        right down to the bone.  You find yourself watching the gory scene and a lump forms in your throat.  Better not try that little trick!");
        7:  player:moveto(#19232);
        8:  #23239:tell("Muahahaaha! You just sent ", player:titlec(), " to hell! ");
        

        Fun times :)

        1. 2

          :waves!

          I got my first job in tech because a co-worker was impressed and amused at some of the MOO code I wrote :)

          Exactly the same for me.

          One of the best player classes at the time was the “Schmoo” class. It had all kinds of features and some of them were pretty great.

          The first significant programming project I ever finished was a svelte replacement for the Schmoo class. I was a teenager and had never heard of either technical debt nor the second system effort.

          1. 2

            Okay, this subthread is not turning into MUDders anonymous! :)

            I’m coming from more hack’n’slash types of MUDs. Diku + CircleMUD, yay! I may have had hundreds of hours logged on my necromancer char back in college. Of course, best experienced on a 386 machine with a single-floppy Linux distro.

            1. 2

              I co-ran Goldman MUD, a DikuMud many years ago :)

              As a user, my favorite combat MUD by far was and still is (still running!) Darker Realms :)

          2. 1

            Some of my first internet experiences were playing LPMuds in high school, and a TinyMUD freshman year of college. Then a break of a few years, and my first real job, as a sysadmin, where I automated everything and spent most of my time on Discworld MUD for a few years. I check back in once in a while, but not very often.