[MUD-Dev] MUD Coding Staff Structure

Malcolm Tester MTester at cambric.com
Tue Sep 12 11:55:08 CEST 2000


-> -----Original Message-----
-> From: Erik Jarvi [mailto:ejarvi at megsinet.net]
-> Sent: Tuesday, September 12, 2000 10:39 AM
-> To: mud-dev at kanga.nu
-> Subject: Re: [MUD-Dev] MUD Coding Staff Structure
->
-> > On Mon, 11 Sep 2000, Michael Tresca wrote:
-> > Absolutely and I think this is why so many 2.4.5 muds had such a
-> > hard time.  As well as the base code being broken :)
-> 
-> Can you expand on this?  I assume you are talking about LPC. 
->  Shattered uses Dredd's version of LPC, based on 2.4.5, I believe. We 
-> use reset() instead of create(). (Is create correct?) I've only coded
with SWLPC
-> so I don't know what is broken with 2.4.5. I've only taken a cursory look
at
-> Descartes' docs and LDmud. 


LPC is not the same as the 2.4.5 mudlib.  LPC is the language used to create
the mudlib.  2.4.5 was the original version of the lib released that became
widely popular.  (There were earlier versions, but the LPMUD didn't get it's
popularity until 2.4.5)  By broken, I believe Michael is saying that the
mudlib at the time was easily hacked.  By default, valid_read() and
valid_write() didn't accomplish very much in the way of security.  (Those
two functions are what determined security access in the original lpmud).  I
believe Shattered Worlds mudlib is based off the original 2.4.5, but since
it has obviously expanded and grown beyond the original programming, I
wouldn't call it "broken".

After LPMUD was released, the development branched off in two main
directions of the driver.  MudOS was born, and written from scratch (I
think) and went in one direction.  LPMUD itself was no longer maintained by
Lars Penj|, and was taken over by Joern Rennecke, aka Amylaar.  Hence, the
Amylaar driver was born.  When the Amylaar driver was born, the driver took
on two formats.  "native" and "compat".  The driver in compat-mode used
'void reset(int arg){}' where arg=0 for the initial creation.  The driver in
native-mode used 'void create()' for the initial creation, and 'void
reset()' for later resets.  There were also a lot of other variances, such
as the use of uid/euids in native mode for security, and (historically)
creator(), creator_file() for compat-mode.  And the list goes on.  So which
functions you use are determined by which mode of the driver you used.

However, development of the Amylaar driver ceased, with only a fix here and
there every couple years.  In 1998, Lars Duening took over active
development of the driver, and hence LDmud was born.  The first stable
release is known as 3.2.6, and is completely compatible with the original
Amylaar driver.  It served to fix many bugs, document the source, and (as is
the point of this conversation) released an updated 2.4.5 mudlib that would
run out of the box with the driver.  It does offer better security than the
original 2.4.5 lib, and is much better suited if you want to use it as a
base to build a lib.

Since then, LDmud has had two other major releases, 3.2.7, and 3.2.8.  These
are progressively moving away from the traditional Amylaar/LPMUD driver, in
that native-mode and compat-mode no longer exist in the form they did
original.  The driver is now mainly "plain", which is to say, you can
compile it for a native-mode lib, you can compile it for a compat-mode lib,
but that is there for backwards compatibility.  If you were starting from
scratch, you would not have compat OR native.  If you want to use uid/euids,
you can.  As well, the driver allows you to choose what functions to use
when objects are created or reset.  Therefore, if you don't want to use
create() or reset(), you don't have to.  Much of the driver is customizable
now, via the mudlib's master object.  Support is there for MySQL
interaction, IPv6 is in initial stages, etc.

In all this time though, LPC as a language has changed little.  There are
now foreach constructs, a few other things and fixes.  But LPC is still
geared in 3 flavors that I know of.  MudOS's version (which is little
different from LDmud), LDmud's, and what is called LPC4, which was created
by Pen, I think.

If you are interested in the newer 2.4.5 for LDmud, or just interested in
LDmud itself, check out http://www.bearnip.com/lars/proj/ldmud.html

Ok, done with the lpmud history lesson and plug for ldmud :)

Malc is Mindless







_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list