in reply to Perlmonks MOO

Coolness. I enjoyed MOOs in the past ( I managed to hit a MOO at its heights of use and it was awesome).

I've always wanted to see some of the features of MOOs brought onto the web or similar technologies.

Apart from being great introductions to OO programming (you can literally see it happening in front of you), they are the only (simultaneous) joint code editing program I've seen . The idea of having multiple people editing the same code is something I've always wanted to play with a bit more.

Personally I don't feel attracted to the idea of browsing PM nodes by walking through rooms, but I do like the idea of being able to see what the monks around the monastary are doing - it would rock to have a list of monks currently looking at a node so we could kibbitz about nodes.

I once laid down the start of some code for a web-based moo in perl, but pretty much gave it up when I realised that there was no good way to allow people to run limited Perl5 code that they wrote inside the moo. The way works, it either limits programmers to trivial, useless code, or it allows people to gain full access easily (i.e. if you allow module loading, anyone can take control. if you don't, there's not much fun to be had)

I didn't believe in evil until I dated it.

Replies are listed 'Best First'.
Re: Re: Perlmonks MUD
by dragonchild (Archbishop) on May 27, 2004 at 17:58 UTC
    Most MOOs actually used some variant of LISP, sufficiently de-functionalized for general consumption. Perl is a very poor language for MOOs. Much better is write the server in Perl and provide a LISP-like language for the general programming.

    We are the carpenters and bricklayers of the Information Age.

    Then there are Damian modules.... *sigh* ... that's not about being less-lazy -- that's about being on some really good drugs -- you know, there is no spoon. - flyingmoose

    I shouldn't have to say this, but any code, unless otherwise stated, is untested

      Much better is write the server in Perl and provide a LISP-like language for the general programming.

      Very true, but at the same time massively disappointing. Having to program OO lisp at the perlmonks MOO takes away 99% of the attraction for me.

      Especially since people will then start asking LISP questions at the monastary and there'll be big flamewars about why the questions shouldn't be asked even though the MOO is part of PM.

      Plus it leads to the inevitable question "why doesn't someone write the entire MOO in LISP"

      I didn't believe in evil until I dated it.

      Perhaps, but think of it as an introduction to Perl for newbies. Learn by playing! I think it would be neat if you wanted to say place a 'security camera' in a room to watch people there, you would need to figure out how to code it yourself. You could also write your own special abilities, (I've been somewhat inspired by The Matrix Online (Check out the features page, I think it would be neat to implement something like that).

      I'm game to help if anyone else is, but I don't know where to start.

      our @item = reverse (114, 101, 107, 99, 97, 104, 32, 108, 114, 101, 80, 32, 114, 101, 104, 116, 111, 110, 97, 32, 116, 115, 117, + 74); local $my = reverse ")meti@\ ,rhc (pam tnirp";eval $my;
        If everyone one in the world were positive thinking and nice, it would suffice to grab a perl telnet server (or web server) and simply eval every command sent to it. In no time, people will have built a complete MOO.

        In practise, you'll have your server reformatted in no time flat.

        So you go back, and try to sanitise people's commands, or switch them to a language like lisp or BASIC. You provide a backend object database, perhaps implemented with hashes (each key is an attribute for an object), overlay a security system for authenticated users (so they can't edit each other's hashes without permission).

        It's one of the best examples of Model-View-Controller programming in the world.

        I have a friend currently running up a MOO on our server. If you would like, I'll introduce the two of you. I'm sure he'd be interested in talking MOOcode for a bit.

        I didn't believe in evil until I dated it.

      Most of the MOOs I've been on (and am still on...) use this bizarre OO MOO-C language that both terrifies and fascinates me. MUSHes have the not-quite-functional-but-damn-close softcode that I both love and hate, depending on the time of day. Of the two, I find MUSHes easier to code, but MOOs are just so much cooler. I used to do MUSH coding (various WoD mushes, mostly) and have submitted some patches to the TinyMUSH team.

        Take a look at mooix. Completely OO and you can code in whatever language you want.