home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / games / mud-faq / lp < prev    next >
Encoding:
Text File  |  1998-10-02  |  89.4 KB  |  1,888 lines

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!newsspool.sol.net!news.sgi.com!nntp.primenet.com!nntp.giganews.com!chippy.visi.com!news-out.visi.com!ptah.visi.com!not-for-mail
  2. From: George Reese <borg@imaginary.com>
  3. Newsgroups: news.answers,rec.answers,rec.games.mud.announce,rec.games.mud.lp
  4. Subject: FAQ: [lpmud] rec.games.mud.lp and LPMuds
  5. Followup-To: rec.games.mud.lp
  6. Reply-To: borg@imaginary.com
  7. Organization: Nightmare LPMud (nightmare.imaginary.com 1701)
  8. Approved: rgm-announce-request@theurgy.digex.net
  9. Lines: 1872
  10. Message-ID: <etEQ1.3437$Ge.11072290@ptah.visi.com>
  11. Date: Thu, 01 Oct 1998 05:31:54 GMT
  12. NNTP-Posting-Host: 209.98.32.12
  13. X-Trace: ptah.visi.com 907219914 209.98.32.12 (Thu, 01 Oct 1998 00:31:54 CDT)
  14. NNTP-Posting-Date: Thu, 01 Oct 1998 00:31:54 CDT
  15. Xref: senator-bedfellow.mit.edu news.answers:141108 rec.answers:44100 rec.games.mud.announce:4198 rec.games.mud.lp:30291
  16.  
  17. Archive-name: games/mud-faq/lp
  18. Last modified: 98/10/01
  19. Version: 2.99
  20. Posting-frequency: bi-weekly
  21.  
  22.                                    LPMud FAQ
  23.                                        
  24.                            Last Modified 98/09/15
  25.                                       
  26.    The LPMud FAQ was originally authored 7 November 1994 by George Reese.
  27.    It could not, however, have been completed on the efforts of a single
  28.    person. See the credits section for a full list of contributors. To
  29.    make comments or suggestions on this FAQ, mail borg@imaginary.com.
  30.    
  31.    Copyright (c) 1994-1998 George Reese.
  32.      _________________________________________________________________
  33.                                       
  34.    This is a list of Frequently Asked Questions asked about LPMuds and
  35.    the newsgroup devoted to them, rec.games.mud.lp. This FAQ is posted
  36.    twice a month to rec.games.mud.lp, rec.games.mud.announce,
  37.    news.answers, and rec.answers. All readers are strongly advised to
  38.    read this FAQ before posting questions to the LPMud news group, as
  39.    your question may already be answered in here.
  40.    
  41.    This FAQ is not intended to be a substitute for the general 3 part mud
  42.    FAQ's. I strongly recommend people new to muds read those first. This
  43.    FAQ deals with a particular class of muds known as LPMuds, and
  44.    therefore does not even attempt to cover information important to
  45.    other classes of muds.
  46.      _________________________________________________________________
  47.                                       
  48.    The LPMud FAQ is divided into four sections:
  49.    
  50.    * Section I: Introduction
  51.           
  52.    * Section II: Playing LPMuds
  53.           
  54.    * Section III: Coding on an LPMud
  55.           
  56.    * Section IV: Starting Your Own LPMud
  57.           
  58.      _________________________________________________________________
  59.                                       
  60.                                  Section I
  61.                                       
  62.                                 Introduction
  63.                                       
  64.     Contents
  65.     
  66.     1. What sort of posts belong in rec.games.mud.lp?
  67.     2. I disagree with something in the FAQ. How do I get the FAQ
  68.        changed?
  69.     3. What is an LPMud?
  70.     4. Isn't Amylaar an LPMud?
  71.     5. Which is the real LPMud?
  72.     6. How did LPMuds get started?
  73.     7. What is the difference between LPMud and Dikus?
  74.     8. What do the terms "alpha testing", "beta testing", and "fully
  75.        open" mean?
  76.     9. Where are some ftp sites with LPMud stuff?
  77.    10. Is there anything about muds on WWW?
  78.    11. What are some mud related mailing lists?
  79.        
  80.      _________________________________________________________________
  81.                                       
  82.     What sort of posts belong in rec.games.mud.lp?
  83.     
  84.    From the rec.games.mud.lp charter of 23 October 1991:
  85.    
  86.    _"The charter of this newsgroup is to discuss topics related to the
  87.    LPMUD variant of MUD. LPMUD is a particular "brand" of MUD that was
  88.    written by Lars Penji and has gained some populatity among MUD players
  89.    in general, Discussions here should be confined to the following
  90.    topics. Briefly, LPMUD uses a "parser" to interpret a 'C' like
  91.    language (called LPC) which defines the actual game being played. Thus
  92.    the various topics of discussion break down like so:
  93.      * Player and 'Wizard' issues
  94.      * Ongoing LPMUD campaigns
  95.      * Parser programming issues and bug fixes
  96.      * LPC (LP 'C" code) programming
  97.      * LPC source code posting
  98.      * LPMUD administrativia and announcements
  99.        
  100.    Topics of discussion which should NOT include this newsgroup are:
  101.      * "LPMUD is (better,worse) than..." flames
  102.      * Non-LPMUD campaigns
  103.      * Non-LPMUD issues or programming"
  104.        
  105.    _Specifically, rec.games.mud.lp supports _almost_ anything dealing
  106.    with LPMuds. The primary rule is that the topic of your posts must
  107.    someway affect the LPMud community. We do not care about Dikus and
  108.    MOOs and so on. They may be very nice servers, but if we wanted to be
  109.    reading about them, we would be reading rec.games.mud.diku and so on.
  110.    
  111.    Beyond that, the charter is a little unclear and out of date. What
  112.    sort of LPMud related posts belong in the newsgroup generally falls
  113.    into anything of general interest to the LPMud community in general or
  114.    one-time administrative announcements for specific muds. This would
  115.    include announcements of downtime, but exclude queries into why a
  116.    particular mud is down.
  117.    
  118.    In particular, the following questions are definitely _not_ welcome in
  119.    rec.games.mud.lp:
  120.    
  121.    * FascistMUD's admins are such jerks!!! They ...
  122.           Why would you post this? I guarantee you will accomplish
  123.           nothing by this. First of all, ALL mud admins have bad days
  124.           where they may do something very unfair. It is the nature of
  125.           things. So you may be the unfortunate victim of a rare set of
  126.           circumstances rather than of a mean admin. Secondly, even if
  127.           the mud admin is a jerk, no one on this newsgroup cares. People
  128.           will play such muds either because the admin is damn good at
  129.           creating a game or because the players are other jerks who like
  130.           the atmosphere of lawlessness. Players like you may login from
  131.           time to time, but eventually they will figure it out.
  132.           
  133.    * Do not post mudsex sessions
  134.           An individual's sexual activities are not matters for public
  135.           derision. How people choose to express themselves sexually is a
  136.           private issue as long as only consenting adults are involved.
  137.           
  138.    * Where is CheeseMUD? I have not been able to connect all day!
  139.           If it is going to be down a long time, the admins should post
  140.           to rec.games.mud.announce. Otherwise, it is either a short
  141.           connection loss or it is just your problem. _Do not post these
  142.           questions here or anywhere!!!_
  143.           
  144.    * Advertisements for muds
  145.           These belong in the newsgroup rec.games.mud.announce.
  146.           
  147.    In the event someone does post improperly to the newsgroup, readers
  148.    should quietly inform the poster of the misstep via email. In the
  149.    past, violations of the Charter or FAQ have erupted in
  150.    counter-productive flame wars. By emailing the offender, you
  151.    accomplish both the tasks of informing the person and of keeping the
  152.    newsgroup free of pointless arguments.
  153.    
  154.      _________________________________________________________________
  155.                                       
  156.     I disagree with something in the FAQ. How do I get the FAQ changed?
  157.     
  158.    You should email the maintainer of the FAQ. Change requests fall into
  159.    three different categories. I handle the requests differently based on
  160.    the category into which a given request falls. The three categories
  161.    are:
  162.     1. Matters of fact
  163.     2. Matters of opinion
  164.     3. Matters of consensus
  165.        
  166.    The first kind of issue are matters of fact--i.e. the status of mud
  167.    software, the email address of a mailing list, etc.--then I will
  168.    simply add that to the FAQ. If you are not directly responsible for
  169.    the issue in question, I might request an email from the person who
  170.    is.
  171.    
  172.    Matters of opinion will likely not replace existing passages, but
  173.    instead appear alongside them. For example, the FAQ might state that
  174.    capturing player emails is a good idea. Someone who disagreed strongly
  175.    and presented an argument could email that argument to me. Since this
  176.    is a matter of opinion, the new opinion would be added as an opposing
  177.    opinion. In other words, it would not replace the existing clause.
  178.    
  179.    Certain issues, such as the interpretation of the Charter, are neither
  180.    matters of fact nor matters of opinion--they are matters of consensus.
  181.    These are parts of the FAQ for which only one point of view can be
  182.    right, yet a certain minority of people may nevertheless disagree
  183.    with.
  184.    
  185.    The FAQ has been around for a long time and represents the consensus
  186.    of the newsgroup. Consensus does sometimes change, and the FAQ needs
  187.    to be able to adjust with changes in consensus. For matters of
  188.    consensus, I will ask anyone making a request to provide evidence that
  189.    the consensus of the group has changed. Because the FAQ is established
  190.    as the consensus of the newsgroup, the burden of proof is entirely on
  191.    the requester. The nature of that proof is naturally dependent on the
  192.    issue at hand.
  193.    
  194.      _________________________________________________________________
  195.                                       
  196.     What is an LPMud?
  197.     
  198.    An LPMud is one of many classes of muds, or multi-user domains. A
  199.    multi-user domain is defined solely with respect to its ability to
  200.    allow multiple real individuals to come together in some sort of
  201.    environment. Although the most common environment is a gaming
  202.    environment, muds need not be games. In fact, among other uses of MUDs
  203.    that I know of, there are virtual colleges, a mud where victims of
  204.    abuse can come together in a productive environment, and muds designed
  205.    to bring students with disabilities into social contact with one
  206.    another and others. The single defining theme for mud is therefore
  207.    being a virtual environment where multiple people come in contact.
  208.    
  209.    An LPMud specifically allows the users to manipulate the environment
  210.    through a language called LPC. LPMuds are computer programs which
  211.    listens to the internet for people attempting to connect, reads LPC
  212.    files, and acts upon those LPC files according to the rules of the LPC
  213.    language to create the virtual environment. Currently, I know of 6
  214.    major LPMud servers:
  215.    
  216.    * CD
  217.           
  218.    * DGD
  219.           
  220.    * LPC4
  221.           
  222.    * LPMud
  223.           
  224.    * MudOS
  225.           
  226.    * Shattered World
  227.           
  228.    With most other mud games, users do not have access to create in the
  229.    language used by the mud. LPC is used not only to give users such an
  230.    ability, but it is also designed with both ease and power in mind.
  231.      _________________________________________________________________
  232.                                       
  233.     Isn't Amylaar an LPMud?
  234.     
  235.    Amylaar is a person, not an LPMud. He is the primary author and torch
  236.    bearer of the LPMud name. Given the generic sound of the term "LPMud"
  237.    these days, people often refer to LPMud 3.2 as the Amylaar driver.
  238.      _________________________________________________________________
  239.                                       
  240.     Which is the real LPMud?
  241.     
  242.    LPMud 3.2 is the official continuation of the original LPMud server,
  243.    however, all servers listed above are equally real. All have two
  244.    traits that make a mud an LPMud:
  245.     1. The environment is created through files written in LPC.
  246.     2. The environment can change as new files are added and old ones
  247.        changes, even while the game is running.
  248.        
  249.      _________________________________________________________________
  250.                                       
  251.     How did LPMuds get started?
  252.     
  253.    I am not the greatest historian, and may be wrong on some important
  254.    facts here, but this is the first shot at the FAQ, so here goes...
  255.    Once upon a time, there was Lars Pensj÷ (the ÷ being an o with two
  256.    dots over it... to an American, that is roughly pronounced "Penscha"),
  257.    who wrote the original LPMud coming from an AberMUD background. If you
  258.    play current LPMud's of the LPMud type, you won't really notice much
  259.    of a difference from the original. From the coders' point of view
  260.    however, LPC is nothing like it was with the original. For a long
  261.    time, there was only LPMud run by Lars with patches by everyone under
  262.    the sun. The original LPMud run by Lars was called Genesis. Its base
  263.    town called Larstown was taken mostly from AberMUD.
  264.    
  265.    Eventually, others got tired of waiting to see their patches added to
  266.    Lars' driver, and Lars was working on version 3.0 of his driver as he
  267.    was gradually losing interest in the project altogether. Version 3.0
  268.    turned out to be buggy as hell, and generally unworkable for a real
  269.    LPMud. CD, LPC4, LPMud, and MudOS, all derive from this server as
  270.    people saw good things in it and began creating working versions of
  271.    LPMud 3.0 after their own concepts of mud server design.
  272.    
  273.    Unlike the others, DGD was created from scratch. It therefore is
  274.    missing a lot of the baggage which has come down from the beginning of
  275.    time in the other drivers. Shattered Worlds, on the otherhand, derives
  276.    from LPMud 2.4.5.
  277.      _________________________________________________________________
  278.                                       
  279.     What is the difference between LPMud and Dikus?
  280.     
  281.    This section is almost entirely quoted from a post by Tim Hollebeek:
  282.    The main difference between Dikus and LPs is that a Diku server
  283.    provides a game, while an LP server provides a language in which to
  284.    write a game. This means that an LPMud server is more like your perl
  285.    or python binaries than a Diku binary. An LPMud has an extra layer in
  286.    which the game is written, called the mudlib or object library. The
  287.    advantage Diku enjoys is that it can be more efficient since the game
  288.    is more low-level. The other edge of this sword, however, is that it
  289.    is very hard to make changes to a Diku and it requires a high level of
  290.    technical knowledge.
  291.    
  292.    An LPMud, on the other hand, is extremely flexible and requires a
  293.    minimal amount of technical knowledge in order to build the same
  294.    things (or even more complex things) as exist on Dikus. As a
  295.    consequence, LPmuds tend to be more widespread and reflect a greater
  296.    diversity of imagination.
  297.    
  298.    The truth about LP's is that it is virtually impossible for a player
  299.    to know they are on an LP; the driver is simply too far removed for it
  300.    to make any difference to the player in terms of look and feel. Many
  301.    LP's, however, do have a common look and feel because they share the
  302.    same mudlibs.
  303.    
  304.      _________________________________________________________________
  305.                                       
  306.     What do the terms "alpha testing", "beta testing", and "fully open" mean?
  307.     
  308.    Generally, a mud goes through three basic stages. The first stage,
  309.    "alpha testing", is a developmental mode in which players are rarely
  310.    allowed access to the mud. Things are in such a disarray or in a
  311.    flurry of changes that playing a consistent game is impossible. In the
  312.    "beta testing" stage, a mud is generally opened to players solely for
  313.    the sake of testing that the mud works. Without actual play testing,
  314.    it is impossible to determine if a mud can handle being fully open.
  315.    muds in either of the above stages generally will not compensate
  316.    players for mishaps due to bugs in the game, and they will often even
  317.    purge players from the mud. The purging is done either because old
  318.    player objects are no longer compatible with new ones or because the
  319.    mud needs to be re-balanced to fit new code.
  320.    
  321.    In the final stage, "fully open", a mud is just that, fully open. That
  322.    means you can expect certain standards from the mud, including such
  323.    things as not dying from bugs. Nothing is ever bug free, so generally
  324.    fully open muds will compensate players for mishaps which occur
  325.    because of a bug. On the flip side, these muds usually also smite
  326.    players who gain from bugs in the system.
  327.      _________________________________________________________________
  328.                                       
  329.     Where are some ftp sites with LPMud stuff?
  330.     
  331.    See Section IV: Where can I find all of this stuff?
  332.      _________________________________________________________________
  333.                                       
  334.     Is there anything about muds on WWW?
  335.     
  336.    The following is a list of LPMud related WWW URL's, a few of which are
  337.    even written in the mud programming language LPC:
  338.    
  339.    * http://www.bat.org
  340.           The BatMUD WWW Server
  341.           
  342.    * http://www.lostsouls.org
  343.           The Lost Souls WWW Server
  344.           
  345.    * http://www.imaginary.com
  346.           The Imaginary WWW Server
  347.           
  348.    * http://www.pvv.unit.no/viking
  349.           The Viking mud WWW Server
  350.           
  351.      _________________________________________________________________
  352.                                       
  353.     What are some mud related mailing lists?
  354.     
  355.    The following lists use the Mailman mailing list software. Click on
  356.    the link to subscribe to those lists:
  357.    
  358.    * http://list.imaginary.com/mailman/listinfo/foundation-mudlib
  359.           The Foundation Object Library Mailing List
  360.           
  361.    * http://list.imaginary.com/mailman/listinfo/intermud
  362.           The Intermud Protocols Mailing List
  363.           
  364.    * http://list.imaginary.com/mailman/listinfo/lima-mudlib
  365.           The LIMA Mudlib Mailing List
  366.           
  367.    * http://list.imaginary.com/mailman/listinfo/lpc-language
  368.           The LPC Language Mailing List
  369.           
  370.    * http://list.imaginary.com/mailman/listinfo/mudos
  371.           The MudOS General Discussion Mailing List
  372.           
  373.    * http://list.imaginary.com/mailman/listinfo/mudos-bugs
  374.           The MudOS Bug Reporting List
  375.           
  376.    * http://list.imaginary.com/mailman/listinfo/mudos-develop
  377.           The MudOS Developers' Mailing List
  378.           
  379.    * http://list.imaginary.com/mailman/listinfo/mudos-patches
  380.           The MudOS Patch Distribution List
  381.           
  382.    The following lists use the majordomo software. To subscribe, mail
  383.    majordomo at the sites mentioned with "subscribe list-name" in the
  384.    body of your mail. To get more information on the lists below, mail
  385.    majordomo at the site mentioned with "info list-name" in the body of
  386.    the mail. Naturally, list-name should be replaced with the appropriate
  387.    list name.
  388.    
  389.    For example, to subscribe to the lpc-language mailing list
  390.    lpc-language@imaginary.com, you do the following:
  391.     1. mail majordomo@imaginary.com
  392.     2. subject is irrelevant, body says "subscribe lpc-language"
  393.     3. the list will then confirm you have been added by mail
  394.        
  395.    To mail a post to the mailing list, simply mail
  396.    lpc-language@imaginary.com and proceed as you would as if you were
  397.    mailing a single person.
  398.    
  399.    * amylaar-users@nightfall.org
  400.           The LPMud 3.2 and 3.2.1 Users Mailing List
  401.           
  402.    In addition, the TMI-2 mailing list uses different mailing list
  403.    software which can be subscribed to by visiting the list page at
  404.    http://www.mudlib.org/mailman/listinfo/tmi-2.
  405.    
  406.    Individual muds may have their own mailing lists as well. Check with
  407.    your LPMud for details. For people running lists with an audience
  408.    beyond a single mud, please let me know of your list. If you use list
  409.    software not listed, I need the name of the list, how to subscribe,
  410.    and how to get more information.
  411.    
  412.      _________________________________________________________________
  413.                                       
  414.                                  Section II
  415.                                       
  416.                                Playing LPMuds
  417.                                       
  418.     Contents
  419.     
  420.     1. How do I play an LPMud?
  421.     2. But I am using windows!
  422.     3. How do I get a list of LPMuds?
  423.     4. Are all LPMuds in English?
  424.     5. Ok, the mud is asking me for a name, what do I do? 
  425.     6. They told me I had to register!
  426.     7. Name and password set, what next?
  427.     8. I don't want anyone knowing my email address!
  428.     9. Is it asking me for my gender?
  429.    10. What does it mean by race?
  430.    11. What is a class? What is a guild?
  431.    12. I am in the mud, what do I do?
  432.    13. What are some common commands?
  433.    14. What is an alias?
  434.    15. Why is the mud admin ignoring me?
  435.    16. The admins are being unfair, don't I have rights?
  436.    17. What about freedom of speech?
  437.    18. What else is there?
  438.        
  439.      _________________________________________________________________
  440.                                       
  441.     How do I play an LPMud?
  442.     
  443.    You must first find the internet address of the mud you wish to play.
  444.    Once you find the address, most often people use the "telnet" program
  445.    to connect to this address. The mud FAQ has an excellent section on
  446.    MUD clients, which are alternatives to the plain vanilla "telnet"
  447.    program. However, generally speaking, with "telnet", you can access
  448.    the mud of your choice by issuing the command:
  449.  
  450.         telnet address port
  451.  
  452.    For example (% is considered your prompt):
  453.         % telnet nightmare.imaginary.com 1701
  454.         % telnet 129.10.114.86 5555
  455.  
  456.    And so on. Some telnet programs do not allow you to pass arguments at
  457.    the command line. Instead, you get something like this:
  458.  
  459.         % telnet
  460.         telnet> open
  461.         (to) nightmare.imaginary.com 1701
  462.  
  463.    Once you succeed, you will get a welcoming screen which should say the
  464.    name of the LPMud and ask you for a name. A common error people will
  465.    make is leaving off the number at the end. If you do that, the telnet
  466.    program assumes you mean to go to port 23, and it will give you a
  467.    login prompt to the host machine.
  468.    
  469.    In addition, _some_ VMS telnet programs use the following syntax:
  470.         telnet 198.174.169.120/port=1701
  471.  
  472.      _________________________________________________________________
  473.                                       
  474.     But I am using windows!
  475.     
  476.    The telnet program that comes with Windows95 and Windows NT is
  477.    extremely anemic and not much good for anything. Other versions of
  478.    Windows do not even come with a telnet program. To connect to a mud
  479.    using the default Windows95/NT telnet, go to the 'Start' menu and
  480.    click on the 'Run' menu item. In the text field, enter:
  481.  
  482.         telnet nightmare.imaginary.com 1701
  483.  
  484.    Of course, you should use the proper address for your mud as described
  485.    in the telnet section. This will connect you to the mud, but it may be
  486.    a bit confusing. The first thing you need to do is turn echo on so
  487.    that you can see what you are typing. Go to the 'Terminal' menu and
  488.    click 'Preferences'. Check the 'Local Echo' check box. You may also
  489.    want to resize the window so there are no scroll bars.
  490.    
  491.    You will not be able to stand playing a mud this way for very long. It
  492.    is highly recommended you download a Windows mud client ASAP before
  493.    you go insane. In the least, you might want to grab a useable telnet
  494.    program like EWAN or CRT.
  495.    
  496.      _________________________________________________________________
  497.                                       
  498.     How do I get a list of LPMuds?
  499.     
  500.    I know of no place that lists ONLY LPMud's, however, there is Doran's
  501.    Mudlist, which is produced semi-regularly and lists muds by type. You
  502.    thus have all your LPMuds grouped together. You can find it posted to
  503.    rec.games.mud.announce.
  504.    
  505.    MUDs connected to the Intermud generally have mudlists which they
  506.    maintain dynamically based on which muds they are currently talking
  507.    to:
  508.    
  509.    * http://ie.imaginary.com:7885/gateways/mudlist
  510.           The Idea Exchange Dynamic Intermud Mudlist
  511.           
  512.    Keep in mind, however, these dynamic lists hold only LPMuds which
  513.    support intermud communication. They are by no means full lists. You
  514.    will also find that many muds on this list are in some sort of
  515.    developmental stage.
  516.      _________________________________________________________________
  517.                                       
  518.     Are all LPMuds in English?
  519.     
  520.    No. To provide a list of such muds is beyond the scope of this FAQ.
  521.    Check the mudlists for a full and current listing. However, I would
  522.    like to know about other languages which might be supported in the
  523.    LPMud world, so please mail me if you have a mud in a language in
  524.    other than English, German, or Swedish. Known languages:
  525.    
  526.    * Chinese
  527.           
  528.    * Dutch
  529.           
  530.    * English
  531.           
  532.    * German
  533.           
  534.    * Hungarian
  535.           
  536.    * Polish
  537.           
  538.    * Swedish
  539.           
  540.      _________________________________________________________________
  541.                                       
  542.     Ok, the mud is asking me for a name, what do I do?
  543.     
  544.    Make up a name. Avoid using your real name or common names, real and
  545.    mythical. You want not only to give character to your persona, but you
  546.    also do not want everyone saying "Hey! Aren't you Bob from
  547.    JustAnotherMUD"? I chose the name Descartes, because I was a
  548.    philosophy major in college. In general, it is safe to assume any name
  549.    consisting only of more than two characters and less than ten (a to z)
  550.    is acceptable on any mud. Some muds allow really long names with
  551.    spaces, apostrophes, hyphens, and other marks. Others are in between
  552.    the extremes. Try the name you want. If the mud will not allow it, it
  553.    will tell you, and it should tell you why.
  554.    
  555.    After making up a name, one of two things will happen. Either you will
  556.    be prompted for a password, meaning you have picked a name someone
  557.    else is using, or it will ask you to create a password, meaning you
  558.    are a new character. If the first thing happens, just try again with
  559.    another name. If the second happens, you are in good shape.
  560.    
  561.    To create passwords, make up one different than the one you use to
  562.    access computers. Although muds encrypt passwords for storage, nothing
  563.    prevents an unscrupulous mud admin from intercepting that password and
  564.    using it for unethical purposes. It is also recommended that you use a
  565.    password with numbers and mixed upper and lower case letters in it.
  566.      _________________________________________________________________
  567.                                       
  568.     They told me I had to register!
  569.     
  570.    Some muds require all their players to register before being allowed
  571.    to play. Also, it may be the case that someone from the same place as
  572.    you has been causing trouble, so the admins of the mud in question
  573.    have decided to require only people from that site to register. If
  574.    this is the case with the mud you wish to play, simply follow the
  575.    instructions they give. In most cases they will give you an email
  576.    address where you should send your registration.
  577.    
  578.      _________________________________________________________________
  579.                                       
  580.     Name and password set, what next?
  581.     
  582.    This is where you get to see why there is so little in common among
  583.    LPMuds from the player's point of view. Some LPMud's will ask you a
  584.    series of questions about who you are and what sort of character you
  585.    would like. Others ask nothing more. Among the questions you might be
  586.    asked are: what is your email address? what is your real name? what
  587.    gender would you like to play? what race would you like to be? what
  588.    class would you like to be? etc.
  589.      _________________________________________________________________
  590.                                       
  591.     I don't want anyone knowing my email address!
  592.     
  593.    MUD Administrators have a legitimate need to know your email address.
  594.    No one else does. If a mud requires you to give your email address it
  595.    should either offer you the option of keeping it private, or it should
  596.    automatically keep the email private. If they do not keep your email
  597.    private and you desire privacy, do not play the mud. Do not complain,
  598.    however, that they ask for it.
  599.    
  600.    _Note:_
  601.    There seems to be some difference of opinion on this one, so I decided
  602.    to quote one of the comments:
  603.    
  604.      "Well, I have to disagree with this section: E-mail addresses are
  605.      very difficult to verify in bulk, and really not worth the trouble
  606.      unless you perform site registration. I believe the only people you
  607.      have a legitimate need for an email address from is your wizards.
  608.      Other than that, knowing the ip they log in from should be more
  609.      than sufficient." -Rust (John Viega)
  610.      
  611.      _________________________________________________________________
  612.                                       
  613.     Is it asking me for _my_ gender?
  614.     
  615.    No. The game wants to know what gender you would like your _character_
  616.    to be. This means you can play a character of the opposite gender,
  617.    your own gender, or one of the alternate gender types which might be
  618.    offered. The other side of the coin to this, however, is that you
  619.    should _never_ count on other people in real life being the gender of
  620.    the character they play.
  621.      _________________________________________________________________
  622.                                       
  623.     What does it mean by race?
  624.     
  625.    Many LPMuds have a feature called character races. The term "race" in
  626.    these instances is not the same as the term used in modern society. In
  627.    fact, the LPMud term race would more correctly be referred to as
  628.    species. In fantasy type LPMuds, you will often see a selection of
  629.    "races" like human, orc, artrell, gnome, etc. When you are asked to
  630.    choose a race, a list of possible races should be provided for you.
  631.      _________________________________________________________________
  632.                                       
  633.     What is a class? What is a guild?
  634.     
  635.    In general, a class is a grouping of players with common abilities. A
  636.    guild as well can be said to have the same definition. Many muds, if
  637.    they use either of these concepts at all, add some very individual
  638.    nuances. To muds which do not have classes or guilds, the concepts are
  639.    naturally irrelevant. Those which have one or the other are often
  640.    using the terms in an interchangeable fashion. Finally, those muds
  641.    which have both often define class in a more generic manner than
  642.    guild. For example, on Nightmare, a class is like a profession and the
  643.    guild like a particular job. You might have people in the fighter
  644.    class who are in the templars guild, and others who are in the rangers
  645.    guild. In short, the guild is a way of specializing your class
  646.    abilities.
  647.    
  648.    Other muds allow "multi-classing", which may mean joining multiple
  649.    guilds, classes, or both. It is always best to check out the "help
  650.    guild" and "help class" command on any given mud to see how it defines
  651.    these terms.
  652.      _________________________________________________________________
  653.                                       
  654.     I am in the mud, what do I do?
  655.     
  656.    There is no one answer to this question, as the answer will vary from
  657.    MUD to mud. No matter what, however, you should see if the mud has a
  658.    "faq" command to get a listing of that mud's frequently asked
  659.    questions. In addition, you should learn how to use the "help" command
  660.    as well as find out about the rules governing that mud.
  661.      _________________________________________________________________
  662.                                       
  663.     What are some common commands?
  664.     
  665.    The following commands exist on virtually all LPMuds. () around part
  666.    of a command indicate that that part is optional. [] indicates that
  667.    the text should not be taken literally. These commands naturally are
  668.    not likely to be found on non-English muds.
  669.    
  670.    * help ([topic])
  671.           Gives you help. If you specify a topic, you get help on that
  672.           topic. If you just type help, you will either get help on where
  673.           to find other help, or you will be put into a help menu.
  674.           
  675.    * tell [player] [message]
  676.           Sends the string [message] to the player whose name is [player]
  677.           anywhere on the mud. Some LPMuds do not allow players to tell
  678.           to one another as it is viewed unrealistic.
  679.           
  680.    * say [message]
  681.           Sends [message] to everyone who is in the same mud room as you.
  682.           This command is almost always aliased to "'", such that "'hi!"
  683.           is the same thing as typing "say hi!".
  684.           
  685.    * who
  686.           Gives you a list of everyone connected to that mud.
  687.           
  688.    * look
  689.           Gives you a description of the mud room in which you are in.
  690.           
  691.    * look at [object]
  692.           Gives you a description of the object in question.
  693.           
  694.      _________________________________________________________________
  695.                                       
  696.     What is an alias?
  697.     
  698.    As with UNIX, most LPMuds provide some sort of method for creating
  699.    "aliases". An alias is simply a way in which you can have a easy to
  700.    type command represent another command. For example, you will often
  701.    want to type the phrase "get all from corpse" on any LPMud. It is much
  702.    easier to make an alias so that whenever you type "gac", the LPMud
  703.    interprets that as "get all from corpse".
  704.    
  705.    In order to create aliases, you need to know how your particular mud
  706.    handles aliasing. Older muds use a device called a quicktyper. Newer
  707.    MUDs have alias commands built in. Try issuing "help alias" and "help
  708.    quicktyper" commands in order to find out how aliases are handled on
  709.    your mud. If your mud uses quicktypers, you will have to go find the
  710.    quicktyper object before you can create aliases. Ask any other player
  711.    on such a mud where there quicktyper can be found.
  712.      _________________________________________________________________
  713.                                       
  714.     Why is the mud admin ignoring me?
  715.     
  716.    Admins in particular are prone to a mud disease called "idling". This
  717.    means that the lights are on, but nobody is home. An idle person is
  718.    simply someone logged in to the game, but who is perhaps not actually
  719.    at their computer terminal. That person is thus not really ignoring
  720.    your question, since the person is never actually seeing it.
  721.    
  722.    If the admin is not idling, chances are that person is being
  723.    overwhelmed with questions or is actually coding online. Many LPMuds
  724.    will tell you that the person to whom you are talking is "idle" or
  725.    "editing". If you get that response to a tell, do not expect an answer
  726.    back right away. In addition, if it says the admin is editing (or
  727.    anyone else for that matter), then it is generally considered rude to
  728.    continue telling to that person as it makes it difficult for the
  729.    person to edit.
  730.    
  731.    Many people these days have the ability to be on several muds at the
  732.    same time. It is therefore entirely possible that the person to whom
  733.    you are trying to talk is in fact looking at another window. To get
  734.    that person's attention, it may be ok to "beep" them (by sending a
  735.    control-G in a say or tell). Some people do not like others to do this
  736.    to them, however, so be careful about doing it too much.
  737.      _________________________________________________________________
  738.                                       
  739.     The admins are being unfair, don't I have rights?
  740.     
  741.    The short answer is yes, you have the right not to play the game. The
  742.    long answer is much more complex. First off, any reasonable set of
  743.    admins who wish to create a game which people will enjoy will
  744.    enumerate the sorts of behaviour you can expect from them. In other
  745.    words, admins on fun muds will state the rules of the game ahead of
  746.    time and will not deviate from those rules. That way you know what to
  747.    expect. In addition, if you do not like the rules, you don't get
  748.    involved with playing the game.
  749.    
  750.    What prevents an admin from breaking their own rules? Absolutely
  751.    nothing. In one sense, a mud is like someone else's swimming pool. You
  752.    have absolutely no right to swim there, and they have the right to
  753.    throw you out just because you talk funny or say things they don't
  754.    like. Fortunately, there are plenty of muds out there with civil
  755.    administrations to make this nothing more than a passing nuisance.
  756.    
  757.    A common misconception is that mud admins administrate muds for power,
  758.    and that arbitrary behaviour is a way of exercising that power. Though
  759.    there may be a few misguided individuals out there who do in fact
  760.    administrate muds for the sake of power, the fact is that no mud
  761.    administrator has any power over you. Remember, the worst thing any
  762.    admin can do to you is make you go play somewhere else.
  763.    
  764.    A final thing to remember is that muds evolve and rules evolve with
  765.    the mud. Just because rules change does not mean the admins are being
  766.    arbitrary. Arbitrariness is reflected in sometimes applying rules and
  767.    sometimes ignoring them, not in creating new rules to fit unforseen
  768.    situations.
  769.    
  770.      _________________________________________________________________
  771.                                       
  772.     What about freedom of speech?
  773.     
  774.    No, not even freedom of speech. Again, reasonable admins will clarify
  775.    in publically available rules what sort of speech (hate speech,
  776.    offensive language, or whatever) is not acceptable on that mud. You
  777.    may or may not agree with those rules or the political beliefs those
  778.    rules represent, but at least you do know where you stand on the mud.
  779.    It is thus up to you to decide if you can play under those rules or
  780.    not. In the event you encounter an unreasonable mud, there is nothing
  781.    much you can do but decide to leave. If it is a commercial mud,
  782.    however, deciding to leave can be some sort of leverage.
  783.    
  784.    A common source of friction between players and admins is where
  785.    players decide to criticize admins. Most often, the players are not
  786.    really trying to criticize the admins so much as inspire positive
  787.    changes to make a game they love even better. In those cases, it is
  788.    always good to remember that the admin is a real human who is closely
  789.    involved with what the mud is. If you keep that in mind, you can often
  790.    help bring positive changes to the mud you play without
  791.    unintentionally striking a hidden chord in a sensitive admin.
  792.    
  793.      _________________________________________________________________
  794.                                       
  795.     What else is there?
  796.     
  797.    Explore the mud! Most gaming muds have places called "newbie" areas
  798.    which are simplistic places for people new to the game to go and get
  799.    the hang of things. When you first log in to a new mud, you should ask
  800.    the others where the newbie area is. Also, read the login screen and
  801.    news which scrolls across your screen at login time, as they contain
  802.    important information about characteristics unique to the mud you are
  803.    playing.
  804.    
  805.    Ask people questions. Just make sure you have read the help files
  806.    first, or you will be sure to annoy someone. In addition, try not to
  807.    choose a single person for your queries. Constantly being asked
  808.    questions by the same person can often annoy people as easily as
  809.    stupid questions.
  810.      _________________________________________________________________
  811.                                       
  812.                                 Section III
  813.                                       
  814.                              Coding on an LPMud
  815.                                       
  816.     Contents
  817.     
  818.     1. What is coding?
  819.     2. What is LPC?
  820.     3. How do I get to code on an LPMud?
  821.     4. How do I learn to code?
  822.     5. What is The Idea Exchange?
  823.     6. How do I learn to code a room/monster/weapon/armou...?
  824.     7. But you said that all LPMuds use LPC!
  825.     8. My code is not working! How do I fix it?
  826.     9. What is an efun? an lfun? a kfun? a sefun?...
  827.    10. Can I take my area from LPMud X to LPMud Y?
  828.    11. Can I code offline?
  829.    12. Why does the mud use ed? Why not have the mud use vi/emacs...?
  830.    13. How do I put my code into the game?
  831.        
  832.      _________________________________________________________________
  833.                                       
  834.     What is coding?
  835.     
  836.    Coding is writing files for the computer to read. In the case of
  837.    LPMuds, this means writing files in a computer language called LPC.
  838.    The LPMud server reads these files and interprets what those files are
  839.    telling the computer to do when certain player actions occur. Often
  840.    that means things like displaying a description of a room when you
  841.    enter it and so on. The LPC files which make up the backbone of any
  842.    mud are called the mudlib. Coders use the mudlib code in such a way as
  843.    not to have to rewrite many of the most common instructions over and
  844.    over again. With most good mudlibs, therefore, there is more creation
  845.    involved than coding.
  846.      _________________________________________________________________
  847.                                       
  848.     What is LPC?
  849.     
  850.    LPC is an object building language created by the author of the
  851.    original LPMud server, standing for Lars Pensj÷ C. Structurally, it is
  852.    much like the more popular programming language C. Designed with LPMud
  853.    object building specifically in mind, it puts the power of game
  854.    building in the hand of the general user.
  855.      _________________________________________________________________
  856.                                       
  857.     How do I get to code on an LPMud?
  858.     
  859.    Policies vary from mud to mud. Some muds require you to make a certain
  860.    player level before being allowed to code. Others require you to pass
  861.    a test or fillout an application. Still others just let anyone come on
  862.    and code. If you really want to get in on things, the best thing to do
  863.    is either to talk to the admins of the mud you are playing, or go to
  864.    The Idea Exchange (ie.imaginary.com 7890) The Idea Exchange has a
  865.    newsgroup for coders looking to code and another for muds looking for
  866.    coders. Keep in mind that many muds which are open to players already
  867.    have more coders than they need.
  868.      _________________________________________________________________
  869.                                       
  870.     How do I learn to code?
  871.     
  872.    There are two parts to learning how to code on your mud:
  873.     1. Learning LPC
  874.     2. Learning your mud's object library (mudlib)
  875.        
  876.    Each mud should have detailed documentation on part 2. Two LPC
  877.    textbooks, a beginner and an intermediate, exist to take care of part
  878.    1. You can get the textbooks via ftp at
  879.    ftp://ftp.imaginary.com/pub/LPC/doc. Documentation, however, will not
  880.    really do anything without looking at examples, practicing, and
  881.    talking to more experienced coders. Examples should be everywhere on
  882.    your mud (though they are not necessarily good examples). Practicing
  883.    is simply just copying code you do not understand, making small
  884.    changes to it to see what they do, and learning from what happens. To
  885.    learn more about how to code from others, talk to more experienced
  886.    coders on your own mud or visit The Idea Exchange which is designed to
  887.    help people learn LPC.
  888.      _________________________________________________________________
  889.                                       
  890.     What is The Idea Exchange?
  891.     
  892.    The Idea Exchange is centered around the advancement of LPMud
  893.    technology and the promotion of its use. On The Idea Exchange you will
  894.    find many of the people responsible for the software commonly used to
  895.    build LPMud environments, including the authors of drivers and
  896.    mudlibs. It is an excellent place for learning about LPC and
  897.    discussing new ideas.
  898.      _________________________________________________________________
  899.                                       
  900.     How do I code a monster/room/weapon/armour...?
  901.     
  902.    Read your mud's documentation, as this varies greatly from mud to mud.
  903.    
  904.      "Also, questions like that are almost impossible to answer in any
  905.      other way than showing an example. Thus, a much better question is:
  906.      'Where can I find an example of how to create a XXX?' or 'I don't
  907.      quite understand this part of the example on how to...'" -Drevreck
  908.      (Lars Syrstad)
  909.      
  910.      _________________________________________________________________
  911.                                       
  912.     But you said all LPMuds use LPC!
  913.     
  914.    Yes, they do. However, they do not all use the same mudlib. The mudlib
  915.    is the basic LPC files you make use of then you write your LPC files.
  916.    The LPMud server in turn interprets your files and stores them in
  917.    memory. Two muds using different mudlibs therefore can be wildly
  918.    different from one another. And since the mudlibs are so different,
  919.    the files you will write will be equally different.
  920.    
  921.    An analogy might be that of a human dialect. Quebecois French and
  922.    Continental French often use different words and such in order to
  923.    express ideas. In spite of this, the language structure is the same.
  924.    So, both are still French even though you sometimes need to say
  925.    different things in order to mean the same thing.
  926.    
  927.    In writing an object in LPC, you are almost always using the mudlib's
  928.    LPC files rather than totally writing files from scratch. You do this
  929.    through something called inheritances. Inherited code which exists on
  930.    one mud may not exist on your mud, or may exist differently. Therefore
  931.    when you try to use that code, it will not work as you expect even
  932.    though both are in LPC.
  933.      _________________________________________________________________
  934.                                       
  935.     My code is not working! How do I fix it?
  936.     
  937.    First, determine if the problem is with...
  938.      * the object failing to load
  939.      * the code causing an error when it runs
  940.      * no errors, it is just the expected things do not happen
  941.        
  942.    Now that you know what "type" of error you have, you need to isolate
  943.    it. Isolating it depends on the type of bug...
  944.    
  945.    _the object fails to load_
  946.           You have the bug isolated for you you in your error file. The
  947.           location of the error log depends on the file name of the
  948.           object with the error. It also depends on the way your mudlib
  949.           logs such errors. Nightmare, for example, logs compile errors
  950.           to /log/errors/std for obejcts in /std, etc, and
  951.           /log/errors/descartes for objects from /realms/descartes. TMI-2
  952.           would log my errors to /u/d/descartes/log and mudlib errors to
  953.           /log/* with sensitive logging going to /log/adm/*. _know_ with
  954.           MudOSthe driver does isolate the error for you to a useful
  955.           degree of certainty. More on this later.
  956.           For LPMud 3.2.1, you can use the: #pragma verbose_errors
  957.           preprocessor directive to make compile time errors include a
  958.           bit of context in error messages. Some mudlibs turn this
  959.           #pragma on by default.
  960.           
  961.    _an error occurs during execution_
  962.           These are logged in the mud's runtime error logged, and they
  963.           ALWAYS reflect the exact line where something happened. On
  964.           MudOS muds before 0.9.20, the system runtime log was
  965.           /log/debug.log. The mudlib in later versions has the option of
  966.           naming it whatever.
  967.           
  968.      "Brought over from LPMud 3.[01].x , LPMud 3.2 uses
  969.      /`hostname`/debug.log. LPMud 3.2.1 allows you to pass the option
  970.      --debug_file to change this default. If there is a triple fault
  971.      (i.e. an error while the master was processing an error in error
  972.      processing), and you compiled the driver with the TRACE_CODE
  973.      option, there will also be a trace of the last instructions
  974.      executed. Moreover, if the driver is not out of memory, and there
  975.      is no triple fault, the apply runtime_error() is called in the
  976.      master, with the error message, file name, object name and line
  977.      number as arguments." -Amylaar
  978.      
  979.           Note that for drivers which can compile LPC code to C and then
  980.           link it into the driver, no line number information will exist
  981.           to help you in debugging. You should therefore debug your LPC
  982.           code thoroughly before compiling it to C.
  983.           
  984.    _no errors, you just do not get expected results_
  985.           These are the hardest to debug. You need to go through the code
  986.           and test
  987.           
  988.          1. Which code is being executed
  989.          2. The values of the variables in the executed code
  990.             
  991.           How do you do this? Take the following code with a priveledges
  992.           bug...
  993.           
  994.  
  995. /* from /cmds/adm/_rid.c */
  996.  
  997. int cmd_rid(string str) {
  998.     if(!archp(previous_object())) return 0;
  999.     if(!str || !user_exists(str = lower_case(str))) return 0;
  1000.     if(!((int)USERS_D->rid_user(str))) return 0;
  1001.     message("system", "You rid "+capitalize(str)+".", previous_object());
  1002.     return 1;
  1003. }
  1004.  
  1005. /* EOF */
  1006.  
  1007. /* /secure/daemon/users.c */
  1008.  
  1009. int rid_user(string str) {
  1010.     return rm(DIR_USERS+"/"+str[0..0]+"/"+str+SAVE_EXTENSION);
  1011. }
  1012.  
  1013. /* OTHER CODE DELETED FOR BREVITY */
  1014.  
  1015.    This is not real code (as a lot more should exist in such an
  1016.           operation). However it does serve the point. This code will
  1017.           load fine and execute without error. However, it will not
  1018.           delete the save file of any user. If anyone executes it, the
  1019.           following will happen:
  1020.           
  1021.  
  1022. > rid weenieplayer
  1023. What?
  1024. >
  1025.  
  1026.    So what do you know? You know you typed "rid weenieplayer", and you
  1027.           know you got 0 returned. One of the following things happened:
  1028.           
  1029.          1. The "rid" command never got executed
  1030.          2. The archp() returned false for the person executing the
  1031.             command
  1032.          3. For some reason, str was equal to 0
  1033.          4. rid_user() in users.c returned 0 to the command
  1034.             
  1035.           How do you know if 1 is the problem? put the line... write("rid
  1036.           command executed") as the first line of the cmd_rid() function
  1037.           in the rid command. If the rid command is executed, you will
  1038.           see that it is executed before you see "What?". If it is not,
  1039.           you will just see "What?". If you do not see that line in
  1040.           write(), then you know your bug is with you whatever calls the
  1041.           "rid" command. If you do, then you know you must proceed
  1042.           further.
  1043.           
  1044.    Do the same after each line which returns 0. Make sure each write()
  1045.    string is unique so you know *which* line is being written out. This
  1046.    will tell you exactly *which* line is returning 0 in the rid command.
  1047.    
  1048.    In this case, it is #4 which is the problem. The users daemon is
  1049.    returning 0 for for rid_user(). This means that rm() is definitely
  1050.    returning 0. rm() only returns 0 when an rm fails. rm() only fails
  1051.    when an object does not have proper access. Therefore, in this case,
  1052.    you need to fix the bug in your security.
  1053.    
  1054.    If for some reason you cannot go editing the files in question (i.e.
  1055.    they are in the base lib files to which you have no access, changing
  1056.    them would be even more troublesome, etc), you should consider the
  1057.    efuns trace() and traceprefix().
  1058.    
  1059.    Do you need to go through all of these tedious steps? No, you can
  1060.    generally make good guesses as to where to look the more familiar you
  1061.    become with the code. For example, in this case you pretty much could
  1062.    have elimited step 1 if that command is an old command which used to
  1063.    work. After all, it is highly unlikely that the mud would suddenly
  1064.    stop executing that one command!
  1065.    
  1066.    Furthermore, if you had just made a change to the security system, you
  1067.    would immediately suspect that rm() failed and thus would have checked
  1068.    that first.
  1069.    
  1070.    This is why presenting me with your entier rid command would have been
  1071.    useless to me. I would have looked at it and said it *looks* ok. But I
  1072.    have no idea what changes you have recently made to your mud, nor do I
  1073.    know from looking at the code which of those lines is returning 0. I
  1074.    can only basically tell you that one of those lines is failing.
  1075.    
  1076.    However, if you were to tell me that for some reason your user object
  1077.    was returning 0 in trying to rm() the user file during the rid
  1078.    command, I could tell you details about the relevant parts of the
  1079.    Nightmare LPC Library security to this daemon. And then you could use
  1080.    that information to debug further and ultimately fix the bug.
  1081.      _________________________________________________________________
  1082.                                       
  1083.     What is an efun? an lfun? a kfun? an sefun?...
  1084.     
  1085.    For any function in LPC, there are three distinct parts...
  1086.     1. the prototype
  1087.     2. the call
  1088.     3. the definition
  1089.        
  1090.    Whate differentiates all of these different types of functions is
  1091.    _where_ they are defined. The definition of the function is the part
  1092.    which says what it does.
  1093.    
  1094.    afun (auto function, DGD only)
  1095.           the function is defined in the auto object and behaves like and
  1096.           efun from other drivers. This function is really very special
  1097.           type of lfun.
  1098.           
  1099.    apply
  1100.           a function defined in the mudlib designed to be called only by
  1101.           the driver. All applies are also lfuns. Most of the functions
  1102.           in the DGD's driver object and other's master object are
  1103.           applies. In addition, the functions create(), init(), and
  1104.           reset() are also applies for LPMud 3.2 (not 3.2.1), MudOS, and
  1105.           CD.
  1106.           
  1107.    efun (external function)
  1108.           this type of function is defined external with respect to the
  1109.           mudlib. In other words, in the driver. Since it is defined
  1110.           inside the driver, it is faster, but the mudlib is left with
  1111.           little control over what it does.
  1112.           
  1113.    kfun (kernel function, DGD only)
  1114.           This type of function is much like an efun in that it is
  1115.           defined external to the mudlib in the driver kernel. There are
  1116.           some ways beyond the scope of this FAQ in which kfuns differ
  1117.           from efuns, ways which have little bearing to daily coding.
  1118.           
  1119.    lfun (local function)
  1120.           Any function defined inside an object in the mudlib. The
  1121.           functions you write (like create() or reset()) are lfuns.
  1122.           
  1123.    sefun (simulated external function)
  1124.           lfuns defined in an object known as the simul efun object. Any
  1125.           object in the mudlib is allowed to use these functions as if
  1126.           they were efuns (treat them like local calls).
  1127.           
  1128.    You might also want to keep in mind the difference between a local
  1129.    call and a call_other. A local call is a call to a function defined in
  1130.    your object or to one of the objects it inherits. A call other is a
  1131.    call to a function defined in another object. Efuns and simul efuns,
  1132.    though not defined in your object, act like local calls. Afuns and
  1133.    kfuns are in fact local calls, since all objects inherit the auto
  1134.    object to which they are local.
  1135.      _________________________________________________________________
  1136.                                       
  1137.     Can I take my area from LPMud X to LPMud Y?
  1138.     
  1139.    Can you? If they use the same mudlib, yes. May you? Often muds have
  1140.    restrictions against importing code in order to keep the mud unique.
  1141.    Talk to the administration of both muds for local details.
  1142.      _________________________________________________________________
  1143.                                       
  1144.     Can I code offline?
  1145.     
  1146.    There are many different methods of coding offline, and which one is
  1147.    available to you depends on your mud. The methods are:
  1148.     1. ange-ftp
  1149.     2. your favourite editor + ftp
  1150.     3. cut-and-paste
  1151.        
  1152.    Editing offline allows you a faster response time, the ability to
  1153.    multitask, and the ability not to be bothered by incoming tells
  1154.    screwing up your edit window. It also allows you to make use of
  1155.    editing environments which may be much more robust than standard mud
  1156.    ed.
  1157.    
  1158.    ange-ftp is an emacs mode which allows you to edit files in emacs and
  1159.    have them automatically ftp'ed to your mud and back. ange-ftp
  1160.    requires:
  1161.      * emacs with ange-ftp mode
  1162.      * an FTP server which gives access to host mud files
  1163.        
  1164.    Using a local editor and ftp allows you free choice of which editors
  1165.    you use, but you have to manually transfer each file. If going from a
  1166.    DOS environment, you also need to watch for carriage-return/line-feed
  1167.    translation. FTP requires:
  1168.      * An FTP server which gives you access to your mud files
  1169.        
  1170.    Cut and paste requires no file transfer and allows you to use any
  1171.    editor which has immediate access to your mud files. For example, you
  1172.    can edit on your home computer using Notepad, then cut that from
  1173.    Notepad and paste to your mud window which is likely in ed. Cut and
  1174.    paste requires:
  1175.      * The ability to cut and paste from editor to mud window.
  1176.        
  1177.      _________________________________________________________________
  1178.                                       
  1179.     Why does the mud use ed? Why not have the mud use vi/emacs...?
  1180.     
  1181.    See Section IV: How do I get my mud to use vi/emacs instead of ed?
  1182.      _________________________________________________________________
  1183.                                       
  1184.     How do I put my code into the game?
  1185.     
  1186.    A file is considered "in the game" if another file already visible to
  1187.    players references it. So, to put your stuff in the game, you need to
  1188.    change code already in the game to reference your code. This action
  1189.    normally requires the action of mud administrator. Most muds have some
  1190.    sort of quality control policies which state rules for having your
  1191.    code reviewed.
  1192.      _________________________________________________________________
  1193.                                       
  1194.                                  Section IV
  1195.                                       
  1196.                           Starting Your Own LPMud
  1197.                                       
  1198.     Contents
  1199.     
  1200.     1. How do I start my own LPMud?
  1201.     2. How do I find a site?
  1202.     3. Can I charge players to play my mud?
  1203.     4. Why can't I use any of the other servers or mudlibs?
  1204.     5. Our system needs upgrading, can't I get donations?
  1205.     6. I have a site, now how do I choose a server/library?
  1206.     7. What about Nightmare?
  1207.     8. What copyright issues are involved with using someone else's code?
  1208.     9. Where can I find all this stuff?
  1209.    10. Help! I can't get my driver to compile, what should I do?
  1210.    11. I have applied patch XXX, and now nothing works any more
  1211.    12. How do I do ANSI colours?
  1212.    13. Why not just hard code the colours?
  1213.    14. How to I make the mud use vi/emacs instead of ed?
  1214.    15. Is it possible to connect multiple muds together?
  1215.    16. Can a mud server run on DOS?
  1216.    17. Can a mud run under AmigaOS? OS2? Windows NT? etc...?
  1217.        
  1218.      _________________________________________________________________
  1219.                                       
  1220.     How do I start my own LPMud?
  1221.     
  1222.     1. Come up with a unique and interesting idea
  1223.     2. Find a site
  1224.     3. And do:
  1225.          1. Choose a server
  1226.          2. Choose an object library
  1227.        Or:
  1228.          1. Choose an object library
  1229.          2. Choose a server
  1230.        Or:
  1231.          1. Choose a server
  1232.          2. Write your own object library
  1233.        Or:
  1234.          1. Write your own server
  1235.          2. Write your own object library
  1236.     4. Define administrative policies
  1237.     5. Find people to code areas for the mud
  1238.     6. Get some areas completed
  1239.     7. Open to players (with a beta test stage recommended
  1240.        
  1241.      _________________________________________________________________
  1242.                                       
  1243.     How do I find a site?
  1244.     
  1245.    The most common method is to talk to the administrator of the machine
  1246.    from which you access muds and the rest of the Internet. If the
  1247.    resources are available, they will often allow you to run your mud
  1248.    server unless something political like a no-games policy is preventing
  1249.    it. If you are not running a mud as a game, however, this is not
  1250.    relevant.
  1251.    
  1252.    Never run a mud without talking to your system administrator. LPMuds
  1253.    take up a lot of system resources, and many places simply cannot spare
  1254.    those resources on a single project, especially if the project is
  1255.    non-essential to the functioning of the entity running the machine.
  1256.    Not only is it just plain wrong to run a mud without permission, it
  1257.    also predisposes sysadmins to saying no to people who ask them when
  1258.    the resources are free.
  1259.    
  1260.    If you cannot run it on your local machine, post a note to the
  1261.    ie.sites.wanted newsgroup on The Idea Exchange. Do not post to USENET
  1262.    newsgroups unless you have a working mud. It does not need to be
  1263.    complete, but posting notes saying "I have a cool idea, will someone
  1264.    give me a site" is inappropriate, unless that idea is completely
  1265.    fleshed out with some sweat in the form of work on paper and such.
  1266.    
  1267.    Another avenue of finding a site is talking to local internet access
  1268.    providers. Often, they have extra small machines on which a mud could
  1269.    be run (sometimes for a fee). The most expensive route is to buy your
  1270.    own machine and your own Internet hookup.
  1271.      _________________________________________________________________
  1272.                                       
  1273.     Can I charge players to play my mud?
  1274.     
  1275.    If you write the server from scratch AND you wrote your mudlib from
  1276.    scratch and you have agreements with the coders who wrote areas on
  1277.    your mud, the answer, of course, is yes. The above will take roughly
  1278.    3-5 years of full-time work to accomplish as well.
  1279.    
  1280.    If you do not wish to go through all of that time to write your own
  1281.    server and object library, then you may only user DGD. Of course, you
  1282.    will have to get express permission from Dworkin. The only object
  1283.    library you may use for such purposes is LPMoo.
  1284.      _________________________________________________________________
  1285.                                       
  1286.     Why can't I use any of the other servers or mudlibs?
  1287.     
  1288.    They all come with some variation of the same copyright. Since all
  1289.    drivers except DGD were derived from LPMud 3.0, they all require a
  1290.    copyright at least as strict as that one, which basically states that
  1291.    you can use the server as you like, so long as you do not make a
  1292.    profit off of its use. Most current servers have much more strict and
  1293.    explicitly copyrights. On top of that, many of the mudlibs which exist
  1294.    also have similar copyrights. To require money of your players is
  1295.    therefore a violation of international copyright laws. DGD requires
  1296.    licensing through a third party company.
  1297.    
  1298.      _________________________________________________________________
  1299.                                       
  1300.     Our system needs upgrading, can't I get donations?
  1301.     
  1302.    Yes, you can request that your players donate money as long as the end
  1303.    of that money is to run the mud and donations are not a prerequisite
  1304.    for play on the mud. In other words, they must be donations, not fees.
  1305.    
  1306.    _Note:_
  1307.    I am not a lawyer, nor am I the author of all the mud code out
  1308.    there... Therefore, keep in mind that what I am saying about
  1309.    copyrights is my interpretation and not binding upon ANY of the server
  1310.    or mudlib authors out there. For reference to what is binding with
  1311.    respect to my code, see the copyright notice which accompanies it.
  1312.      _________________________________________________________________
  1313.                                       
  1314.     I have a site, now how do I choose a server/library?
  1315.     
  1316.    Some people have a favourite mudlib, and therefore go at building
  1317.    their own mud from the angle of using that mudlib. Others have a
  1318.    favourite server and start from that angle. Others simply want to
  1319.    start a mud fast, while others want to really tinker with it and make
  1320.    it their own. The following is a rough guide to what is out there:
  1321.    
  1322.    _Note:_
  1323.    Also, I only publish software which the authors have somehow made
  1324.    known to me to be available, or in fact are widely known to be
  1325.    available. I will not publish information about software which I have
  1326.    no such verification, since being on a public ftp site is not the same
  1327.    as being publically available.
  1328.    
  1329.                                   Servers
  1330.                                       
  1331.    CD
  1332.           Generally considered a slow driver, however it is designed to
  1333.           work very closely with the CD-lib. Therefore tests showing the
  1334.           CD driver to be slower are not necessrily fair as sole factors
  1335.           since they are mudlib-independent tests. The CD-lib is
  1336.           considered a well designed lib which is often a factor which
  1337.           leads people to choose this server. To see a CD server mud,
  1338.           visit Genesis.
  1339.           
  1340.    DGD
  1341.           DGD is built on the belief that small is good. This is absent
  1342.           of much of the extra baggage which exists in all other drivers
  1343.           since it was created from scratch. There currently exist only a
  1344.           few, small native mudlibs for DGD, one of which is a MOO
  1345.           simulation. DGD's documentation is sparse. It includes dynamic
  1346.           object version updating amd supports compile time LPC->C
  1347.           compiling, meaning that when you compile the driver you can
  1348.           have some of your LPC files converted to C and compiled with
  1349.           the driver. In addition, unlike other LPMud servers, it is
  1350.           disk-based, meaning you can run a huge mud on virtually no RAM.
  1351.           You therefore never need to reboot or save objects. Dark has
  1352.           written a TCP/IP socket support for DGD which can be gotten
  1353.           separately from the driver. Erwin Harte is managing a network
  1354.           package for the driver.
  1355.           
  1356.    LPC4
  1357.           Maintained by Profezzorn, it supports a scripting feature that
  1358.           allows you to execute LPC files as atomic programs without
  1359.           running the mud in the traditional sense. In addition it
  1360.           features lambda closure types which are actually understandable
  1361.           to most people. It is designed for speed through the philosophy
  1362.           of creating large numbers of efuns to perform CPU intensive
  1363.           work. I know of no muds using this driver in practice. LPC4
  1364.           also has socket efuns with TCP support.
  1365.           
  1366.    LPMud
  1367.           Once the fastest of all the drivers, it has lost this crown to
  1368.           MudOS. Nevertheless, it is an extremely fast driver which
  1369.           supports the old LPMud 2.4.5 Mudlib. It also supports closures,
  1370.           though its closure syntax is beyond general ease of
  1371.           comprehension. There is only one mudlib in wide release which
  1372.           is native to this server.
  1373.           
  1374.    MudOS
  1375.           The fastest and most feature-filled of the LPMud drivers, this
  1376.           one comes with TCP support for mudlib objects allowing you
  1377.           things like WWW, finger, SMTP, USENET, and other such access to
  1378.           Internet resources from inside the mud. It also comes with a
  1379.           choice of well-developed mudlibs native to the server. MudOS
  1380.           allows you to choose between UID support and no-UID support,
  1381.           which makes it easy to hack a LPMud 2.4.5 mud to work with
  1382.           MudOS if that is your cup of tea. MudOS supports a new function
  1383.           pointer syntax which is as functional as LPMud's closures
  1384.           without LPMud's obscure closure syntax.
  1385.           
  1386.    Shattered World
  1387.           Developed by one of the original LPMuds. I believe this driver
  1388.           originated from one of the first LPMud releases and has been
  1389.           heavily customized in such a way as not to be recognizable as
  1390.           such.
  1391.           
  1392.                               Object Libraries
  1393.                                       
  1394.    CD-lib
  1395.           I am told this is a very well-designed mudlib. Some features of
  1396.           it are an enhanced sense of reality through player recognition
  1397.           (you must make the acquaintance of players before knowing who
  1398.           they are) and UDP intermud communications.
  1399.           Runs under: CD (native)
  1400.           
  1401.    Dead Souls
  1402.           A public domain version of the former Nightmare mudlib. It
  1403.           contains a complete mudlib from which to build a world, but is
  1404.           very difficult to set up.
  1405.           Runs under: MudOS v21b25 (native)
  1406.           
  1407.    DGD Kernel Library
  1408.           A minimal development library that can be used as a basis for
  1409.           both continuous and non-continuous systems. It comes included
  1410.           with the DGD 1.1 release. Runs under: DGD 1.1 (native)
  1411.           
  1412.    Discworld
  1413.           Advanced command parsing system and user interface, as well as
  1414.           many concepts you will not see in other mudlibs for any server.
  1415.           Too many frogs and wombles.
  1416.           Runs under: MudOS 0.9.20 (native)
  1417.           
  1418.    Final Realms
  1419.           A modernized version of the Discworld mudlib.
  1420.           Runs under: MudOS
  1421.           
  1422.    Foundation IIr1.1
  1423.           A basic mudlib with nothing extra for people who want a solid
  1424.           design base from which to design a unique mudlib. No combat or
  1425.           anything else fancy is included. Nothing about it is
  1426.           pre-disposed towards fantasy or even game playing for that
  1427.           matter. On the positive side, there is nothing to deconstruct
  1428.           in order to build your own mudlib and there is more of a solid
  1429.           base to work from than something like Lil. The downside is that
  1430.           you will have to put in a lot of work to make a playable game
  1431.           from this.
  1432.           Runs under: MudOS v21.7b23 (native)
  1433.           
  1434.    Heaven 7
  1435.           A mudlib that essentially extends LPMud 2.4.5 with all the
  1436.           player features you always wanted such as classes, skills, and
  1437.           unlimited levels. It is well-suited to LPMud 3.2, but poorly
  1438.           suited to the other drivers under which it runs.
  1439.           Runs under: LPMud 3.2 (native)
  1440.           
  1441.    Lil
  1442.           A small, essentials only mudlib. Designed basically to give you
  1443.           examples of files as they must minimally be for the MudOS
  1444.           driver to run. Only useful if you plan really to write
  1445.           something totally from scratch.
  1446.           Runs under: MudOS (native)
  1447.           
  1448.    LIMA 1.0a5
  1449.           This is a brand new library, featuring the new MudOS natural
  1450.           language parsing package and a UNIX-like wizard shell with
  1451.           output redirection and command piping. In addition, it is a
  1452.           very modular, object-oriented mudlib with stack-based security.
  1453.           
  1454.           Runs under: MudOS v22.1b4 (native)
  1455.           
  1456.    LPMoo
  1457.           A MOO simulation using LPC. This library allows you to work and
  1458.           play exactly as if you were using MOO instead of LPC.
  1459.           Runs under: DGD (native)
  1460.           
  1461.    LPMud 2.4.5
  1462.           The most well-known mudlib in existence. It is rather simple,
  1463.           not the best design, but if you know it, it is useful. Also,
  1464.           the widest range of drivers support it. Good for putting up and
  1465.           running a mud quickly. It is very ancient and inferior in
  1466.           design, flexibility, and functionality to modern mudlibs.
  1467.           Runs under: DGD (non-native), LPMud 3.2 (non-native), LPC4
  1468.           (non-native)
  1469.           
  1470.    Melville
  1471.           Extremely minimalist mudlib for DGD. Documentation is sparse
  1472.           and it has few features. According to Dworkin, "Unfortunately
  1473.           it was never finished and today it is rather out of date. It
  1474.           does not work with recent versions of DGD."
  1475.           Runs under: DGD (native)
  1476.           
  1477.    Shattered World
  1478.           Mudlib to go with the Shattered World driver. It supposedly has
  1479.           a system for doing detailed economic and predictive analysis
  1480.           and is a distant descendant of the LPMud 2.4.5 mudlib. Other
  1481.           than that, I know absolutely nothing about it.
  1482.           Runs under: Shattered World (native)
  1483.           
  1484.    TMI-2 1.4
  1485.           Generic, designed for those who want to tinker around with
  1486.           their mudlib rather than get a mud up in no-time flat. Designed
  1487.           to be easily modified and comes with a full-range of intermud
  1488.           support as well WWW support. Features include the ability to
  1489.           take over monster bodies. Downside is its poor design and
  1490.           performance.
  1491.           Runs under: MudOS v21 (native)
  1492.           
  1493.    TubMUD
  1494.           Very intricate, and, according to Rust, "it is beautiful if you
  1495.           can figure it out." Intended more for Tub wizards to run at
  1496.           home than for wide-release.
  1497.           Runs under: LPMud 3.2 (native)
  1498.           
  1499.    If I have missed a lib, or stated something incorrect about your
  1500.    server or mudlib, or simply ommitted something, don't go flaming me.
  1501.    Email me the correct information so I can include it in the FAQ. I did
  1502.    my best to be fair in this, but in simply undertaking this task I have
  1503.    opened myself up to flames from anyone who I might have gotten wrong
  1504.    or simply does not like what I said. So please be gentle, and
  1505.    understand I mean no malice or ill-will anywhere in there!
  1506.      _________________________________________________________________
  1507.                                       
  1508.     What about _Nightmare_?
  1509.     
  1510.    _Nightmare_ was removed from distribution by its author. No new muds
  1511.    may be built using this software. The Dead Souls mudlib, however, is a
  1512.    public domain version of the last available release of the Nightmare
  1513.    mudlib in a less user-friendly format.
  1514.    
  1515.      _________________________________________________________________
  1516.                                       
  1517.     What copyright issues are involved with using someone else's code?
  1518.     
  1519.    Some of the software listed above was written by a single person.
  1520.    Other works are collaborative efforts. Of all of these, I know of only
  1521.    Dead Souls as being in the public domain. In other words, the authors
  1522.    have retained the copyrights on their code or assigned them to a
  1523.    larger group, yet thay have decided to allow others to use their code
  1524.    for free.
  1525.    
  1526.    Because these works are protected by copyright just like any other
  1527.    software you use, you may only use the software as long as you are not
  1528.    in violation of its licensing restrictions. The most common licensing
  1529.    restriction is to prevent commercial use without paying the developers
  1530.    a licensing fee. You need to read the licensing agreement of the
  1531.    software package you chose to determine if you can live with whatever
  1532.    restrictions it imposes.
  1533.    
  1534.      _________________________________________________________________
  1535.                                       
  1536.     But I have changed their code!/I don't see any copyright!
  1537.     
  1538.    There are two points to be made to anyone making these statements. The
  1539.    first is moral, the second legal.
  1540.    
  1541.    First of all, you used the original author's software. You did not
  1542.    have to use it, and they did not have to let you use it. Playing legal
  1543.    games based on legal technicalities (real or imagined) is slimey and
  1544.    unethical. The author of any code you use deserves your respect for
  1545.    their wishes regarding that code.
  1546.    
  1547.    Of course, there are people out there who cannot be bothered with
  1548.    issues of ethics. The question in their minds is, "Can I get away with
  1549.    it?" The answer is that you don't have a legal leg to stand on. Let's
  1550.    deal with the last question first. Any work--software, poetry, books,
  1551.    plays, films, etc.--is copyrighted from the moment it is created. No
  1552.    action is required by the author of the work in order for it to be
  1553.    protected. Certain actions (or lack of action) can weaken the
  1554.    protection an author has, but only two things can end that protection
  1555.    altogether:
  1556.      * The author assigns, in writing, ownership of the work to another
  1557.        person or entity.
  1558.      * The author places the work, in writing, into the public domain.
  1559.        
  1560.    Note that in either case, the author has to take a very specific
  1561.    action and has to do it in a very formal legal sense in order to end
  1562.    copyright protection for themselves. _Copyright laws do not require
  1563.    the author to register the work with any organization or government
  1564.    agency_.
  1565.    
  1566.    While you may think the fact that you live in a different country from
  1567.    the original author is protection enough for you, guess again.
  1568.    Copyright laws in most countries, while not identical, derive from a
  1569.    treaty signed by most countries. The net effect of this treaty is that
  1570.    copyright laws are very similar from one country to the next.
  1571.    
  1572.    As I stated earlier, there are things an author can do to weaken or
  1573.    strengthen their case in the event of a copyright violation. The
  1574.    degrees of strength of protection exist because there is a mild
  1575.    defense against copyright violation: ignorance. If a person can prove
  1576.    that they had no way of knowing a work was copyrighted (they believed
  1577.    it to be in the public domain because they believed either the author
  1578.    had placed it there or because the work was so old that copyright
  1579.    protection had lapsed). In this case, a person is limited in the
  1580.    damages they can suffer. The simplest action an author can take to
  1581.    protect against ignorance is placing a ⌐ along with their name and the
  1582.    date of the work's creation in a prominent location within the work.
  1583.    If it says it is copyrighted on its cover with a date within the last
  1584.    75 years, a defendent cannot possibly claim to believe the work was in
  1585.    the public domain.
  1586.    
  1587.    Of course, the other approach is to claim that the original author is
  1588.    not in fact the original author. This is where registering a work
  1589.    comes into play. By registering a work with an appropriate entity
  1590.    (like the Library of Congress in the United States), an author can
  1591.    prove that a given work is associated with them at a given time. If
  1592.    someone else wants to claim authorship of that work, they will have to
  1593.    prove the existence of the work in question prior to the date it was
  1594.    registered. There are even simpler ways of proving a work's
  1595.    authorship, such as mailing yourself a copy of your work without
  1596.    opening the envelope. Note, however, that such tricks are less
  1597.    authoratative than registering with an appropriate entity.
  1598.    
  1599.    So you are convinced you cannot claim the work is not copyrighted.
  1600.    What about works that have been changed? You are still out of luck. A
  1601.    work based on another work is considered a derivative work and thus
  1602.    subject to two copyrights: the author of the original work and the
  1603.    author of the modified portions of the new work.
  1604.    
  1605.    With respect to a derivative work, the first question is: do you even
  1606.    have the right to create a derivative work? Since the original author
  1607.    has a copyright on the original work, that person gets to specify the
  1608.    conditions under which you may use the original work. It is therefore
  1609.    possible that you are not even allowed to change any of the original.
  1610.    I do not know of any LP-related open distributions that prevent
  1611.    derivative works. Some works do, however, restrict what you may do
  1612.    with a derivative work (the GPL is a good example of a license that
  1613.    places restrictions on derivative works).
  1614.    
  1615.      _________________________________________________________________
  1616.                                       
  1617.     Where can I find all this stuff?
  1618.     
  1619.    These first set of sites are generic "goto" sites when looking for
  1620.    LPMud stuff:
  1621.    
  1622.    * ftp.bat.org
  1623.           
  1624.    * ftp-na.imaginary.com (North America)
  1625.           
  1626.    * ftp-eu.imaginary.com (Europe)
  1627.           
  1628.    * ftp.imaginary.com (General)
  1629.           
  1630.    * ftp.lysator.liu.se
  1631.           
  1632.    In addition, the primary site for individual pieces of software:
  1633.    
  1634.    * CD (server and library)
  1635.           ftp://ftp.cd.chalmers.se/pub/lpmud/cdlib
  1636.           
  1637.    * DGD (server)
  1638.           ftp://ftp.imaginary.com/pub/LPC/servers/DGD
  1639.           
  1640.    * Discworld (library)
  1641.           ftp://ftp.imaginary.com/pub/LPC/lib/Discworld
  1642.           
  1643.    * Final Realms (library)
  1644.           ftp://ftp.imaginary.com/pub/LPC/lib/FinalRealms
  1645.           
  1646.    * Foundation (library)
  1647.           ftp://ftp.imaginary.com/pub/LPC/lib/Foundation
  1648.           
  1649.    * Heaven 7 (library)
  1650.           http://www.dialnet.net/users/mud1/dload.htm
  1651.           
  1652.    * Lil (library)
  1653.           ftp://ftp.actlab.utexas.edu
  1654.           
  1655.    * LIMA (library)
  1656.           ftp://ftp.imaginary.com/pub/LPC/lib/LIMA
  1657.           
  1658.    * LPC4 (server)
  1659.           ftp://ftp.lysator.liu.se/pub/lpmud/drivers/profezzorn
  1660.           
  1661.    * LPMud 2.4.5 (library)
  1662.           ftp://ftp.lysator.liu.se
  1663.           
  1664.    * LPMoo (library)
  1665.           ftp://ftp.ccs.neu.edu/pub/mud/mudlibs/lpmoo
  1666.           
  1667.    * LPMud 3.2 (server)
  1668.           ftp://ftp.nightfall.org/pub/games/lpmud
  1669.           
  1670.    * MacMUD (server)
  1671.           http://www.eden.com/~hsoi/mud
  1672.           
  1673.    * Melville (library)
  1674.           ftp://ftp.ccs.neu.edu
  1675.           
  1676.    * MudOS (server)
  1677.           ftp://ftp.imaginary.com/pub/LPC/servers/MudOS
  1678.           
  1679.    * Shattered World (server)
  1680.           ftp://moo.cs.rmit.edu.au/pub
  1681.           
  1682.    * TMI-2 (library)
  1683.           ftp://ftp.imaginary.com/pub/LPC/lib/TMI-2
  1684.           
  1685.      _________________________________________________________________
  1686.                                       
  1687.     Help! I can't get my driver to compile, what should I do?
  1688.     
  1689.    Thanks to Rust for putting together an answer for this question.
  1690.    
  1691.    First of all, learn how to redirect stderror to a file if you don't
  1692.    already know how, or at least find a computer where you can cut and
  1693.    paste. Then, you have 3 options for getting these errors to a more
  1694.    experienced driver person:
  1695.    
  1696.    * You can try The Idea Exchange a mud dedicated to mud development,
  1697.           where people who may be able to solve your problem, or at the
  1698.           very least you can post it to your target driver's newsgroup on
  1699.           The Idea Exchange, where they will be seen by knowlegeable
  1700.           people fairly quickly. In addition, for Lima specific compile
  1701.           problems, you can visit its support site Lima Bean
  1702.           (telnet://lima.imaginary.com:7878).
  1703.           
  1704.    * You can post it to rec.games.mud.lp, but don't cross post, and it
  1705.           probably wastes a lot more bandwidth on this newsgroup than on
  1706.           The Idea Exchange.
  1707.           
  1708.    * You can mail the maintainers of your driver:
  1709.           
  1710.           + CD: jacob@dd.chalmers.se
  1711.           + LPC4: hubbe@lysator.liu.se
  1712.           + LPMud 3.2: amylaar@cs.tu-berlin.de
  1713.           + MudOS: tim@handel.princeton.edu 
  1714.             
  1715.    For MudOS or DGD help, you are most likely to get a timely response by
  1716.    posting to the proper newsgroup on The Idea Exchange (ie.imaginary.com
  1717.    7890). For LPC4, your best bet is direct mail, for CD, either direct
  1718.    mail or visiting Genesis (hamal2.cs.chalmers.se 3011) and mailing
  1719.    Tintin et al.
  1720.      _________________________________________________________________
  1721.                                       
  1722.     I have applied patch XXX, and now nothing works any more.
  1723.     
  1724.    _Answer from Joern Rennecke (Amylaar)_
  1725.    Have you supplied the proper -p option to patch? If not, you might end
  1726.    up with a patch applied to the wrong file. Check with the appropriate
  1727.    man page to "patch" for more details.
  1728.      _________________________________________________________________
  1729.                                       
  1730.     How do I do ANSI colours?
  1731.     
  1732.    There are several misconceptions about colours. The first
  1733.    misconception is that all of the world is an IBM PC using ANSI style
  1734.    colours. In fact, there are many different sets of escape sequences
  1735.    which have the same effects depending on terminal emulation. If your
  1736.    goal is providing colour support to players, then limiting yourself to
  1737.    just ANSI support is very similar to saying "Only people with IBM
  1738.    compat's can play my mud." Well, maybe not quite that drastic, but you
  1739.    get the point.
  1740.    
  1741.    Also, you should keep in mind that the term ANSI has nothing to do
  1742.    with colours. ANSI is a standards organization, and one of the zillion
  1743.    things for which they have standards is escape sequences and what they
  1744.    do. Keep in mind that your goal is to have colours.
  1745.    
  1746.    Finally, about giving your mud colour support. The Discworld Mudlib
  1747.    has developed a protocol now supported by at least Dead Souls,
  1748.    Foundation, Lima, and TMI-2. There is no reason, however, that other
  1749.    libs cannot add support this protocol. It enables creators to code to
  1750.    a single set of codes and have those codes dynamically interpreted
  1751.    into colours proper to the terminal emulation being used by a given
  1752.    player. If a certain player has no colour support, that person does
  1753.    not see the colour codes. For more information on this protocol, stop
  1754.    by The Idea Exchange at ie.imaginary.com 7890.
  1755.      _________________________________________________________________
  1756.                                       
  1757.     Why not just hard code the colours?
  1758.     
  1759.    There are multiple colour escape sequence protocols. Some players
  1760.    cannot support colour escape sequences at all. Sending colour escape
  1761.    sequences to people who cannot handle them, or to people who use
  1762.    different protocols can mess up their displays severely, making the
  1763.    game unplayable.
  1764.      _________________________________________________________________
  1765.                                       
  1766.     How to I make the mud use vi/emacs instead of ed?
  1767.     
  1768.    This question gets asked constantly. When you come around to ask it,
  1769.    think about what exactly you want. Do you want to have vi or emacs on
  1770.    your mud? Or is it that you really want to have a convenient way of
  1771.    editing mud files (which ed certainly is not)? In truth, the real
  1772.    problem is the need for something more convenient than the very
  1773.    inconvenient ed which muds use. The kneejerk response to this need is
  1774.    the belief that your UNIX editing tools will solve this need. The fact
  1775.    is, however, there are better ways to accomplish this goal which are
  1776.    listed in Section III: Can I code offline?
  1777.    
  1778.    Not convinced? There are the technical reasons that people often give,
  1779.    such as the fact that any visual editor will require character mode,
  1780.    which is non-trivial in the current batch of muds and very network
  1781.    intensive. The bottom line as to why this is not generally done is
  1782.    that it provides nothing, yet costs a lot.
  1783.      _________________________________________________________________
  1784.                                       
  1785.     Is it possible to connect multiple muds together?
  1786.     
  1787.    Is it possible? Yes.
  1788.    
  1789.    Why do you want to connect muds? There are two common meanings behind
  1790.    this:
  1791.     1. Distributed mudding
  1792.     2. Connecting multiple muds
  1793.        
  1794.    Distributed mudding is basically a single mud whose resources are
  1795.    spread across multiple servers. Distributed anything is generally
  1796.    required of resource intensive, mission-critical applications. muds
  1797.    are not, in the scheme of things, resource intensive and they
  1798.    generally are not mission-critical applications. Distributed computing
  1799.    basically gives you the ability to expand horizontally rather than
  1800.    vertically. That means instead of buying yourself a sparc 20 to run
  1801.    your mud, you can architect it in such a way that two sparc 2
  1802.    computers will give the same performance.
  1803.    
  1804.    The fact of the matter, however, is that no mud currently in existence
  1805.    uses the resources which require this kind of scalability. In
  1806.    addition, most MUDs have a hard enough time finding one site, much
  1807.    less getting two.
  1808.    
  1809.    More commonly, however, people are thinking of the ability to connect
  1810.    multiple MUDs together. Before deciding this is a good thing, you
  1811.    should define the problem you want solved by connecting muds. As of
  1812.    yet, I have not heard a problem which connecting muds solves. The most
  1813.    vocal reason is to allow a person to have the same character across
  1814.    multiple muds. At that point, however, you have to define _what it is
  1815.    to be that person_. Most people will quickly say that what defines
  1816.    their character is that they control it. If that is the case, then
  1817.    connecting muds does not solve this problem. A client which allows the
  1818.    person to login to multiple muds is what solves this problem.
  1819.    
  1820.    The response then might be to have the same level/skills/whatever
  1821.    across the multiple muds. At this point, however, they cease to be
  1822.    multiple muds connected, but instead one huge distributed mud. This
  1823.    would be a poor way to design a distributed mud, and would also lead
  1824.    to political headaches and a huge waste of creative talent.
  1825.      _________________________________________________________________
  1826.                                       
  1827.     Can a mud server run on DOS?
  1828.     
  1829.    Yes, most of the servers have DOS binaries available. In addition,
  1830.    most of the mudlibs have had their files arranged and ported so they
  1831.    fit in the FAT 8.3 naming scheme. If you wish to allow others access
  1832.    to the mud over modem lines, be sure to get the comdrv17.com file with
  1833.    your server and mudlib. For those who choose mudlibs with colours in
  1834.    them, the current batch of drivers was compiled in such a way that the
  1835.    drivers do not send output through ANSI.SYS (thus no colour).
  1836.      _________________________________________________________________
  1837.                                       
  1838.     Can a mud run under AmigaOS? OS/2? Windows NT? etc...?
  1839.     
  1840.    These are the ports of which I am aware:
  1841.    
  1842.    AmigaOS
  1843.           DGD, LPMud 3.2, 3.2.1, MudOS
  1844.           
  1845.    Atari
  1846.           DGD, LPMud 3.2, 3.2.1
  1847.           
  1848.    BeOS
  1849.           DGD
  1850.           
  1851.    System 6
  1852.           MacMUD (which is LPMud 3.1.2), DGD
  1853.           
  1854.    MacOS
  1855.           MacMUD, DGD
  1856.           
  1857.    OS/2
  1858.           DGD, LPMud 3.2, 3.2.1, MudOS
  1859.           
  1860.    Windows 95
  1861.           DGD, MudOS
  1862.           
  1863.    Windows NT
  1864.           DGD, MudOS
  1865.           
  1866.      _________________________________________________________________
  1867.                                       
  1868. Credits
  1869.  
  1870.    Credits for information in this FAQ beyond the information provided by
  1871.    the author:
  1872.    
  1873.    Abigail, Stig Bakken, Jose Corrales, Felix Croes, Joshua P. Dady, Lars
  1874.    Duening, Paul Gregg, Monique Girgis, Erwin Harte, Tim Hollebeek, Pelle
  1875.    Johansson, Andru Luvisi, Joern Rennecke, Danne A Solli, Christina
  1876.    Sterman-Hack, Lars Syrstad, Pekka Timonen, Linus Tolke, John Viega,
  1877.    Petri Virkkula
  1878.      _________________________________________________________________
  1879.                                       
  1880.    Copyright (c) 1994-1998 George Reese
  1881.    This document may not be reproduced outside of USENET newsgroups, ftp
  1882.    archives, electronic mailings, and other similar not for-profit
  1883.    endeavors without the express written consent of George Reese.
  1884.      _________________________________________________________________
  1885.                                       
  1886.    
  1887.     This FAQ is maintained by George Reese, borg@imaginary.com
  1888.