
Wer noch nicht weiss, was ein MUD ist, hat schon auf die Hauptseite nicht gut genug aufgepasst. Aber ich sags euch trotzdem mal.
MUD - Multi-User-Dungeon. Ein text-basiertes online-spiel, das von viele leute interaktiv und gleichzeitig gespielt werden kann.
Mehr dazu auf mud.de
Was ist also PerlMUD? Erstens ist es kein richtiges MUD. Man kann dort jedenfalls gar nicht spielen. Wieso also ueberhaupt? Ein bisschen Hintergrund:
Eine menge Muds der sorte LDMud koennen unter sich kommunizieren mit hilfe eines UDP-Protocols namens Intermud. Dieses Protocol ist relativ einfach und trotzdem kann es alles was man braucht.
Eines Tages wollte ich wissen, wie das funktioniert, also habe ich mir ein Perl programmchen geschrieben, das mit diesem Protocol auch mit die MUDs kommunizieren kann.
Und das ist PerlMUD!
Dazu gibt es noch ein kleines INETD_HOSTS welches ein paar MUDs als anfangshilfe enthaelt. Dieser Datei wird in ./etc/ erwartet.
Wie funktionierts? Antwort: Mehr oder weniger :) Da muss ich mal einiges an Fehlermeldungen noch einbauen, wenn ich mal lust dazu habe. Und vielleicht eine richtige Doku schreiben, etc. pp. Man kann immerhin 'help' eingeben, und kriegt eine nicht-ganz-voellstaendige-liste der moegliche Befehle.
Ein paar der wichtigsten:
'muds' - eine liste die erreichbaren muds anzeigen.
'who @<Mudname>' - zeigt eine liste wer an dem mud zu erreichen ist.
'tell <name>@<Mudname>' - eine nachricht an jemand senden.
'qhosts <Mudname>' - die hostliste von einem mud auslesen und in die eigene anbinden.
'debug on|log|off' - debugging informationen (UDP pakete inhalt, parsing informationen) ausgeben am bildschirm, in eine log datei (debug_PerlMud.log) oder ausschalten.
Einige Zeit spaeter...
Das PerlMud ist nun komplett neu geschrieben worden. Ich wollte sowieso versuchen die intermud3 protocol zu integrieren, also gibt es nun pro protocol ein Module, und dazu ein gemeinsames Datenbank (momentan mit DBD::SQLite).
PerlMUD version 2
Intermud2 Module - in MUD/Intermud im @INC speichern
Database Module - in MUD/Intermud im @INC speichern
Database Schema - muss im gleichen verzeichnis wie die datenbank existieren
NB: Intermud3 ist noch nicht integriert, drum auch noch nicht vorhanden hier, steht alles in der TODO liste!
Die Datenbank erstellt sich von selber, sofern nicht vorhanden, aus der information in die datei 'perlmud.tab', sofern die datenbank auch 'perlmud.db' heissen soll. (Gesucht wird eine datei, die mit name genauso heisst wie die datenbank, mit endung '.tab', und zwar in die gleiche verzeichnis)