Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z
faqs.org - Internet FAQ Archives

FAQ: [diku] rec.games.mud.diku FAQ


[ Usenet FAQs | Web FAQs | Documents | RFC Index | Forum archive ]
Archive-name: games/mud-faq/diku
Posting-Frequency: Biweekly
Last-modified: 1997/4/15
Version: 3.13
URL: http://democracy.queensu.ca/~fletcher/Circle/

See reader questions & answers on this topic! - Help others by sharing your knowledge
                            REC.GAMES.MUD.DIKU FAQ
                                 Version 3.13
                                       
                                      
   A note on FTP sites:
          If you discover that a site is no longer valid, or you have a
          new site to submit, please let me know. Thank you very much.
          
     _________________________________________________________________
                                      
Recent Changes

     * Added a basic list of DikuMud derivatives that are freely
       available.
     * Added a question about lag. Specifically a definition.
     * Added a section on porting to Linux.
     * Addition to creditation questions.
     * Updates and additions to the resource section.
       
     _________________________________________________________________
                                      
Credits

     * Originally authored and compiled by Frederick Myers [reni]
       <mondays@bsu-cs.bsu.edu>
     * Original HTML conversion by Ryan Watkins [VampLestat]
       <vamp@csulb.edu>
     * Recent updates, upkeep, HTML by Alex Fletcher [Furry]
       <fletcher@democracy.queensu.ca>
       
   The following people have lent a hand with contributions/comments for
   this document...
   
     * Sebastan Hammer - Donated notes on DikuII and on DikuMud history.
     * Adam Coggins - Spelling and grammar checking.
     * Dean Gaudet - Provided a list of common stock Diku bugs and
       init_socket patch.
     * Furey at Merc Industries - Provided some technical info for
       starting a mud.
     * Michael Brundage - Provided the noecho patch and some other bug
       fixes.
     * Nick Borko - VMS TinTin CPU fix.
     * Derek J. Middleton and Russel Schultz - provided basic
       instructions to port DikuMud Gamma 0.0 to Linux.
     * Others... Jeffery Bennett, Bombman, Dan Brumleve, Mort, Sven
       Nielsen, Nino Ruffini, Derek Snider, and Naved Surve.
       
   Please let me know if I have missed anyone...
   
     _________________________________________________________________
                                      
Overview

   This document will be posted approximately bi-weekly to
   rec.games.mud.diku.
   
   Approximate size of this document: 40k
   
   This file is the FAQ for the rec.games.mud.diku newsgroup as well as a
   general game FAQ for DikuMud games. This FAQ is divided up into three
   different sections:
   
     * Introduction (general information and background)
     * Implementor / Building (questions concerning starting a mud,
       building areas, etc)
     * Resources (well known ftp sites for various DikuMud utilities,
       patches, and sources).
       
   More information on muds can be received from the
   rec.games.mud.announce General Three Part FAQ, online within whichever
   mud you decided to play, and from the various web and ftp sites
   located at the end of this document.
   
   All information is correct to the best of my knowledge. The author
   takes no responsibility for any inaccuracies contained in this
   document. Please let me know of any corrections to make to this
   document.
   
   This document may be distributed freely. Any use of any of the
   contents here-in must be credited and the author should be notified.
   In light of several publishing companies 'stealing faqs', BY NO MEANS
   IS THIS DOCUMENT TO BE USED FOR 'FOR_PROFIT' GAINS WITHOUT THE
   EXPLICIT WRITTEN CONSENT OF THE AUTHOR. THIS INCLUDES INCLUDES USING
   THIS DOCUMENT ON "FAQ CD-ROMS".
   
   Patches Note: If you decide to use one of the patches in this FAQ,
   please take the time to put the authors (Dean Gaudet and Jeffery Stine
   of ArcticMud for the socket patch and Michael Brundage for the noecho
   patch) in your lib/credits file. These three individuals have donated
   their work for the better of others, so please give credit where
   credit is due.
   
     _________________________________________________________________
                                      
Questions

Introduction

   "What is a DikuMud?"
   "Where did this DikuMud come from?"
   "Where and how do I connect to a DikuMud?"
   "Where can I find out where these muds are located?"
   "Ok, I'm connected, what do I do now?"
   "What is a client program, or TinTin?"
   "Is there anything I can do about enourmous CPU usage of VMS TinTin?"
   "Ok, I have a character, now what do I do?"
   "What are hit points, mana, and movement?"
   "What are some other things I should know?"
   "What is a crash?"
   "What is lag?"
   "What is some of the slang or jargon I hear on these muds?"
   "What about this newsgroup, rec.games.mud.diku?"
   "What is DikuII, and when can I expect to see it?"
   "Where can I find so-and-so?"
   "Now I know where to find it... what is available?"
   
Implementors / Building

   "I really like DikuMuds, I want to start my own!"
   "What is the difference between Circle, Merc and Silly?"
   "Well, I do not want to run my own mud, but I would like to create an
      area."
   "Ok, I think I can start my own, but I hear there are bugs with the
      stock code, what are these?"
   "Are there any RFC's of interest?"
   "What runs on Linux?"
   "How can I make the original DikuMud run on Linux?"
   "Are there any books of interest to admins?"
   "Are there any muds available with online creation?"
   "When is Circle 3.0 going to be released?"
   "Are there any mailing lists for administrators?"
   "Do I need to follow the license agreement?"
   "Should I credit my area authors too?"
   
Resources

   Web Resources
   FTP Resources
     _________________________________________________________________
                                      
Introduction

   "What is a Diku Mud?"
          A DikuMud is s specific species of one of the fastest growing
          forms of computer games called Mud. For more information on
          muds in general, please consult the general mud FAQ posted on
          rec.games.mud.announce.
          DikuMuds are highly influenced on the AD&D format for
          adventuring. Though DikuMuds are not an exact duplicate of
          AD&D, both share many common qualities, enough so a person who
          is familar with AD&D will feel quite at home with the DikuMud
          world. But by no means is AD&D experience required for a person
          to prove to be successful.
          While some muds are based on pure social interaction and some
          based on pure fighting, DikuMuds have evolved into an
          intelligent compromise between the two.
          
   "Where did this DikuMud come from?"
          DikuMud was originally developed by Katja Nyboe, Tom Madsen,
          Hans Henrik Staerfeldt, Michael Seifert, and Sebastian Hammer.
          A small bit of background of DikuMud, according to Sebastian
          Hammer:
          
     "The game originated at the Department of Computer Science at the
     University of Copenhagen (in Danish: Datalogisk Institut ved
     K|benhavns Universitet; or, amongst friends: DIKU) The foundations
     of the code were laid out in March of 1990. Our background
     (Mud-wise) was primarily Abermud (LpMud was just emerging at the
     time), and our object was to make a better AberMud. We wanted to
     make it fast, compact and CPU-efficient. We wanted to allow more
     than the 18 (or so) players-at-a-time that AberMuds permitted in
     those days, and we wanted a bigger world, so that players could
     truly get lost in there (back then, 500 room AberMuds seemed the
     norm). Also, we wanted to make it more interesting for players to
     cooperate, rather than just run madly around in search of beasts to
     kill.
     
     I guess we reached some of our goals, but far from all of them.
     Currently, we are working on DikuMud II, which is still under
     debugging. We have ceased to support the original code in any way,
     since so many "improved" versions have started to circulate"
     
   "Where and how do I connect to a DikuMud?"
          DikuMuds are located on different computers throughout the
          world. These computers can be at universities, companies, or
          even be personal workstations. To connect to these games, you
          need two things -
          
         1. Access to telnet.
         2. The mud's host name or IP number and the protocal port that
            the particular mud is running on.
            
          
          Telnet is, to put it very simply, like a telephone. From the
          computer, you 'dial in' where you want to connect to and you
          are in (assuming the game is up).
          Since many people play from a Unix based platform, I will use
          that for examples on how to connect. Asgard.cs.bsu.edu 6969
          will be the mud we will use as an example to connect to.
          (147.226.112.94 was the IP number of that same machine).
          From a unix based machine - (The % is the prompt)

                % telnet asgard.cs.bsu.edu 6969
                        or
                % telnet 147.226.112.94 6969
                        or
                % telnet <enter>
                telnet> open asgard.cs.bsu.edu 6969

   "Where can I find out where these muds are located"
          Word of mouth is a good way. So are the news groups. Different
          muds are always being mentioned in rec.games.mud.diku plus a
          listing is posted every few weeks in rec.games.mud.announce.
          Also, look for the Mud Connector (http://www.mudconnect.com/).
          
   "Ok, I'm connected, what do I do now?"
          Many DikuMuds have a lot of differences on how a person goes
          about making a character. But there are some common
          similarities between all of them.
          
        Name
                This will be your character's name for the game. It is
                suggested that you do not make up a name that is
                complicated to spell (something like Gustralieb would be
                a pain for other players to type) or something that could
                possibly be the name of a monster in the game (something
                like Dragon or Guard has a great possibility of being a
                monster (or mob) in the game). If your name is one of the
                above, you can find yourself being killed at times when a
                sensible name could have saved your life.
        Password
                This is what will prevent other people from playing your
                character. Pick a password word that is hard to guess and
                one that you currently do not use on another mud or
                system. This is very important because it takes little
                effort for a mud admin to find your password of your
                character, your site and your username. Bad passwords
                include your real name, character name, and anything less
                than 3 characters. It is recomended that you choose
                something that includes some non-standrard Alpha
                characters such as # or @ or * (you get the idea). So, a
                password like #Chapo1* would be a good, hard to guess
                password.
        Sex
                No, not if you get any, but what gender you want to be.
                Most commonly this will be Male or Female, but a few muds
                have the option of being Other or Neuter.
        Class
                There are usually four basic classes that DikuMuds
                usually have.
                    1. Cleric - a healer
                    2. Warrior - a fighter
                    3. Magic User - a spell caster
                    4. Thief - a rogue
                Some muds also have many other split style classes such
                as Rangers, Paladins, Bards, etc. Usually on the log-on
                screen, there will be some sort of online help that will
                help you in the decision of your class.
                There are a few other things some muds include such as
                hometown and races. For these items, there should be
                sufficient online help to guide you through on the
                paticular DikuMud you are playing.
                
   "What is a client program, or TinTin?"
          A client program is basically a program that you use to connect
          to a mud that has many enchanced features to help (in some
          peoples' opinion... 'cheat') in the game. The most commonly
          used Unix clients for DikuMuds are TinTin and TinyFugue. TinTin
          was specifically designed for play on DikuMuds and is only
          available for Unix platforms. There is now a Beta version of
          WinTin for Windows '95 however. TinyFugue was designed for
          MUSHes and other TinyMuds, but has been adapted for use with
          DikuMuds. Both of these feature things like macros, aliases,
          and triggers. Sites where you can find these two clients are
          listed later in this document.
          Further info on clients programs and their functions is
          contained in the bi-weekely rec.games.mud.announce FAQ.
          
   "What can I do about the enourmous CPU usage of VMS TinTin?"
          Quick and easy fix:
          
          + Edit the file main.c
          + Find the following line:
                time.tv_usec=0;
          + Change the 0 to 500000
          + Recompile and you are all set.
            
   "Ok, I have a character, now what do I do?"
          The first thing you would want to do is get to know the mud and
          its commands. Some things you can do is type:
          
        HELP
                This will give a general listing of the commands
                available.
        HELP <keyword>
                This will give you a more precise definition. An example
                of what you could type is HELP SAY. This will give you an
                explanation and proper syntax for the command say.
        INFO
                Will give you a brief introduction to the paticular mud
                you are playing.
        COMMANDS
                This command is not on all muds, but what it does is
                gives you a listing of all the commands available to your
                character.
        NEWS
                Will provide the latest news of the mud.
                
          
          Ask around. Most people are generally nice by nature and will
          offer some (sometimes a lot, sometime very very little) help if
          you ask nicely and are not annoying about it.
          Read everything you see. Things like the MOTD (Message Of The
          Day, which you see right before you enter the game) will often
          provide very important information.
          
   "What are hit points, mana, and movement?"
          
        Hit Points
                A numeric representation of the amount of hits/damage
                that your character can take. Every time you are hit, you
                lose some amount of hit points. You are considered
                officially dead when you reach -11 hit points, though at
                0 you can not do anything except for hope there is
                someone around who will heal you.
        Mana
                This is the amount of spells you can cast. Every time you
                cast a spell, a certain amount of mana is subtracted from
                your working total of mana. Mana is like the working
                energy that you can use to cast spells.
        Movement
                This is the amount that you can walk/run etc etc. A
                decent comparison could be the amount of energy your
                player has. Some skills also subtract from your movement
                points.
                
   "What are some other things that I should know?"
          Don't be annoying. Such things are constanly whinning to other
          players and wizards will be the quickest way of being rejected
          by the players of the mud.
          Avoid player killing unless it has been explicitly allowed on
          the mud you are playing. Usually if player killing is not
          allowed on a mud, and someone violates this, it is dealt with
          very sternly.
          Avoid unnecessary shouts. Such things as shouting
          "LAAAAAAGGGG", "GOODBYE SO-AND-SO", "LEVEL!!!", etc generally
          do nothing but annoy other players and can be taken care of by
          using tell or say.
          Don't litter. Leaving junk around does nothing more than drain
          the machine's resources. See if the mud you are playing has the
          junk command, sacrifice command, or a dump where you can
          dispose of uneeded items.
          Remember, that it is only a game and the main purpose is for
          you, as a player, to have fun, explore, and talk to people. And
          do not let mud playing take priority over your school/job work,
          which happens all too often.
          
   "What is a crash?"
          A crash occurs when
             1. The system that the mud is located fails, or
             2. The actual mud itself fails.
          When a mud crashes, you will be thrown out of the game and you
          will not be able to connect back to the game until it is
          rebooted.
          Because of crashes, the importance of saving your character is
          very important. All you need to to do is type 'save' and your
          character is saved, that's it. No excuses. Fortunately, many
          muds have made it so that the mud saves your character every so
          often.
          In event the game does crash, and you lose items/experience,
          then often (not always, and it is not required) immortals/gods
          will reimburse your items. But remember, the keywords for you
          to get reimbursed are politeness and courtsey. Chances are, if
          you lost something, other players did too. Avoid telling your
          local god 100 times that you lost something. Usually, if you
          told them once, they know and will get to you as soon as they
          can. And remember, nowhere does it say they have to reimburse
          you.
          In the event of a crash, do not go straight to rec.games.mud.diku
          and post a message saying "Blah mud crashed 4 seconds ago, what
          happened?" That posting will usually be met with negative
          reponses. POST TO THE NET ONLY AS A LAST RESORT. If the game is
          going to be down for an extended amount of time or if there are
          serious problems, usually there will be a message at the port
          the game ran on, or there will be a posting on rec.games.mud.diku
          concerning the down time.
          
   "What is lag?"
          Lag is the result of an overstrained Internet. It comes in two
          varieties, machine lag in which the machine the MUD runs on is
          overburdened, and network lag caused by a poor network
          connection between the enduser and the MUD's host machine.
          Machine lag can be created by other processes gobbling up CPU
          processing time or RAM, or simply by trying to run an overly
          exotic MUD on an inadequate machine. Machine lag will cause all
          actions to be slowed down, but for the most part everything is
          slowed down equally. Machine lag can be fixed by upgrading the
          hardware the MUD uses or by the MUD implementors better
          optimizing the MUD.
          Network lag is typically the result of a breakdown or bottleleg
          somewhere on the Internet. Massive or rerouted traffic on the
          Internet as a whole will cause traffic jams that make
          communicating between the MUD and the enduser difficult.
          Typically, the communications problem is sporadic and the lag
          will come and go in "bursts". Multiple commands will go thru
          simultaneously, followed by a period when seemingly no response
          occurs. Network lag is sometimes caused by the MUD's machine if
          the MUD has an inadequate hookup to the Internet. Utilities
          like PING and TRACEROUTE are good for tracking down the
          location of network lag.
          The two types of lag have different effects on the MUDder.
          Since machine lag slows everything down, all actions take
          longer. Machine lag is essentially like operating in slow
          motion. There is little real danger (other than becoming
          inattentive from boredom) to machine lag since you essentially
          have a longer reaction time. Network lag, on the other hand, is
          MUCH worse. It may take many seconds, even minutes, for a
          command to be entered, be processed and the response to that
          action to come back to the user. Obviously, the situation could
          have dramatically changed in the meantime. In short, the user
          might be responding to an event that the MUD thinks happened
          many seconds in the past. Or more to the point, you might
          already be dead before you even register that you should be
          thinking about fleeing.
          Each MUD has its own policy on how lag related problems are
          resolved. Commonly though, most MUDs will refuse reimbursement
          for lag induced death simply because it is an aspect of the
          game that the implementors have no control over and for the
          most part can not be verified.
          From Jeffrey Bennett (Batopr@SneezyMUD)
          
   "What is some of the slang or jargon I hear on these muds?"
          
  brb        --- Be right back.
  brt        --- Be right there.
  rl         --- Real life.  Something like "I'm bored rl" is commonly
                 heard.
  brb rl     --- Put the two together and you get "Be right
                 back, real life".  You know, like going to the bathroom.
  pk, pk'ing --- Player Killer and Player Killing.
  newbie     --- Someone who is new to the game.  Associated with the word
                 clueless.
  mob        --- A mobile, a monster in the game.
  immort     --- A player who has achived immortality on the mud and is
                 considered a god.
  imp(s)     --- The person(s) who run the mud.  They have final say over
                 everything.
  afk        --- Away from keyboard.
  afw        --- Away from window.
  inv        --- Your inventory, what you have on you and is not
                 currently equiped.
  equip      --- The items that you are currently using.  Like the armour
                  you are wearing.

   "What about this newsgroup, rec.games.mud.diku?"
          This newsgroup was designed to help filter a lot of traffic
          that flowed through the newsgroup rec.games.mud. The newsgroup
          is designed for discussions about anything pretaining to
          DikuMud games. Anyone or anything is open, though messages that
          obviously have no purpose, like "Big Fat Hairy Mud
          Rules/Sucks!!!!" are generally frowned upon and are a waste of
          peoples' time and of network resources.
          
   "What is DikuII, and when can I expect to see it?"
          DikuII is exactly that, the second version of DikuMud. The
          latest word is that this code will not be released due to the
          politics and pains of releasing public code. Unless of course,
          you have the April Fools DikuII release of a couple of years
          ago. However, all this aside, ValhallaMud runs on the DikuII
          code and is run by some of the original DikuMud authors.
          
   "What other derivatives are available then?"
          There are a large number of derivatives of the original
          DikuMud, far too many to list in fact, but a quick summary can
          be made. The first real variant on the DikuMud Gamma code was
          the Alfa DikuMud code. Not too many changes were made, but a
          number of bugs were corrected, and several new areas were
          added. In the time following this, other variants were
          released, for example Copper, Sequent, Pirate, TECHv3, and so
          forth, most without too many changes to the original code. As
          more new ideas came to the forefront, SillyMud was released,
          MercMud, and CircleMUD. MercMud has since branched off into a
          large number of other derivatives such as ROM, Envy, SMAUG, The
          Isles (NiMud), Ember, Oblivian, and more. The differences
          between these are generally in the basic features, but the
          MercMud tree introduced a new file format to the game for area
          files. Instead of all of the rooms being stored in one big
          file, they stored each area in its own file instead, making
          adding and removing areas somewhat easier.
          Each generation of DikuMud code tends to remove a number of
          bugs and problems from earlier code while introducing new
          features, bells, and whistles. If you are planning on using one
          of these derivatives, you are advised to find the one that
          suits your needs the most.
          See also the question on the differences between Silly, Merc,
          and Circle based muds in the next section.
          
   "Where can I find so-and-so?"
          If you are looking for a paticular client/patch/source, check
          the bottom list and look at those ftp sites. I try to maintain
          a general list of what is at these sites, but I can not always
          keep up-to-date of these sites' contents, so you will have to
          actually log in those sites and look around, chances are what
          you are looking for is at one of those sites.
          If by chance you do not find what you are looking for at one of
          those sites, then use the archie server. Archie is a archive
          database searcher that will aid in hunting down a paticular
          program or whatever it is you seek. Don't post to the newsgroup
          asking how to use archie, ask someone at your site if they can
          help. If you can not get help locally, then post the question
          to newsgroup such as news.newusers.questions or look in
          news.answers.
          
     _________________________________________________________________
                                      
Implementor / Building

   "I really like DikuMuds, I want to start my own!"
          Well, before you go off and do that, there are some things you
          need to know or have.
          A good, working knowledge of C. Though with the amount of
          enhanced muds that are available, this is still a good thing to
          know because you are never going to find 100% bug free code.
          A machine. Some general requirements include:
          + 32-bit processor
          + 8+ megs available (greater than 16 is desirable)
          + 2-8 megs of available memory
          + Network bandwith running (to Internet) at about 50
            kilobits/second
          + Explicit System Administrator Approval. Muds do not go
            unnoticed on any machine where there are any other users. Get
            this before you do anything or you could find hours and hours
            of hard work down the drain.
          + A large amount of time to devote to actual work on the mud
            and time to spend online in the game doing administrative
            duties. This has caused the eventual death of many muds.
          + A creative mind. Be creative about your work, no one really
            cares for a dull, boring mud.
          
          DikuMuds are not very CPU intensive, so very little CPU time is
          needed for all practical purposes.
          
   "What is the difference between Circle, Merc, and Silly?"
          There is a lot of differences between the codes, some that are
          easily recognizable by players, some that are not.
          CircleMUD is the closest to the original Gamma Diku with a lot
          of the bugs patched plus a lot of new features built in. It can
          compile on almost any platform, including Amigas and Windows 95.
          SillyMud is a very large and heavily modified release and if I
          remember what the author of this code (or maybe it was someone
          else) said is "it is big and it is ugly". Silly is filled with
          features but is has not been patched up to run on all systems,
          so beware it might take some hacking to get this to work on
          your machine.
          MercMUD is yet another highly developed and very different
          release. It has been made to work with a variety of machines
          including Macintosh and is very compact. The MercMUD base has
          branched off into a number of different bases now, including
          ROM, EnvyMUD, and SMAUG.
          It is recommended that you give each release your attention to
          find out which code is best for you, because none is
          specfically better than the other in general terms, it is up to
          you find out what you prefer.
          Further additions to this section are welcome, including
          comparing new code bases that exist.
          See also the question on which derivatives are available in the
          previous section.
          
   "Well, I do not want to run my own mud, but I would like to create an
          area."
          Some tips in writting an area:
           1. Get documentation - Basic DikuMud documention has been
              upgraded and released by the Curious Areas Workshop, and
              their Builders' Handbook can teach the most inexperienced
              beginner how to create an area.
           2. Ask a wizard at the mud you would like to build for for the
              documentation specifically for that mud. This is helpful
              because the actual format for area creation and many of the
              different bitvectors vary greatly from mud to mud.
           3. Planning. Plan out your area. Make a detailed map and think
              of a good general story or theme for your area before you
              start construction.
           4. Don't just make an area for the sake of it. If you make an
              area just for the sake of it, this usually shows and people
              do not want a boring, non-planned area. All you will do is
              waste your time and the admin's time.
           5. Many other helpful tips are given in the C.A.W. Builders'
              Handbook, and are available online at:
              http://democracy.queensu.ca/~fletcher/VieMud/Caw/Bhndbk/tips.html
            
   "Ok, I think I can start my own, but I hear there are bugs with the
          stock code, what are these?"
          Unfortunatly, all code will have bugs, here are some of the
          more well known bugs that should be looked at when starting
          your own bugs.
          (NOTE: These are all fixes that require knowledge of C... told
          you you needed to know C.)
          + Problem with realloc() in db.c with the world, and to a
            lesser extent mob_index and obj_index.
          + Problem in do_pour. This bug allows players to preform 'pour
            cup cup' and have an infinite water supply.
          + Problem on do_taste. A player can taste the bread, but when
            he tastes the bread, it will apply the breads fill value
            without actually eating the bread, thus having an infinite
            bread supply.
          + Problem in nanny(). In nanny(), if a player answers 'no' to
            the 'is that really your name?', the name pointer is never
            set to NULL. So, when you drop link, the same pointer will be
            free [using free()] again inside free_char().
          + Problem in generic_find(). Uses str_cmp() instead of isname()
            in FIND_OBJ_EQUIP.
          + Problem in affect_from_char(). The variable hjp is given the
            value hjp-next after hjp has been free()'d.
          + Problem in shop.c. A has the scroll 'a tattered scroll' he
            wishes to sell. Upon selling the item, a check is made for
            the keyword scroll in the shopkeeper's inventory. Since
            scrolls of identify and scrolls of recall are produced by the
            shop and have the keywords 'scroll', the game assumes that
            the first scroll is one of these items and destroys the item
            and never places it back for resale.
          + Problem in the init_socket. The ports do not seem to clear
            freely, so you end up with a lot of port binds. Here is a
            patch provided by Dean Gaudet <dgaudet@arctic.org>

    int init_socket(int port)
     {
      int s, sbuf, opt;
      struct sockaddr_in sa;
      struct linger ld;

      memset(&sa, 0, sizeof(struct sockaddr_in));
      sa.sin_family = AF_INET;
      sa.sin_port = htons(port);

      if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
      exit(0);
           }
          opt = 1;
     if (setsockopt(s,SOL_SOCKET,SO_REUSEADDR, (char *)&opt, sizeof(opt)) < 0)
{
        exit(1);
         }
          ld.l_onoff = 0;       /* let's make sure this isn't on */
          ld.l_linger = 1000; /* who cares what this is */

     if (setsockopt(s, SOL_SOCKET, SO_LINGER, (char *)&ld, sizeof(ld)) < 0) {
        exit(1);
     }

     ......

     if (bind(s, (struct sockaddr *)&sa, sizeof(sa)) < 0) {
        if( close(s) ) {
            syslogf("init_socket: error closing socket: %s", strerror(errno));
            exit(1);
        }
        exit(0);
     }
     if( listen(s, 5) < 0 ) {
        exit(1);
     }
     return(s);
 }
          + Check for unused variables by compiling with the -Wunused
            flag. This will help in streamlining your code.
          + Many typos, especially look in constants.c, act.obj1.c and
            act.other.c
          + Echo on/off:

            in interpreter.c, add this to the other includes:
                   #include <arpa/telnet.h>
            create the following strings:
                    char echo_off[]={IAC,WILL,TELOPT_ECHO,'\0'};
                    char echo_on[]={IAC,WONT,TELOPT_ECHO,'\n','\r','\0'};
            make the following macros:
                    #define ECHO_ON(d)     SEND_TO_Q(echo_on,(d))
                    #define ECHO_OFF(d)    SEND_TO_Q(echo_off,(d))

            Then place in appropriate places where you want to turn
            echo'ing on or off.

   "Are the any RFC's of interest?"
          The following RFC's can be of interest to Diku Implementors:
          + RFC 1413: Telnet Identification Protocol
          + RFC 854: Telnet Protocol
          + RFC 857: Telnet Echo Option
          RFC's are located on many sites including nic.ddn.mil and
          wuarchive.wustl.edu.
          
   "What runs on Linux?"
          CircleMUD and ROM 2.4 were both developped on Linux, so neither
          should have any problems compiling on Linux. Other muds such as
          MercMUD and EnvyMUD have been reported to compile with very few
          problems.
          
   "How can I make the original DikuMud run on Linux?"
          From Derek J. Middleton with corrections from Russell Schutlz
          To port DikuMud gamma 0.0 over to Linux, there are a couple
          things that should be modified. This may not be everything, but
          here is what needs to be done right off the bat:
          
         1. Add this to your #include section:
              #if defined(linux) || defined(SYSV)
              #include <sys/utsname.h>
              #include <unistd.h>
              #endif
         2. Change all calls to the srandom() function to srand()
         3. I believe there are two references like this. Change:

              gettimeofday(&last_time, (struct timeval *) 0);
         to:
              gettimeofday(&last_time, (struct timezone *) 0);
         4. In addition, the init_socket() function needs to be re-worked
            quite a bit. This is what I have:

int init_socket(int port) {
  int s;
  char opt = 1;
  struct sockaddr_in sa;
  struct hostent *hp;
  struct linger ld;
  struct utsname hostinfo;
  char *hostname;

  /* get the current hostname */
  if (uname(&hostinfo)<0) {
    perror("uname");
    exit(1);
  }
  hostname = hostinfo.nodename;

  memset(&sa, 0, sizeof(sa));

  hp = gethostbyname(hostname);
  if (hp == NULL)
  {
    perror("gethostbyname");
    exit(1);
  }
  sa.sin_family = hp->h_addrtype;
  sa.sin_port   = htons(port);
  s = socket(AF_INET, SOCK_STREAM, 0);
  if (s < 0)
  {
    perror("Init-socket");
    exit(1);
  }
  if (setsockopt (s, SOL_SOCKET, SO_REUSEADDR,
                  &opt, sizeof (opt)) < 0)
  {
    perror ("setsockopt REUSEADDR");
    exit (1);
  }

  ld.l_onoff = 1;
  ld.l_linger = 1000;

  if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &ld, sizeof(ld)) < 0)
  {
    perror("setsockopt LINGER");
    exit(1);
  }

  if (bind(s, (struct sockaddr *) &sa, sizeof(sa)) < 0)
  {
    perror("bind");
    close(s);
    exit(1);
  }
  listen(s, 3);
  return(s);
}

          Once this is done, you should be well on your way to having the
          Gamma DikuMud running on your Linux system.
          
   "Are there any books of interest to admins?"
          Yes, these should be available at your local bookstore:
             _Unix Network Programming_
                   Stevens, Richard W.
                   Prentice Hall, 1990
             _The C Programming Language_
                   Kernighan, Brian W.
                   Ritchie, Dennis M.
                   Prentice Hall, 1988
                   [This is THE bible on C programming]
                
   "Are there any muds available with online creation?"
          The Isles is a Merc based DikuMud with Online Creation among a
          lot of other enhancements.
          There is a copy of Envy mud with a ported version of The Isles
          OLC in it.
          SMAUG, a newer code release based on Merc has a built in OLC
          system.
          Circle 3.x is also going to have online creation. (See the next
          question)
          
   "When is Circle 3.0 going to be released?"
          See the CircleMUD FAQ for more details on CircleMUD 3.x
          
   "Are there any mailing lists for administrators?"
          CircleMUD has a mailing list at <listserv@post.queensu.ca>. To
          subscribe, send it a piece of mail with the body 'subscribe
          circle <first name> <last name>'.
          MercMUD and EnvyMUD have a mailing list at
          <merc-l-request@webnexus.com>
          To subscribe to this, send a piece of mail to that address with
          the word 'subscribe' in the body.
          ROM also has a mailing list now. This can be found at
          <rom-request@cmc.net>. To subscribe, send a piece of mail to
          this address with the word 'subscribe' in it.
          
   "Do I need to follow the license agreement?"
          YES YES YES YES YES!! No matter how much you have or think you
          have changed in the code, you must included both the 'credits'
          file and the names of the authors in the initial logon screen.
          There are no ifs, ands, or buts about this.
          
   "Should I credit my area authors too?"
          Of course you should! The best way to do this is to either have
          a help entry for 'areas' or 'zones' with a listing of zones and
          their authors. Another way to do this would be to use the Merc
          family method of having an 'areas' command which lists the
          areas and authors. A final method would be to list them in the
          credits of your mud. If all of your authors are credited
          publically, it gives people more incentive to release areas to
          the public and to create areas for your mud.
          To aid this, Nino Ruffini (Steppin of JediMUD) has lent his
          time in order to compile a fairly extensive listing of areas
          and their authors. This has been posted once to rgmd, and will
          soon be found on a web page near you! Keep your eyes peeled for
          it.
          
     _________________________________________________________________
                                      
Resources

   Below is a list of commonly used sites for DikuMud related items. All
   sites/contents are subject to change.
   
Web Resources

   There are a good number of resource sites online and more seem to crop
   up every day. The following is by no means a definitive list of
   available resources, but should serve as a good starting point.
   
   http://www.dikumud.com/diku/
          The official DikuMud homepages.

   http://www.efn.org/~rtaylor/
          This is the official release site of ROM.
          
   http://www.circlemud.org/
          The official CircleMUD homepages, complete with links to the
          CircleMUD FAQ, various documentation for running a CircleMUD,
          etc.
          
   http://democracy.queensu.ca/~fletcher/Circle/
          This is the official CircleMUD FAQ site, as well as being the
          official home of this FAQ. Also found here are a number of
          CircleMUD code snippets, and links to CircleMUD area updates.
          
   http://democracy.queensu.ca/~fletcher/VieMud/Caw/
          The official Curious Areas Workshop homepages. These pages
          include area releases and the C.A.W. Builders' Handbook.
          
   http://www.mudconnect.com/
          The Mud Connector. This site has links to many online
          resources, as well as links to over 400 muds.
          
   http://www.eden.com/~hsoi/mud/
          This site is the quintessential Macintosh Mudding Resource
          site, with links to Mac Clients, code, and so forth.
          
   http://www.goodnet.com/~esnible/mudinfo.html
          A site with many links to building resources online, as well as
          links to several area archives.
          
   http://www.game.org/heirarchy.html
          A page listing the approximate family tree of the DikuMud
          server, complete with links to the home sites of many of the
          DikuMuds listed.
          
   http://tf.tcp.com/~hawkeye/tf/
          This is the homepage of the TinyFugue Client. This page gives
          complete instructions on how to go about using the client and
          how to get it.
          
FTP Resources

   ftp://ftp.math.okstate.edu/pub/muds/
          This site contains a general mishmash of mud related software.
          Unfortunately, it is somewhat out of date in general.
          
   ftp://ftp.pvv.unit.no/pub/mud/
          This has the server software for MUME as well as a few
          utilities for DikuMuds. There are also some clients available
          here.
          
   ftp://ftp.tcp.com/pub/mud/
          This site is mostly out of date, but has a fairly large amount
          of mud related items, including having the most recent releases
          of the TinyFugue client.
          
   ftp://marble.bu.edu/pub/diku/
          This site is an older site pertaining to DikuMuds.
          
   ftp://grind.isca.uiowa.edu/unix/mud/dikumud/
          This site contains a fair number of servers as well as a few
          areas, but does not tend to be updated very often.
          
   ftp://ftp.envy.com/pub/mud/
          This is the official release site of EnvyMud.
          
   ftp://ftp.game.org/pub/mud/diku/
          Probably one of the largest and most up to date FTP sites. It
          contains almost every single DikuMud related server that has
          been publically released.
          
   ftp://ftp.circlemud.org/pub/CircleMUD/
          This is the offical site of the CircleMUD distribution. It
          contains various releases of the CircleMUD server, as well as a
          plethora of CircleMUD administrator contributed code and areas.
          
   ftp://ftp.io.com/pub/mud/
          This site contains a number of items relevant to DikuMuds, as
          well as being the homesite for the Hidden Worlds Mud.
          
   ftp://democracy.queensu.ca/pub/USERS/fletcher/
          The official release site of Curious Areas Workshop, an area
          building group, also known for the C.A.W. Builders' Handbook.
          
   ftp://ftp.cis.ufl.edu/pub/src/games/mud/
          The official site of the SillyMUD distribution.
          
   ftp://ftp.lysator.liu.se/pub/lpmud/clients/
          A site for PMF, an alternative client to TinTin.
          
   ftp://princeton.edu/pub/tintin++/dist/
          The official release site of the TinTin++ client.
          
     _________________________________________________________________
                                      
Final Word

   Playing a mud of any sort is NOT a right. The people who run the game
   and the people who owns/runs the system that you are playing from are
   not required to let you play. If you abuse your privledge of playing,
   there are good chances that it will be taken away.
   
     _________________________________________________________________
-- 
Erm... Yeah.  Whatever.

User Contributions:

Comment about this article, ask questions, or add new information about this topic:


[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:
fletcher@democracy.queensu.ca (Alex)





Last Update March 27 2014 @ 02:11 PM