?

Log in

No account? Create an account
Ancient languages. - I know it's wonky and I don't care [entries|archive|friends|userinfo]
Kake

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| Randomness Guide to London | Open Guide to Cambridge | Snake Soup | KakeFlickr ]

Ancient languages. [Aug. 27th, 2004|07:49 pm]
Kake
Over the past couple of days I've been doing a bit of LambdaMOO programming. I did some several years ago when we made a MOO of Oxford, and for some reason decided to pick it up again. The plan is to make a MOO that models (parts of) London. There's no real goal except that MOO programming is quite fun. So far I've made my bedroom and a few other parts of my house, plus a couple of objects. It's really hard to find decent documentation though. Googling results in a maze of dead links. Nobody seems to really have done anything with LambdaMOO since about 1996.
LinkReply

Comments:
[User Picture]From: mstevens
2004-08-27 02:53 pm (UTC)
Can we play? can we play?
(Reply) (Thread)
[User Picture]From: nou
2004-08-27 03:09 pm (UTC)
Yes. I have emailed you user details.
(Reply) (Parent) (Thread)
[User Picture]From: emmacrew
2004-08-27 04:33 pm (UTC)
The people who were working on the core mostly left for JHCore and now they're all on Waterpoint. But I know there have been some significant core updates since '96, because I know the people who have done them (in fact, I'm married to one of them).

Did I tell you LambdaMOO itself is IN MY HOUSE? I could see the machine from where I'm sitting except there is a wall in the way.
(Reply) (Thread)
[User Picture]From: nou
2004-08-27 04:41 pm (UTC)
Ohmygoodnessohmygoodnessohmygoodness. Wow.

Um. Can you ask wrog how I make a verb of the form "foo to bar with baz"? I've tried everything I can think of.

And in fact whether I should be using JHCore or something instead of LambaCore?

Wow.
(Reply) (Parent) (Thread)
[User Picture]From: wrog
2004-08-27 05:49 pm (UTC)
um. You can't, actually. The built-in parser only allows for commands of the form: verb direct-object preposition indirect-object (to be sure, you can write your own $do_command()</var> to do other kinds of parsing, and I believe people have done stuff with this, but it's not in LambdaCore or JHCore).

As for the choice of cores, if you're starting from scratch and want the latest features, JHCore is the best bet. If you care about being able to port lots of stuff from LambdaMOO or other LambdaCore-derived MOOs, then you want LambdaCore. The one big philosophical difference (at least to me anyway) is that JHCore assumes you're running a trusted-programmer MOO (i.e., you need to be more careful about who you give programmer bits to than you do with LambdaCore) --- the JHCore folks were/are of the opinion that non-trusted-programmer MOO was really hard to do right and punted, and 10 years later I'm coming around to that point of view; I still like to think LambdaCore puts quite a few more obstacles in the path of a random asshole with a progbit, but nothing's going to be bulletproof.

And of course LambdaCore has also been inherently more conservative about changing/updating things because of the huge amount of code in LambdaMOO itself that basically acts as a huge boat anchor...

As for documentation, it depends what you want. There are lots of tutorial sorts of things out there. There's Yib's book for lambdacore stuff. Sourceforge has a JHCore page. Or you could download a server, download one of the cores, set it running locally (i.e., run it on the loopback IP or make your firewall block outside connections), connect as Wizard and start reading through the help text.

Links to the most recent server source (*) and programmers' manual are here. The most recent LambdaCore is here

(*) these are UNIX versions which, in theory, should also be buildable on MacOS X, but I don't know if anybody's tried this yet. there is also a windows port, but I'd need to track that down.
(Reply) (Parent) (Thread)
[User Picture]From: nou
2004-08-28 06:00 am (UTC)
You can't, actually. The built-in parser only allows for commands of the form: verb direct-object preposition indirect-object (to be sure, you can write your own $do_command() to do other kinds of parsing, and I believe people have done stuff with this, but it's not in LambdaCore or JHCore).

Oh, bother. I can't believe I'm the only person who's ever wanted to 'write "Hello!" on paper with pencil'. $do_command() hacking sounds scary, but I guess I can give it a go.

As for the choice of cores, if you're starting from scratch and want the latest features, JHCore is the best bet. If you care about being able to port lots of stuff from LambdaMOO or other LambdaCore-derived MOOs, then you want LambdaCore.

I think I'll stick with LambdaCore then; seems to offer the most flexibility in terms of borrowing stuff. And we've built some stuff already so it'd be a pain to swap.

The one big philosophical difference (at least to me anyway) is that JHCore assumes you're running a trusted-programmer MOO (i.e., you need to be more careful about who you give programmer bits to than you do with LambdaCore)

I think the way I'm going to run this, for now at least, is that nobody gets in except as a guest unless they're people that I completely trust not to be malicious.

As for documentation, it depends what you want.

I've seen the Pepsi can, pet rock and wind-up duck tutorials, and I have links to the LambdaMOO and LambdaCore programmers' manuals and the LambdaCore users manual. I think what I'm mostly missing is some kind of FAQ that answers questions like the one I asked Emma to ask you. I've started building one up by noting down every time I have a question and then adding the answer once I've found it out.

If you're interested in having a poke around what we've built so far, it's running on un.earth.li, port 7777.
(Reply) (Parent) (Thread)
[User Picture]From: wrog
2004-08-28 05:16 pm (UTC)
I can't believe I'm the only person who's ever wanted to 'write "Hello!" on paper with pencil'
Depends. If the verb in question unconditionally lives on the player or the room, then you can parse using args in the verb itself. And you can do arbitrarily bizarre things there. The hard case where you need $do_command() hacking is if you want the verb to live on the paper or the pencil.

Everyone has long agreed that the builtin parser sucks.

Also, I shouldn't exaggerate the difficulty of porting things to JHCore; depending on what you're doing, it shouldn't be that hard. JHCore started from a 1992 LambdaCore so there already is rather a lot of commonality. For those facilities that are significantly different (e.g., pronoun_sub), a fair amount of work went into supporting the LambdaCore conventions (e.g., while you do have to translate the underlying *_msg strings to the JHCore representation, the various message-setting commands can do this for you automagically).
(Reply) (Parent) (Thread)
[User Picture]From: nou
2004-08-31 05:38 pm (UTC)
I think I want the hard case - I want my piece of paper to work everywhere. This is going to happen after next week's holiday though, I think :)

What we've written so far uses pronoun_sub quite extensively. I shall have a poke.

Thank you!
(Reply) (Parent) (Thread)
[User Picture]From: nou
2004-08-28 06:17 am (UTC)
Actually, what I'm really missing is some equivalent to CPAN.
(Reply) (Parent) (Thread)
[User Picture]From: wintrmute
2004-08-28 01:14 pm (UTC)
Cool :)

I might have to have a look or join in sometime - if i ever find a big cache of spare time
(Reply) (Thread)
[User Picture]From: nou
2004-08-31 05:43 pm (UTC)
Cool. Drop me a line for user details.
(Reply) (Parent) (Thread)
[User Picture]From: taimatsu
2004-08-30 02:44 pm (UTC)
Sounds cool. I'm interested in having a look at it if that's possible.
(Reply) (Thread)
[User Picture]From: nou
2004-08-31 05:53 pm (UTC)
User details mailed.
(Reply) (Parent) (Thread)
[User Picture]From: jhaelan
2004-08-31 12:19 am (UTC)
Ahh, happy memories tinkering away at CyberSphere (using the LambdaMOO codebase) in the early nineties..

*sighs*
(Reply) (Thread)
[User Picture]From: nou
2004-08-31 05:56 pm (UTC)
I hear from a reliable source that MUDs were, ahem, not good for your first year at college :) Having said that, if you want to play, just ask.
(Reply) (Parent) (Thread)
[User Picture]From: jhaelan
2004-08-31 11:37 pm (UTC)
True, true.. Though I would say it was the ease of communication with friends that was the problem, rather than the rping...
(Reply) (Parent) (Thread)
[User Picture]From: davidcook
2004-09-17 05:50 pm (UTC)
Hello. I'm reading this after noticing your categorisation entries on my friendsfriends page (!).

I can confirm that Muds aren't good for studying - I discovered them around 1990, which was my third year (of a three-year course) at Uni, and barely managed to pass everything that year ...


(just another drive-by commenting ... )
(Reply) (Parent) (Thread)
[User Picture]From: crocotilian
2004-09-05 06:20 pm (UTC)
okay, you might jus' wanna delete this, but i found your journal via a search for people into some good music on lj, & i think, from your interests, that you might be interested in the community musical_mangle. if you wanna apply, please do. if this comment bothers you, i apologize. peace.
(Reply) (Thread)