UNItopia News: Brett Computer, Gruppe HomeMud, Artikel 246

-------------------------------------------------------------------------------
Titel: HomeMud-FAQ
Artikel: 246                                           Bezug: 0
Verfasser: Croft                                       Datum: 05.10.03 15:48:13
-------------------------------------------------------------------------------
 ------------------------------------------------------------------------------
-
                  _   _ _   _ ___ _              _
                 | | | | \ | |_ _| |_ ___  _ __ (_) __ _
                 | | | |  \| || || __/ _ \| '_ \| |/ _` |
                 | |_| | |\  || || || (_) | |_) | | (_| |
                  \___/|_| \_|___|\__\___/| .__/|_|\__,_|
                                          |_|
     _   _                      __  __ _   _ ____      _____ _    ___
    | | | | ___  _ __ ___   ___|  \/  | | | |  _ \    |  ___/ \  / _ \
    | |_| |/ _ \| '_ ` _ \ / _ \ |\/| | | | | | | |___| |_ / _ \| | | |
    |  _  | (_) | | | | | |  __/ |  | | |_| | |_| |___|  _/ ___ \ |_| |
    |_| |_|\___/|_| |_| |_|\___|_|  |_|\___/|____/    |_|/_/   \_\__\_\

Verfasser: Croft@UNItopia
Datum: 05.10.2003 15:45

Aktuelle Version ist stets am Brett Computer:HomeMUD zu finden.
URL: http://www.unitopia.de/cgi-bin/news?news=/Computer/HomeMud
-------------------------------------------------------------------------------

 Fragen in dieser HomeMud-FAQ vom 05.10.03:

 1. Was ist ein HomeMud?
 2. Was ist der (Game)Driver?
 3. Was ist die MudLib?
 4. Ich will ein HomeMud.  Wie bekomme ich eins?
 5. Der Driver findet die MudLib nicht: 'Bad mudlib directory'?
    Der Master laesst sich nicht laden: 'Failed to load master object
    'secure/master''?
 6. Allgemein: Das HomeMud faehrt nicht hoch oder stolpert ueber sehr viele
    Fehler!  Was kann ich tun?
 7. Das HomeMud faehrt hoch aber es gibt dabei viele Fehlermeldungen ala
    'Illegal use of save|restore_object'!  Was nun?
 8. Wie werde ich Gott in meinem HomeMud?
 9. Wie werde ich Admin in meinem HomeMud?
10. Ok. Das HomeMud hab ich jetzt.  Aber die Enzyclopedia laeuft nicht.
    Was tun?
11. Damit tut es auch noch nicht richtig.  Es kommt dabei zu einer Too Long
    Evaluation!
12. Wo aendere ich den Namen des Muds?
13. Und wo sind jetzt die Domains und aehnliche Verzeichnisse wie /z?
14. Ich darf nicht ueberall schreiben!?!  Einigen Objekten scheinen Rechte
    zu fehlen?
15. Ich habe im HomeMud viele schoene Sachen programmiert.  Wie kann ich
    die nun in UNItopia eingliedern lassen?
16. Ich will aus meinem HomeMud ein richtiges Mud machen.  Was sollte ich
    beachten?
17. Zugriffsbeschraenkungen: Was ist ACCESS.ALLOW?  Was heisst 'No Matching
    Entry.'?
18. Was ist der ERQ?  Was will mir 'exec of erq demon '*/erq' failed.'
    sagen?
19. Ich bin Gott in UNItopia und will im HomeMud fuer UNItopia
    programmieren.  Mir fehlen aber einige Sachen wie z.B. die
    Monsterrassen.  Wo finde ich die?

---------------------------------------------------------------------------

 1. Was ist ein HomeMud?

    Ein HomeMud ist nichts anderes als ein Mud, das man bei sich zu Hause
    auf dem Rechner hat.  In der Regel sind es nur wenige Raeume und wird
    als ruhige (garantiert niemand, der dazwischenredet oder bruellt) und
    billige (das Modem kann ruhen) Programmierumgebung benutzt.  Das
    HomeMud besteht aus 2 Teilen: dem (Game)Driver und der MudLib.

---------------------------------------------------------------------------

 2. Was ist der (Game)Driver?

    Der (Game)Driver ist sozusagen das Herz des Muds.  Er kuemmert sich um
    die externe Funktionalitaet (das Einloggen, usw) bzw. stellt auch die
    Programmierumgebung und einen gewissen Teil der Funktionen.

    Die erste Version des Drivers wurde 1989 von Lars Pensjoe entwickelt.
    Daher stammen auch die Bezeichnungen LPMUD (Lars Pensjoe MUD) und LPC
    (Lars Pensjoe C).  Auf ihn spielt auch der Lars bei TOD an.  Ab 1991
    kuemmerte sich Joern Rennecke (Amylaar) um die Weiterentwicklung und
    seit 1997 ist Lars Duening (Mateese) zustaendig.

    UNItopia benutzt die 'current' Version des LDMud Drivers.  Zum jetzigen
    Zeitpunkt (05.10.03) wird die Version 3.2.10-dev.600 verwendet.

    Der Driver kuemmert sich noch nicht um die Sprache.  D.h. mit diesem
    Driver werden sowohl englische als auch deutsche Muds betrieben.  Die
    Driversourcen findet man entweder auf dem UNItopia-Server unter
    ftp://ftp.unitopia.de/Driver/LDMud/ldmud*.tar.gz
    oder direkt auf der Homepage des LDMud-Projektes
    http://www.bearnip.com/lars/proj/ldmud.html

    Eventuelle Diffs fuer die verschiedenen Patchlevel befinden sich auch
    dort. Die Diffs werden unter Unixen mit
    gzip -cd <Diff> | patch -p1 -d <Verzeichnis_in_dem_die_Sourcen_sind>
    angewendet.  Falls gzip meckert, ist das Diff evtl. schon im Klartext.

    Wie der Driver zu installieren ist, entnimmt man der beiliegenden
    INSTALL-Datei.  Meist reicht es in src/settings/unitopia die 'exec
    ./configure [..]'-Zeile anzupassen, anschliessend aus dem
    src-Verzeichnis heraus die Datei auszufuehren und mit 'make', 'make
    install', 'make utils', 'make install-utils' den Driver zu uebersetzen
    und zu installieren.  Letztlich kann man mit strip den Driver von
    ca. 1.8 MB auf ca. 0.7 MB verkleinern.

    Mit Hilfe der Cygwin-Tools auf
    http://sourceware.cygnus.com/cygwin/
    kann man sich den Driver auch unter Win32 selbst uebersetzen.

    Wer zu faul ist sich den Driver selbst zu compilieren findet bereits
    uebersetzte Versionen auf dem UNItopia-FTP-Server.
    Fuer Linux:
    ftp://ftp.unitopia.de/Driver/Linux/driver.bin-*.tar.gz
    Fuer Win32:
    ftp://ftp.unitopia.de/Driver/Win32/bin-ldmud-*.exe

    Im Laufe der Zeit hatte das Binary des Drivers verschiedene Namen.
    Ganz alte Versionen hiessen 'parse', aeltere Versionen 'driver'.
    Heutzutage nennt sich das erzeugte Binary 'ldmud' (jeweils
    gegebenenfalls gefolgt von einer Versionsnummer).

---------------------------------------------------------------------------

 3. Was ist die MudLib?

    Wenn der Driver das Herz des Muds ist, dann ist die MudLib (Library =
    Bibliothek) der restliche Koerper des Muds.  In ihr befinden sich viele
    Standardobjekte und Funktionen, die man so braucht.  Mittlerweile gibt
    es recht viele verschiedene MudLibs.  Die deutschsprachigen MudLibs
    basieren meist auf der MudLib von Morgengrauen oder UNItopia.
    Da die MudLibs von den jeweiligen Admins weiterentwickelt werden,
    entstehen natuerlicherweise nach und nach Unterschiede.
    Die MudLibs der Muds sind meist auf deren FTP-Servern zugaenglich.
    Die UNItopia-MudLib ist unter
    ftp://ftp.unitopia.de/UNItopia/mudlib.tar.gz
    ftp://ftp.unitopia.de/UNItopia/muddocs.tar.gz
    zu finden.  Ersteres ist die MudLib und zweiteres die Doku der MudLib.

    Falls die MudLib mal nicht mit dem Driver will, sollte man sich von
    beidem die neueste Version besorgen.

---------------------------------------------------------------------------

 4. Ich will ein HomeMud.  Wie bekomm ich eins?

    Das haengt davon ab, auf was fuer einem System es aufgebaut werden
    soll.

    Man besorgt sich einen passenden Driver fuer das System (vgl Frage 2).
    Entweder direkt als Binary oder als Source, den man selbst uebersetzt.
    Und man braucht noch eine MudLib (vgl Frage 3).  Hat man beides, steht
    dem eigenen HomeMud eigentlich nichts mehr im Wege.

    Fuer Windows gibt es mittlerweile auch ein Driver-Mudlib-Bundle, in
    dem das HomeMud komplett vorkonfiguriert ist:
    ftp://ftp.unitopia.de/pub/Driver/Win32/HomeMUD-yyyymmdd.zip
    yyyymmdd steht hierbei fuer das Erstellungsdatum.

    Ansonsten lohnt sich vielleicht auch ein Blick nach
    http://www.unitopia.de/
    ftp://ftp.unitopia.de/
    ftp://ftp.uni-stuttgart.de/pub/misc/games/mud/
    ftp://ftp.mud.de/

---------------------------------------------------------------------------

 5. Der Driver findet die MudLib nicht: 'Bad mudlib directory'?
    Der Master laesst sich nicht laden: 'Failed to load master object
    'secure/master''?

    Dann sucht der Driver wohl an der falschen Stelle nach der MudLib.  Mit
    'ldmud -m<Pfad>' kann man den Driver auf die richtige Spur bringen.
    Alternativ sollte man beim Uebersetzen des Drivers das korrekte
    Verzeichnis in der richtigen Settings-Datei angeben.

    Zweitere Fehlermeldung kann allerdings auch bedeuten, das der Master
    zwar an der richtigen Stelle liegt, aber ihn irgendjemand verpfuscht
    hat.  In diesem Falle sollten noch diverse Compile-Fehler angezeigt
    werden.

---------------------------------------------------------------------------

 6. Allgemein: Das HomeMud faehrt nicht hoch oder stolpert ueber sehr viele
    Fehler!  Was kann ich tun?

    Stelle sicher, dass du eine moeglichst aktuelle Version des Drivers und
    der MudLib hast (vgl Frage 2 und 3).  Mitunter kann es auch sein das
    der neuste Driver Probleme hat, dann ist es ratsam den Driver zu nehmen
    mit dem UNItopia gerade laeuft ;-).  Diese Version findet man entweder
    mit einem 'wer unitopia' von einem anderen Mud aus oder ueber
    http://unitopia.uni-stuttgart.de/cgi-bin/wer
    heraus.

    Manchmal wird vergessen die Datei /doc/driver/setup_mudlib der MudLib
    auszufuehren.  Hiermit werden einige wichtige Verzeichnisse und Dateien
    angelegt, die sich nicht in den Archiven befinden.

    Falls es trotzdem Probleme gibt: Schreibe einen Artikel an das
    Computer/HomeMud Brett.  Hierbei solltest du dein Betriebssystem, die
    Driverversion, eine kurze Beschreibung des Problems und evtl Teile des
    Debug-Logs bzw. der Driver-Ausgaben im Artikel angeben.  Meistens findet
    sich recht schnell die Loesung.

---------------------------------------------------------------------------

 7. Das HomeMud faehrt hoch aber es gibt dabei viele Fehlermeldungen ala
    'Illegal use of save|restore_object'!  Was nun?

    Zwei moegliche Ursachen:
    Falls es sich um Objekte aus dem apps/ Verzeichnis handelt, die sich
    nach var/ abspeichern oder von dort laden wollen, so liegt der Verdacht
    nah, dass der MudLib beim Auspacken an einigen Stellen Carriage Returns
    (CR aka ^M aka \r) als Zeilenende-Kennung hinzugefuegt wurden, da ein
    vermeintlich intelligenter Entpacker unter Windows auf Grund seiner
    Einstellungen dies fuer noetig hielt.  Irgendwo unter den Optionen
    laesst sich die 'smart decompression of tars' (oder so aehnlich)
    abstellen und noch mal neu die MudLib auspacken.

    Die andere Moeglichkeit waere, dass den Objekten die Rechte fehlen sich
    zu saven und zu restoren.  Entweder die Rechte vergeben oder einfach
    die gesammten Zugriffsrechte deaktivieren (vgl Frage 14).

---------------------------------------------------------------------------

 8. Wie werde ich Gott in meinem HomeMud?

    Dazu muss man das HomeMud verlassen haben.  Man nehme sich mit einem
    Editor das eigene Playerfile vor und aendere die Zahl die beim Eintrag
    "level" steht von 1 auf 25.  Man sollte etwas aufpassen beim editieren,
    da sonst die Datei nicht mehr korrekt eingelesen werden kann.
    Die Playerfiles finden sich unter
    /var/players/<Anfangsbuchstabe>/<Name>.o
    also z.b. fuer Croft waere es
    /var/players/c/croft.o
    Wenn man sich nun einloggt, sollte man Level 25 haben.

---------------------------------------------------------------------------

 9. Wie werde ich Admin in meinem HomeMud?

    Um Admin zu werden, trage man seinen kleingeschriebenen Namen in der
    MudLib in /sys/config.h in das Define ADMINS ein.  Damit das ueberall
    aktiv ist, sollte man das HomeMud kurz runter und wieder hochfahren.
    Alternativ kann man auch den Driver mit 'ldmud -D ADMINS='({"croft"})''
    starten.

---------------------------------------------------------------------------

10. Ok. Das HomeMud hab ich jetzt.  Aber die Enzyclopedia laeuft nicht.
    Was tun?

    Man lese das README im MudLib-Verzeichnis und stolpere ueber das
    zc /apps/help_tool->do_read()
    das man als Admin (vgl Frage 9) ausfuehren muss.

---------------------------------------------------------------------------

11. Damit tut es auch noch nicht richtig.  Es kommt dabei zu einer Too
    Long Evaluation!

    Dann sollte man den Driver mit einer hoeheren Evalgrenze starten.
    Unter Linux waer das z.B. mit 'ldmud -E500000'.
    Alternativ koennte man dem Driver beim Uebersetzen schon eine hoehere
    Evalgrenze setzen.

---------------------------------------------------------------------------

12. Wo aendere ich den Namen des Muds?

    Man schaue in der MudLib nach /sys/config.h und aendere das
    entsprechende Define MUD_NAME.  Alternativ starte man den Driver mit
    'ldmud -D MUD_NAME='"Croftopia"''.

---------------------------------------------------------------------------

13. Und wo sind jetzt die Domains und aehnliche Verzeichnisse wie /z?

    Tja, du hast halt nicht UNItopia bei dir auf dem Rechner, sondern nur
    ein HomeMud mit der UNItopia-MudLib.  Die Domains sind nicht fuer den
    Hausgebrauch gedacht.  Es gibt zwar halboeffentliche Tars, aber die
    sind nur fuer Domainlords und Leuten mit aehnlichen Aufgabenfeldern
    zugaenglich.

---------------------------------------------------------------------------

14. Ich darf nicht ueberall schreiben!?!  Einigen Objekten scheinen Rechte
    zu fehlen?

    Goetter und Objekte haben hier nur bestimmte Zugriffsrechte.  Man muss
    bestimmten Gruppen angehoeren um auf bestimmte Files Rechte zu haben.
    Im HomeMud ist das wohl alles eher ueberfluessig, deswegen ist es
    ratsam den Driver mit 'ldmud -D NO_ACLS' zu starten.  Dann darf im
    HomeMud jeder und alles ueberall zugreifen.  Damit sind dann auch
    weitere Probleme mit Objekten, denen die Rechte fehlen, hinfaellig.

---------------------------------------------------------------------------

15. Ich habe im HomeMud viele schoene Sachen programmiert.  Wie kann ich
    die nun in UNItopia eingliedern lassen?

    Zitat Gnomi:
    "Nur um es klarzustellen: Das Gott-Sein ist eine notwendige Bedingung
    dafuer, dass es in UNItopia eingegliedert wird, es gibt aber keine
    Garantie dafuer. In der Tat ist diese Reihenfolge (erst was im HomeMUD
    bauen, dann Gott werden, dann einbauen) aeusserst unguenstig, weil vor
    Beginn eines Projektes das Konzept mit den zustaendigen Goettern
    diskutiert werden soll, um schon im vornherein Probleme und Fehler zu
    vermeiden und den Einbau sicherzustellen.  Schliesslich kann es
    passieren, dass keinem Dein Projekt gefaellt, weil es z.B. nirgendwohin
    passt. Diese Diskussion des Konzeptes faellt bei Dir weg, was dann im
    Nachhinein zur Ablehnung Deines Projektes oder zu grossen Aenderungen
    fuehren kann. Ausserdem fehlen Dir bei Beginn des Projektes Ressourcen
    von UNItopia, was dazu fuehren kann, dass Du Objekte programmierst, die
    es schon laengst in UNItopia gibt, Dir aber nicht zur Verfuegung
    stehen. (Falls Du keine Freunde hast, welche sich in der Programmierung
    in UNItopia auskennen, kann es dazu kommen, dass Du zu altem Codestyle
    tendierst, also veraltete Funktionen, welche es nachwievor gibt,
    nutzt.) Daher solltest Du Dir ueberlegen, erst Gott in UNItopia zu
    werden und dann Dein Projekt in Angriff zu nehmen.
    Ach ja, und dann gibt es immer noch die Moeglichkeit, dass an einem
    solchen Projekt bereits in UNItopia gearbeitet wird, so dass ein
    zweites garantiert nicht eingebaut wird..."

---------------------------------------------------------------------------

16. Ich will aus meinem HomeMud ein richtiges Mud machen.  Was sollte ich
    beachten?

    In
    http://unitopia.uni-stuttgart.de/misc/auchwill.html
    steht eine Zusammenstellung dessen, was man so beachten sollte, wenn
    man ein eigenes Mud aufmachen will.  Desweiteren findet sich ein leider
    durchaus realistisches Szenario eines neuen Muds dort.

---------------------------------------------------------------------------

17. Zugriffsbeschraenkungen: Was ist ACCESS.ALLOW?  Was heisst 'No Matching
    Entry.'?

    Mit ACCESS.ALLOW kann man bestimmen, welche IPs wann Zugriff auf das
    HomeMud haben.
    Die Syntax der Regeln ist kurz gesagt:
    <ipnum>:[p<port>]:<class>:<max>:<start>:<end>:<text>
    <ipnum>:[p<port>]:<class>:<max>:h<hours>:w<days>:m=<text>

    Eine genauere Dokumentation befindet sich in der ACCESS.ALLOW Datei,
    die den Driver-Sourcen beiliegt.

    Steht nur nachfolgende Zeile in der Datei, so kann sich jeder zu jeder
    Zeit einloggen:
    *.*.*.*:0:-1:0:0:No msg

    Falls in der Datei z.B. nur folgender Eintrag drinsteht, koennen sich
    nur Nutzer von localhost im HomeMud einloggen:
    127.0.0.1:0:-1:0:0:No msg

    Die Fehlermeldung 'No Matching Entry.' deutet an, das zu einem
    versuchten Zugriff kein Eintrag gefunden konnte.  Das passiert
    z.B. falls sich nur der localhost-Eintrag im File befindet und sich
    jemand von aussen einloggen will. In diesem Fall koennte man mit
    der Zeile
    *.*.*.*:1:0:0:0:Externer Zugriff auf das HomeMud ist nicht erlaubt.
    einen dezenten Hinweis geben.

---------------------------------------------------------------------------

18. Was ist der ERQ?  Was will mir 'exec of erq demon '[..]' failed.'
    sagen?

    Der ERQ ist der External Request Demon.  Mit dessen Hilfe ist es
    moeglich externe Programme auszufuehren, also z.B. einen NPC an
    gnuchess anzubinden, damit dieser Schach spielen kann.

    Genauere Dokumentation befindet sich unter /doc/concepts/erq.

    Die Fehlermeldung deutet daraufhin, dass sich der ERQ nicht an der
    Stelle befindet, an der ihn der Driver vermutet.  Entweder ist der
    Eintrag in der Settings-Datei des Drivers falsch oder der ERQ ist
    schlichtweg nicht installiert.  Da man allerdings den ERQ im HomeMud in
    der Regel nicht braucht, empfiehlt es sich den Driver mit 'ldmud -N' zu
    starten.  Damit wird der ERQ nicht aktiviert und somit auch nicht
    vermisst.

---------------------------------------------------------------------------

19. Ich bin Gott in UNItopia und will im HomeMud fuer UNItopia
    programmieren.  Mir fehlen aber einige Sachen wie z.B. die
    Monsterrassen.  Wo finde ich die?

    Unter /static/adm/ und /var/ befinden sich im HomeMud nicht alle
    Dateien, die es in UNItopia gibt.  Z.B fuer die Monsterrassen empfiehlt
    es sich /var/MONSTER_DEFS ins HomeMud zu kopieren.

    Es wird momentan ueberlegt fuer Goetter mit HomeMud ein spezielles
    Archiv zusammenzustellen, in dem derartige Dateien enthalten sind,
    damit man sie sich nicht immer einzeln und ungepackt ziehen muss.