Es hat sich eventuell schon herumgesprochen, dass ich angefangen habe,
psycMUVE in die Gueldenland-MUDlib zu cross-portieren, damit psyc
letztendlich Intermud2 und Intermud3 ersetzen kann. Der langfristige
Plan ist, auch interne Kommunikation mehr oder weniger auf psyc
umzustellen. Damit waeren dann die verschiedenen Systeme vom Tisch und
die Spieler haetten die Vorteile eines modernen Chatservers die
psycmuve bietet.
|
|
Wo gibt es den original LPC-Code von psycMUVE?
Wah, das sieht ja kurdisch aus!
- Ja; psycMUVE ist im Prinzip ein eigenstaendiges System. Aber
sobald ich mit meinem crossport fertig bin, werde ich den auch zur
Verfuegung stellen, zumindest fuer die MGlib-Derivate sollte das eine
grobe Vereinfachung sein. [Oder wir bauen es gleich ifdeffig/modular in
den MUVE code ein --CvL]
Ok, das ist also die Ferne. Der momentane Stand ist:
- das Gueldenland ist ueber psyc von anderen psyc-Servern erreichbar
- es kann lokale Chatebenen in psyc-Raeume exportieren
- es gibt ein Template fuer einen Gatewayraum zwischen unserem Ebenensystem und psyc
Was fehlt?
- das lokale Interface fuer die Mudder gibt es noch nicht. Das
sollte aber nicht zuviel Aufwand sein, da die Infrastruktur ja schon
laeuft. Sprich, wenn ich ihm sage wie er an die MUD-User ran kommt und
wie er ihnen Nachrichten zustellen kann, reicht das schon.
- ich habe nur das psyc-Protokoll uebernommen. Die anderen
Protokolle, die psycMUVE unterstuetzt, sind bei mir rausgeflogen. Es
ist kein Thema sie wieder reinzunehmen - aber wieso? ;) Zumal jede
psyc-Ressource von anderen psyc-Servern angesprochen werden kann, zu
denen man dann in der Regel schon noch mit irc oder jabber usw.
connecten kann.
Was bedeutet das jetzt?
- man kann sich bereits auf einem anderen psyc-Server einloggen und in den psyc-Chatraeumen des Gueldenlandes reden
- das Gueldenland kann theoretisch Chatraeume auf anderen
psyc-Servern betreten. Allerdings geht das mudseitig noch nicht, weil
ich das lokale Interface fuer die Spieler noch nicht habe. Es ist aber
schon moeglich, ueber psyc ueber das Gueldenland eine relay-Verbindung
aufzubauen.
- LPC orientiert an LDmud. Keine Schwierigkeiten mit LD 3.2 und 3.3. Angeblich ab 3.2.9 lauffaehig.
- Ansatzweise Kompatibiltaet zu MudOS? und Amylaar - aber nicht komplett funktionsfaehig
- compat-Mode; allerdings nur an ganz wenigen Stellen davon
abhaengig. Das wichtigste ist dass man in ca. einer Hand voll Files
eventuell reset() und create() an native anpassen muss.
- keine Sicherheitschecks fuer call_other - in einem MUD muss die
Sicherheit andernweitig gewaehrleistet werden. Allerdings ist das ganze
auch ohne Sicherheit noch sicherer als Intermud2. Wer seinen Wizards
vertraut, braucht sich hier keine Sorgen zu machen ;)
- Zum TCP-Verbindungsaufbau wird net_connect benutzt. Anders als
bestimmte andere Protokolle funktioniert psyc mit net_connect wirklich.
- Das psyc-Netz ist dezentral. Chatraeume werden in url-Form angegeben, nach dem Muster
psyc://host/@ChatRaum (optional mit Port wenn nicht der Defaultport 4404 verwendet wird). Chatuser werden genauso angegeben: psyc://host/~username . [Man kann sich auch /alias'es setzen wonach remote User wieder wie einfache Nicknames erscheinen --lynX]
- Jeder Host kann eigene Raeume und User definieren.
- Wenn ein User auf einem Server einen Raum auf einem anderen
betreten will, bauen die beiden Server (falls nicht schon existent)
eine TCP-Verbindung zueinander auf ueber die die Nachrichten dann
gerouted werden.
- Aehnliches gilt, wenn zwei User auf verschiedenen Nachrichten direkt miteinander sprechen wollen.
- UDP gibts auch noch ... tja oehm, das ist so eine Sache.
Anscheinend existiert es nur als Fallback und nur fuer unwichtige
Nachrichten. [Für Broadcasts an Empfänger mit denen man später nicht
weiter reden wird und bei denen der Empfang nicht wahnsinnig wichtig
ist, also in erster Linie für Presence-Announcements. Verloren gehen
UDP Pakete ja nur wenn das Netz echte Sorgen hat, oder der Router nen
Fußtritt bekommt --lynX]
- psyc-Raeume sind programmierbar. Es gibt schon fertige Raeume, die
RSS-Feeds einspeisen. Wer sich an die ganzen Probleme mit d-news
erinnert, weiss das zu schaetzen... [allerdings ist es der PSYCige Weg nur einen RSS-Gateway pro Newsfeed zu betreiben. Andere PSYC-Server linken diesen und erhalten die News zugepusht, sogar multigecastet --lynX]
Da es im Gueldenland selber bisher noch nicht moeglich ist als Spieler
psyc zu nutzen (noch keine Interface-Befehle implementiert ...) kann
das ganze nur ueber andere psyc-Server oder psyc-MUDs getestet werden.
Zu diesem Zweck habe ich ein Gateway-Template fuer lokale Ebenen im GL
geschrieben (ca 20 Zeilen Code - also ziemlich einfach). Benutzt wird
der in einem Gatewayraum fuer D-code. Im Gueldenland selbst und ueber
einen fernen psyc-Server sieht das dort dann etwa so aus:
[D-code:Danny4!ve.symlynx.com!i4gw@GueldenLand] yo..
[D-code:Dan@GueldenLand] disregard, nur ein test fuers wiki
Fuer psyc heissen die Leute ungefaehr so; die folgende Zeile ist
eine wie sie im telnet-Interface eines psyc-Servers angezeigt wuerde:
«psyc://ve.erinye.com/~dannycool» dannycool betritt i2/d-code.
Selber probieren:
Wer sich fuer andere psyc-Raeume interessiert, die wir mit
Intermud4-ueber-psyc gratis dazu bekommen wuerden, moechte ich noch ein
paar Raeume aus dem Defaultpaket nahelegen. Sie koennen u.a. auch auf
ve.symlynx.com direkt betreten werden:
Wer noch mehr testen will, kann auch mal psycMUVE lokal
installieren. Es laeuft glaube ich sogar unter Windows ;) Es gibt ein
Setupscript; unter Linux ist es in zehn Minuten installiert, es
kompiliert sogar selber einen ldmud und konfiguriert ihn. Von so einem
jungfraeulichen psycMUVE kann man bereits auf alle anderen psyc-Raeume
connecten, wenn man die URL kennt. [Wenn man auf einem jungfräulichen
MUVE in einen Newsfeed-Raum geht wie tagesschau, dann verbindet der
sich zu seinem Master und lässt sich News zupushen. Per default. ;-)
--lynX]
Warum ist das ein sinnvolles Beispiel?
Es zeigt, dass es kein Ding waere, ein Intermud3-Gateway
aufzusetzen. Das werde ich mit Sicherheit auch im Gueldenland tun.
Damit erhalten I4-MUDs gratis die I3-Ebenen, ohne sich selbst mit dem
Protokoll rumschlagen zu muessen.
Es zeigt, dass psyc maechtig genug ist, um alle
bisherigen Intermud-Protokolle zu vereinen und dem MUD mit einem
einheitlichen Interface zur Verfuegung zu stellen. [Hui, welch
Kompliment! Und wir steuern dann noch einen
intermud:-Adressierungsscheme bei, welcher von alleine herausfindet wo
ein taugliches intermud-gateway ist. Somit sind intermud-User generell
adressierbar. --lynX]
Gawain und ich haben die Ueberlegung angestellt, dass man ein
dediziiertes psycMUVE oder irgendeinen anderen psyc-Server bestimmen
koennte, der von den bekannten Standard-Intermud-Raeumen (die man sich
noch ausdenken muss) die Master-Raeume haelt - also als so eine Art
Router fungiert. Andere MUDs koennen dann zu diesen Raeumen connecten.
Damit haetten wir eine Architektur so wie beim Intermud3. Die Rolle
eines Routers kann theoretisch auch jedes MUD das psyc implementiert
uebernehmen. Es sind keine Anpassungen noetig; wir muessen lediglich
ein Raumtemplate dafuer entwerfen das von der Architektur weiss. Das
muessen wir aber sowieso ;)
Mehr ist nicht noetig. Die ganze Chat-Infrastruktur ist schon
da; bei diesem Vorschlag ging es nur darum, bestimmte kuerzere
Ebenennamen automatisch zu psyc-URLs zu mappen; z.B. damit man als
Spieler auf D-Chat reden kann anstatt auf psyc://intermud.bla.fasel/@Channel . Mehr ist nicht dahinter, das System wuerde natuerlich auch ohne sowas funktionieren ;)
[Und die Masterräume brauchen nicht auf einem dedizierten MUVE liegen,
jedes MUD kann seine eigenen Masterräume starten, und wenn andere MUDs
den Raum haben wollen, linken sie ihn einfach --lynX]
Mein eigener Vorschlag zu einem Intermud4-Namensraum sieht analog meines i2-Gateway-Raumes so aus, dass die URL auf psyc://intermud4.router/@i4/Ebene lauten wuerde. Ein MUD koennte dann aus einem Ebenennamen "D-code" und einer Liste von I4-Routern die URL psyc://gueldenland.de:4449/@i4/d-code zusammensetzen. Dies waere fuer die Spieler natuerlich transparent.
Was den Teil nach dem @i4/ angeht, fangt mal an Euch
Standardebenen auszudenken, damit wir fuer den Anfang ein Set haben.
Meine eigenen Ideen orientieren sich da an den I2-Ebenen, also D-Code,
D-Chat, D-Schafepoppen und so weiter. Das ist aber eigentlich alles
egal ;)
Fuer Textmitteilungen ist das nicht relevant; jedes MUD koennte
sie dem Ziel direkt ueber psyc zustellen. Es ist allerdings auch kein
Ding das in die Router zu integrieren. Ich weiss momentan nicht, was
besser ist... Wuensche?
Die MUD-typischen Sonderfunktionen wie who koennen wir genau wie tell
loesen. Services sind in psyc vorgesehen, aber noch nicht implementiert
(soweit ich weiss). Das heisst aber nicht, dass wir sie nicht selber
implementieren koennen. Technisch gesehen wuerde das so wie ein
Chat-User funktionieren, d.h. ein Service waere ueber eine psyc-URL
erreichbar ueber die man mit ihm Nachrichten austauschen kann. Wenn ich
eine Spielerliste will, muss ich also nur dem who-Service des Zielmuds
einen Hinweis uebermitteln; ueber das genaue Format der Daten muessen
wir uns noch Gedanken machen.
Zum Format ist noch zu sagen, dass psyc-Messages Variablen
kennen. Es waere kein Ding, das Format aehnlich wie bei Intermud3
abstrakt zu gestalten, d.h. das anfordernde MUD rendert die Daten
anstatt dass einem das Zielmud bunte Blobs mit wild eingestreuten ANSI
Escapes liefert. Das passt auch besser zur Philosophie hinter psyc.
Aja, eine Liste der angeschlossenen MUDs ist im Prinzip
unnoetig da man den Hostnamen des Zielmuds kennen muss um mit ihm
Verbindung aufzunehmen, und ob an dem Namen ein psyc-Server lauscht
kann man jedesmal einzeln feststellen. Es waere zu ueberlegen, ob
unsere geplanten I4-Router eine Liste mit Aliasen fuehren. Sprich, ein
MUD meldet sich dort unter einem Alias an, dieses ist dann an die
Domain gebunden, und andere MUDs koennen diese Aliasliste einsehen.
Klingt einfach, ist es auch ;) Man koennte sogar ueber psyc ein
Verzeichnis realisieren, so dass die MUDs nichtmal selbst die Liste
halten muessten - man wuerde einfach einen Router fragen ob ein MUD Gueldenland o.ae. existiert und wo es ist.
[Es wäre auch legitim eine DNS .host subdomain einzurichten in der MUVE
well-known-hosts nachschlägt, die wären dann für intermud einfach
andere als für normales PSYC (da haben wir sowas gar nicht derzeit) --lynX]
Naja, jeder kann einen eigenen "Router" aufsetzen. Der Code ist Open
Source. Die beteiligten MUDs brauchen dann nur noch eine Liste mit
Routern von denen sie dann halt den ersten nehmen, der erreichbar ist.
Damit haetten wir dann wieder Intermud3, aber so wie es eigentlich
geplant war und ohne single point of failure. Gleichzeitig fallen die
Schwierigkeiten von Intermud2 weg.
Und wir bekommen die ganzen tollen Features von psyc. Wer sich den
Codetree mal angeschaut hat, hat schon eine erste Ahnung davon ;)
-- DanielFischer - 22 Jul 2004
Hört sich ja ziemlich genial an; vor allem, wenn sich das so relativ einfach auf MUD-Zwecke ummünzen lässt...
-- Invisible@BL
-- Main.guest - 26 Jul 2004
|