#include // #define _D_ write_file("t",__FILE__ + __LINE__ + "\n"); #define _D_ inherit "document"; string query_page_title() { return "Geschichte der Programmiersprache LPC"; } string query_sub_title() { return ("Ausarbeitung von " + link("http://user.cs.tu-berlin.de/~ottoka/","Karsten Otto") + " und " + link("http://user.cs.tu-berlin.de/~alfebtcd/","Alexander Fetke")); } string query_course() { return ("Im Projekt " + link("http://tal.cs.tu-berlin.de/lv/ws9798/sozGeschPrj.html", "Sozial- und Kulturgeschichte der Informatik") + new_line() + "(eingebettet in das interdisziplinäre Forschungsprojekt " + link("http://tal.cs.tu-berlin.de/ifp/", "Sozialgeschichte der Informatik)")); } string query_teacher() { return ("bei " + link("http://tal.cs.tu-berlin.de/siefkes/index.html", "Prof. Dr. Dirk Siefkes")); } string query_date() { return "im WS 97"; } string query_university() { return "an der " + link("http://www.cs.tu-berlin.de/","TU-Berlin"); } //varargs mixed *query_chapters(int|void no_links) { _D_ return ({ ({ "Abstract", ({ ("Wir haben die Geschichte der Programmiersprache LPC von" " ihren Anfängen, ihren Paradigmen und ihrem" " Weltverständnis her untersucht und versucht, einen" " Überblick über die Entwicklung und den Aufbau" " darzustellen." " Dabei haben wir uns auf Quellen aus zeitgenössischen" " Publikationen gestützt, die auch Postings in Newsgroups," " privat verschickte und später veröffentlichte Emails" " und andere im WWW zu findende Texte umfassen." " Ziel unseres Berichtes ist, darzulegen, in welchem" " sozialen Umfeld LPC und seine Vorläufer entstanden" " sind und wie die typische Entwicklung einer Sprache" " (und dem, was dazugehört) verläuft.") }), "abstract" }), ({ "Einleitung", ({ ("Die Sprache LPC ist eine Spezialsprache für die" " Programmierung von MUDs " + literature_link("MUDS", "Richard Bartle et al.: Offener Brief zur" " Geschichte der MUDs von 1990 und andere" " Texte " + link("bartle.txt", "http://www.cs.tu-berlin.de/" "~alfebtcd/referate/lpc/bartle.txt") + " (Link zu diesem Dokument)") + ". Diese Einschränkung der Anwendung ist in letzter Zeit" " jedoch aufgehoben worden, seit Abarten (Pike," " Micro-LPC " + literature_link("PIKE", "Frederik Hübinette: Programming, Using and" " Understanding Pike " + link("http://pike.idonex.com/manual/" "tutorial/tut.html", "http://pike.idonex.com/manual/" "tutorial/tut.html") + " (Link zuletzt getestet am 98-Mar-29)") + ") unter anderem" " auch für die Gestaltung von flexiblen WWW-Seiten" " verwendet werden können. Der WWW-Server Roxen " + literature_link("ROXEN", "Roxen Homepage " + link("http://www.roxen.com/", "http://www.roxen.com/") + " (Link zuletzt getestet am 98-Mar-29)") + " z.B. interpretiert Pike-Scripte."), ("Die ursprüngliche Anwendung jedoch ist viel stärker" " eingeschränkt und hat die Sprache in ihrem Design" " stark beeinflußt. LPC ist dafür ausgelegt, eine" " Welt zu simulieren und Teilnehmern an der Simulation" " die Einflußnahme zu ermöglichen. Daher ist es auch" " in starkem Maße auf einen Multi-User-Betrieb" " vorbereitet."), ("Da diese Simulationen zumeist als Spiel aufgefaßt" " werden und sich auch auf den ersten Blick so" " darstellen, ist die Wissenschaftlichkeit der" " Anwendung und damit der Sprache in Frage gestellt." " In letzter Zeit jedoch sind mehr und mehr" " wissenschaftliche Schriften zum Thema der MUDs" " veröffentlicht worden, und eine breitere Anerkennung" " des Themas zeichnet sich ab.") }), "einleitung" }), ({ "Historische Entwicklung", ({ ({ "Das Rollenspiel", ("Seit mindestens Mitte der 70er Jahre werden" " Rollenspiele kommerziell vertrieben. Bei einem" " Rollenspiel übernimmt eine Gruppe von Spielern" " eine Gruppe von Charakteren in einer imaginären" " Welt und erlebt dort Ereignisse. Ein Spielleiter" " beschreibt, wie die Welt auf die Aktionen der" " Spieler reagiert, oder auch, wie die Welt agiert," " falls die Spieler sich passiv verhalten."), ("Der Spielleiter und die Spieler unterliegen dabei" " einem Regelsystem, das das Rollenspiel ausmacht." " Dieses Regelsystem trägt entscheidend dazu bei," " daß das Spiel realistische Züge trägt. Der" " Spielleiter ist für die Auslegung der Regeln" " verantwortlich."), ("Das Rollenspiel in seiner ursprünglichen (auch" " heute noch weit verbreiteten) Form wird ohne" " große technische Unterstützung gespielt; Würfel" " dienen zum Entscheiden von Zufällen und Tabellen" " aus dem Regelsystem zum Bewerten der Ergebnisse" " der Würfel.") }), ({ "Das Textadventure", ("Ein Textadventure ist ein Computerprogramm, das" " dem Benutzer erlaubt, einer Spielfigur Befehle" " zu erteilen, die diese dann ausführt, sofern das" " Programm die Befehle verstehen und umsetzen kann." " Dabei wird dem Benutzer mit Text erläutert, in" " welcher Situation die Spielfigur sich gerade" " befindet."), ("Bei einem solchen Spiel ist in der Regel eine" " Kette von Aufgaben zu erfüllen."), ("Der Spieler ist dabei alleine und nur mit dem" " Computer im Zwiegespräch. Wenn der Spieler eine" " Lösung für ein Problem verfolgen möchte, die der" " Programmierer nicht vorhergesehen hat, scheitert" " der Spieler damit."), ("Das erste dieser Spiele ist Mitte der 70er Jahre" " von Will Crowther geschrieben worden und trug den" " Namen \"Adventure\" " + literature_link("ADVENT", "Jason Anthony Melancon: Game Reviews " + link("http://www.afn.org/~afn55673/" "a-g.html#advent", "http://www.afn.org/~afn55673/" "a-g.html#advent") + " (Link zuletzt getestet am 98-Mar-29)")+ ". Seitdem sind Tausende Programme dieser Art" " geschrieben worden. Sogar Programmiersysteme" " zum Erstellen von Textadventures existieren, der" " bekannteste Vertreter dürfte das System der Firma" " Infocom sein, die das Textadventure \"Zork\"" " Ende der 70er Jahre veröffentlichte. Auch heute" " noch werden solche Programme geschrieben und unter" " der Bezeichnung " + italics("interactive fiction") + " auf Messen, Wettbewerben und dergleichen" " vorgestellt. Auf dem kommerziellen Markt findet" " man diese Produkte jedoch nur noch selten; die" " Entwicklung ist eher Enthusiasten überlassen.") }), ({ "MUDs", ("Ein MUD ist ein Programm, das für mehrere Benutzer" " gleichzeitig erreichbar ist (üblicherweise via" " Internet), und das jedem Benutzer eine Spielfigur" " zur Verfügung stellt, die er durch Befehle" " kontrollieren kann. Die Spielfigur (der " + italics("Charakter") + ") wird durch die Befehle" " durch eine simulierte Welt geführt und kann dort" " auch mit den Charakteren der anderen Benutzer" " interagieren, insbesondere auch kommunizieren."), ("Im Jahr 1979 wurde in Essex, England, das erste" " Programm geschrieben und installiert, das den" " Namen MUD trug. Einer der späteren Entwickler," " Richard Bartle, beschreibt den Prozeß der" " anfänglichen Entwicklung der Programms als" " einen Alleingang von Roy Trubshaw, der (laut" " Bartle) mehr an den technischen Aspekten" " interessiert gewesen sei. Bartle selbst sei" " dagegen mehr mit dem Design der simulierten" " Welt befaßt gewesen."), ("Schon hier zeigt sich eine typische Aufteilung, die" " wir auch später immer wieder bemerken werden: eine" " Arbeitsteilung zwischen eher technisch- und eher" " design-orientierten Entwicklern."), ("Das erste MUD war in MACRO-10 geschrieben (ein" " Assembler), wurde später auf BCPL umgeschrieben" " und verwandte für die Darstellung der Welt eine" " Datenbank. Diese Datenbank war in einer Sprache" " dargestellt, die MUDDL hieß, MUD Definition Language." " Mit dieser Datenbank konnte das MUD während der" " Laufzeit (also ohne Herunterfahren des MUDs)" " erweitert und beeinflußt werden. MUDDL ist damit" " ein früher Vorläufer von LPC, der schon wesentliche" " Parallelen aufweist."), ("Gegen Ende der 80er Jahre verbreitete sich eine" " andere Art von MUDs, die AberMUDs, die in der" " Universität von Aberystwyth, Groß Britannien," " entwickelt worden waren. AberMUDs sind nicht" " während der Laufzeit erweiterbar und besitzen" " keine spezielle Sprache, in der man die Welt" " beschreibt. Die Welt wird in der Sprache beschrieben," " in der auch die Laufzeitumgebung geschrieben ist" " -- in allen uns bekannten Fällen ist dies C."), ("Aus AberMUD entwickelte sich das eher sozial" " orientierte TinyMUD, bei dem die Teilnehmer während" " der Teilnahme mit speziellen Kommandos das Spiel in" " begrenztem Umfang erweitern können. Diese Kommandos" " sind jedoch sehr beschränkt und kaum als eigenständige" " Programmiersprache zu bezeichnen. Vielmehr kann man" " mit ihnen eine Art komplexe Konfiguration der Objekte" " vornehmen. TinyMUDs sind in ihrem Design auch weniger" " auf programmtechnische Erweiterung ausgelegt, sondern" " betonen vielmehr den sozialen Aspekt der Gemeinschaft" " der Teilnehmer " + literature_link("ILIAN", "Irina Leyde: Soziale Strukturen in" " virtuellen Welten am Beispiel TubMuds," " Studienarbeit 94-38 im Fachgebiet IG" " des Fachbereichs für Informatik der" " TU-Berlin " + link("sharilla_mud_report.ps.gz", "http://www.cs.tu-berlin.de/" "~alfebtcd/referate/lpc/" "sharilla_mud_report.ps.gz") + " (Link zu diesem Dokument)") + "."), ("Anfang der 90er Jahre begann Lars Pensjö, ein Student" " aus Schweden, schließlich mit der Entwicklung eines" " eigenen MUD-Systems, das LPMUD genannt wird. Im" " wesentlichen besteht das LPMUD aus einer in C" " geschriebenen Laufzeitumgebung (siehe unten zum" " Thema " + anchor_link("driver","Driver") + "), die" " eine eigene Sprache compiliert und interpretiert." " Diese Sprache ist LPC. Sie ist objektorientiert," " in der Syntax stark an C angelehnt und hat" " umfangreiche Möglichkeiten zur Verarbeitung von" " Zeichenketten."), ("LPC wird in LPMUDs benutzt, um die Welt zu modellieren." " Einiges an Modellierung wird allerdings auch aus" " Effizienzgründen schon im Driver getan (s.u.)."), ("Wie auch schon bei der Entwicklung vom ersten MUD in" " Essex beschreibt Pensjö sein Hauptinteresse darin," " die Möglichkeit der Umsetzung seiner Vision zu" " zeigen. Als sein MUD schließlich den Punkt erreichte," " wo man die modellierte Welt hätte erweitern müssen," " zog er sich aus dem Schaffensprozess zurück und" " überließ das Mud Anderen " + literature_link("LARS", "Lars Pensjö: Offener Brief zur" " Entstehungsgeschichte von MUDs und der" " Sprache LPC "+ link("http://www.NeoSoft.com/genesis/" "lpmud.html", "http://www.NeoSoft.com/genesis/" "lpmud.html") + " (Link zuletzt getestet am 98-Mar-29)")+ ".") }) }), "history" }), ({ "Soziale Entwicklung", ({ ("Die Wurzeln der MUD-Programmierung liegen in den" " 80er Jahren, wie oben bereits beschrieben, zum" " Teil im Rollenspiel und zum Teil im" " computer-basierten Textadventure. Diese beiden" " Vorläufer haben unterschiedliche Ziele und" " Selbstverständnisse: Während das Rollenspiel auf" " der Idee basiert, eine " + emphasize("Geschichte") + " durch die Interaktion aller Mitspieler erst zu" " gestalten (wobei die Spieler häufig Helden nicht" " nur im Sinne von Protagonisten verkörpern), zielt" " das Textadventure eher darauf ab, eine fertige" " Geschichte (eventuell mit Varianten) durch das" " Lösen von Rätseln voranzutreiben."), ("Die ersten Versuche, ein Rollenspiel auf den" " Computer zu portieren, hatten verschiedene" " Resultate; neben MUD gab es auch komplexere" " Labyrinthspiele wie " + italics("Hunt The Wumpus") + ", das als Klassiker der BSD-Spiele schon der frühen" " UNIX-Versionen angesehen werden kann, oder " + italics("Nethack") + ", das sogar eine gewisse" " graphische Oberfläche besitzt."), ("Bei allen Spielen können die beiden ursprünglichen" " Einflüsse des Rollenspiels und der Textadventures" " mehr oder weniger wahrgenommen werden. Bei den MUDs" " kann man TinyMUD eher dem Rollenspiel und die" " AberMUD-Varianten eher dem Textadventure" " zuordnen."), ("Auch das LPMUD stellt eine Symbiose aus beiden" " Aspekten dar; der Textadventure-Schwerpunkt liegt" " darin, daß kein menschlicher Spielleiter vorhanden" " ist, sondern der Computer diese Rolle übernimmt," " der Rollenspiel-Schwerpunkt liegt darin, daß die" " gespielten Charaktere sich im Prinzip frei in" " einer Welt bewegen, ihnen nicht eine bestimmte" " Handlung aufgezwungen wird, die sie einfach nur" " nachspielen können usw."), ("Die Spielleitung, die beim Rollenspiel einem Menschen" " zukommt, wird hierbei vollständig automatisiert;" " ein Wizard (s.u.) greift nur in Ausnahmefällen selber ein" " und ist in der Regel nicht einmal anwesend, wenn" " seine Area benutzt (betreten, gespielt) wird."), ("Diese Automatisierung setzt eine ausgereifte" " Sprache zum Beschreiben der simulierten Welt" " voraus. Simulation wird von jeher mit" " Objektorientierung in Verbindung gebracht, daher" " ist es nicht verwunderlich, daß auch hier eine" " objektorientierte Sprache zum Einsatz kommt. Die" " Verwendung von Objektorientierung erschien sogar" " so selbstverständlich, daß diese Überlegung nicht" " einmal erörtert worden ist " + literature_link("LARS") + ". Zurückführen läßt sich" " dies vermutlich auf die zu diesem Zeitpunkt schon" " weite Verbreitung dieses Paradigmas. Die" " Vorlieben und Gewohnheiten der ersten Entwickler" " haben zudem eine starke Ähnlichkeit zur Sprache C" " aufrecht erhalten.") }), "soziale_entwicklung" }), ({ "Objektorientierung in LPC", ({ ("Die objektorientierte Programmierung wird von jeher" " für die Simulation von komplexen Abläufen eingesetzt." " Schon die ersten derartigen Programmiersprachen sehen" " diesen Aspekt als wesentlichen Vorteil und Merkmal" " der Objektorientierung an. " + literature_link("SIMULA", "Rob Pooley: An Introduction to Programming" " in Simula " + link("http://www.dcs.ed.ac.uk/home/rjp/" "bookhtml/", "http://www.dcs.ed.ac.uk/home/rjp/" "bookhtml/") + " (Link zuletzt getestet am 98-Mar-29)")), ("Häufig wird bei objektorientierter Programmierung" " eine sehr abstrakte Sicht auf die Welt, die" " modelliert wird, zugrunde gelegt. In LPC gibt es" " -- anders als z.B. in C++ -- keine abstrakten" " Klassen, die nicht instanziiert werden können." " Jedes Objekt wird mit einigen Grundfunktionalitäten" " ausgestattet; so hat z.B. jedes Objekt eine" " Inventarverwaltung (für sich darin befindende" " Objekte), eine gewisse Helligkeit usw."), ("Vererbung ist in LPC multipel möglich (ein Objekt" " kann die Eigenschaften mehrerer anderer Objekte" " erben). Vererbungsbäume in LPC sind typischerweise" " nicht sehr tief; eine Fackel erbt z.B. die" " Eigenschaften von \"Gegenstand\" und von \"brennbar\"," " \"Gegenstand\" erbt noch einige Basis-Funktionen" " für Gewicht, Wert und dergleichen. Die Vererbung" " wird also auf verhältnismäßig konkreter und wenig" " abstrakter Ebene eingesetzt.") }), "objektorientiert" }), ({ "Aufbau der Technik und Begriffsbestimmung", ({ ({ "Internet & Telnet", ("Da LPC als Beschreibungssprache einer simulierten" " Welt nur Sinn macht, wenn man es in einem" " Mehrbenutzerkontext einsetzt, werden MUDs" " üblicherweise an das Internet angeschlossen. Die" " Teilnehmer bauen eine Telnet-Verbindung auf, über" " die sie mit dem Rechner, auf dem das MUD installiert" " ist, kommunizieren. Auf diesem Rechner läuft ein" " Programm, das " + anchor("driver",italics("Driver")) + " genannt wird.") }), ({ "Der Driver", ("Der Driver ist ein in einer üblichen" " Programmiersprache geschriebenes Programm," " (heute meist C), nicht in einer" " Beschreibungssprache der modellierten Welt. Er" " verwaltet die Telnet-Verbindungen der einzelnen" " Teilnehmer, leitet ihre Eingaben an bestimmte" " ausgezeichnete Objekte im MUD und Ausgaben der" " verschiedenen Objekte nach außen weiter."), ("Der Driver enthält außerdem einen Compiler, der" " die in LPC geschriebenen Objekte in einen leichter" " interpretierbaren Bytecode umwandelt, und einen" " Interpreter, der diesen Bytecode abarbeitet."), ("Weltweit gibt es vielleicht ein paar Dutzend" " verschiedene LPC-Driver, von denen eine Handvoll" " von sehr vielen MUDs eingesetzt wird. Alle" " verwendeten Driver unterscheiden sich dabei für" " uns nur unwesentlich.") }), ({ "Der Master und Simul-Efuns", ("Ein spezielles Objekt ist das Master-Objekt, das" " das wesentliche Kommunikationsmedium darstellt," " wenn Informationen aus der modellierten Welt in" " den Driver gelangen sollen oder umgekehrt. Der" " Master ist als Objekt ebenfalls in LPC" " geschrieben."), ("Die in den Objekten in LPC geschriebenen Funktionen" " werden " + italics("lokale Funktionen") + " oder" " kurz " + italics("Lfuns") + " genannt, die" " Funktionen, die man aufrufen kann, ohne daß sie" " in LPC formuliert worden sind (in Smalltalk werden" " sie " + italics("Primitiven") + " genannt), heißen" " in LPC " + italics("Externe Funktionen") + " oder" " kurz " + italics("Efuns") + ". Dies sind" " üblicherweise die einfachsten mit Ausgabe von Text" " betrauten Funktionen, wie z.B. die Efun " + code("tell_object()") + ", mit der man eine" " Zeichenkette an einen Teilnehmer senden kann, oder" " z.B. mathematische Funktionen."), ("Den Umfang der Efuns kann man erweitern, indem man" " in einem weiteren speziellen Objekt Funktionen" " ergänzt. Alle Funktionen, die in diesem Objekt" " stehen, sind global für alle Objekte als" " sogenannte Simul-Efuns verfügbar. Für den" " LPC-Programmierer macht es (fast) keinen" " Unterschied, ob eine Funktion Efun oder" " Simul-Efun ist, er behandelt sie gleich.") }), ({ "Die Corelib", ("Ein MUD wird üblicherweise auf einem Rechner" " installiert und dort von jemandem gewartet." " Meist wird diese Aufgabe von mehreren Personen" " geteilt, da sie -- je nach Größe des MUDs --" " recht umfangreich sein kann. Die Aufgaben der" " Administration reichen von der Vertretung des" " MUDs nach außen (z.B. Interviews und" " Stellungnahmen zu MUD-bezogenen Themen) über" " die Entscheidung sozialer Fragen (z.B. über" " das Ausschließen von Teilnehmern, die in" " unangenehmer Weise aufgefallen sind) bis hin" " zur Wartung des Codes. Für uns interessant ist" " vor allem dieser letzte Aspekt."), ("Da in den modellierten Welten gewisse Konzepte" " immer wieder verwendet werden, werden häufig" " vorkommende Objekte und Funktionalitäten in der" " sogenannten Corelib von der Administration" " gesammelt und allgemein zur Verfügung gestellt." " (Tatsächlich ist es eher so, daß die Corelib zum" " größten Teil am Anfang der Entstehung eines MUDs" " vorhanden ist und später nur noch selten" " wesentlich erweitert wird.)"), ("Die Anzahl der verschiedenen Corelibs weltweit" " dürfte so ziemlich gleich der Anzahl der MUDs" " sein, da eigentlich jedes MUD früher oder später" " seine Corelib variiert und dabei selten" " Gleichheiten in verschiedenen MUDs auftreten" " dürften. Die Anzahl der MUDs weltweit schätzen" " wir auf 1000 bis 2000 über das Internet erreichbare" " und unzählige privat installierte MUDs, die zum" " Entwickeln dienen."), ("Master- und Simul-Efun-Objekt werden mit zur" " Corelib gezählt.") }), ({ "Arealib", ("Die \"eigentliche\" Modellierung der Welt (also" " Gegenden und spezialisiertere Objekte) geschieht" " zumeist nicht in der Corelib und wird auch nicht" " von der Administration eines MUDs ausformuliert." " Ein Großteil dieses Bereiches wird von einzelnen" " Teilnehmern getan. Solche Teilnehmer werden " + italics("Wizard") + " genannt."), ("Den Teil des LPC-Codes, der von Wizards geschrieben" " worden ist, nennen wir " + italics("Arealib") + "."), ("Arealib und Corelib werden zusammen als " + italics("Mudlib") + " bezeichnet.") }) }), "technik" }), ({ "Was betrachten wir als LPC?", ({ ("Bei den komplexen Beziehungen, die zwischen den" " verschiedenen Teilen eines MUDs bestehen, ist die" " Frage gerechtfertigt, was alles zu LPC gehört und" " was nicht Sprache, sondern Anwendung der Sprache" " ist. Diese Frage ist auch deshalb gerechtfertigt," " weil sich die Sprache für verschiedene Personen" " unterschiedlich darstellt. Der normale Anwender" " (ein Wizard) wird die Simul-Efuns nicht von den" " Efuns unterscheiden und sie mit zu LPC zählen;" " jemand, der den Driver modifiziert, interessiert" " sich nur in begrenztem Umfang für die vielen" " verschiedenen Simul-Efun-Objekte der vielen" " verschiedenen MUDs."), ("Die Grenze ist nicht eindeutig logisch festzumachen," " es ist vielmehr eine Frage der Definition. Wir haben" " uns entschieden, alles als Teil von LPC zu betrachten," " was bis zur Corelib zählt. Damit gibt es pro MUD" " einen LPC-Dialekt und damit auch nicht nur eine" " Sozialgeschichte von LPC, sondern viele verschiedene." " Es soll nicht Sinn dieses Textes sein, Hunderte von" " MUDs zu untersuchen, vielmehr werden wir versuchen," " generelle Tendenzen aufzuzeigen, die sich in den" " meisten MUDs finden lassen und die als typisch für" " LPC gelten können.") }), "lpc_definition" }), ({ "Technische Einflußnahme", ({ ("Die Sozialgeschichte einer Programmiersprache" " beinhaltet natürlich die an der Entstehung und" " Weiterentwicklung beteiligten Personen. Um ihren" " Einfluß beurteilen zu können, müssen wir wissen," " welche Personen(-Gruppen) an welcher Stelle direkten" " technischen Einfluß auf die Sprache haben, indem" " sie Programmcode ändern."), ("Die Entwickler und Erweiterer der Driver sind oft" " nicht an ein MUD gebunden, haben aber in der Regel" " ein \"Heimat-MUD\", dem sie sich besonders verbunden" " fühlen. Die meisten MUDs jedoch benutzen nur einen" " Driver, ohne über Teilnehmer zu verfügen, die etwas" " am Driver ändern. Die Anzahl der Personen, die einen" " Driver warten, ist nicht sehr groß, üblicherweise" " weniger als zehn Personen (nicht mitgezählt die" " Personen, die Hinweise über Fehler u.ä. im Driver" " liefern)."), ("Jedes MUD hat eine Administration (s.o.), die sich" " um die Wartung der Corelib kümmert. Die" " Administration eines MUDs besteht meist aus wenigen" " Personen, die sich bisweilen durch andere" " Mitglieder des MUDs bei ihren Aufgaben unterstützen" " lassen (siehe hierzu vor allem " + literature_link("ILIAN") + "). Hierbei ist häufig" " eine Aufteilung der Administration in einen" " technischeren Teil und einen spiel- und" " sozialbezogeneren Teil zu bemerken. Die technischer" " orientierten Mitglieder der Administration" " beschäftigen sich eher mit dem Master und dem" " Simul-Efun-Objekt, wohingegen die anderen eher den Rest" " der Corelib warten."), ("Die Arealib eines MUDs wird von den Wizards gestaltet." " Ihr Einfluß auf LPC ist deshalb nicht direkt" " vorhanden, da die Arealib von uns nicht als Teil" " von LPC betrachtet wird. Wir werden später sehen," " daß der Einfluß auf indirektem Wege jedoch nicht" " ausgeschlossen werden kann.") }), "technische_einfluesse" }), ({ "Soziale Hintergründe für die Einflußnahme", ({ ({ "Direkte soziale Einflußnahme", ("Einen gewissen Einfluß auf die Sprache LPC hat jeder" " Teilnehmer eines MUDs, insofern, daß jeder" " Teilnehmer eigene Vorstellungen davon hat, wie" " das MUD aussehen soll, und diese Vorstellungen" " beeinflussen natürlich die Auswahl des MUDs (und" " damit auch die Unterstützung), die Auswahl der" " Gegenden innerhalb eines MUDs, die bevorzugt werden," " und nicht zuletzt werden auch entsprechende" " Vorschläge und Kritiken geäußert und" " berücksichtigt."), ("In diesem Abschnitt interessiert uns jedoch mehr" " der direkte Einfluß, der also ohne Mittelsmänner" " stattfindet."), ("Die Entwickler eines MUDs haben einen persönlichen" " Hintergrund, der ihre Vorlieben und Abneigungen" " beeinflußt. Einige Entwickler haben stärkeren" " Einfluß aus der Schiene des Rollenspiels, andere" " bevorzugen die Programmierung im Stile des" " Textadventures. Diese Unterschiede der Orientierung" " der Entwickler spürt man bisweilen sehr deutlich" " in einem MUD. Generell läßt sich sagen, daß die" " Programmierung im Stil des Textadventures in einem" " MUD problematisch ist, weil ein MUD von seinem" " Grundkonzept her für Mehrbenutzer-Betrieb ausgelegt" " ist. Die Rollenspiel-Orientierung wiederum ist" " problematisch, weil kein Computer so flexibel auf" " Spielerideen reagieren kann, wie ein menschlicher" " Spielleiter."), ("Wie stark oder an welcher Stelle der Einfluß auf" " die Sprache stattfindet, hängt von der Position" " des Individuums ab. Ein Mitglied der Administration" " eines MUDs hat z.B. Einfluß auf das Kampfsystem," " das die tätlichen Auseinandersetzungen zwischen" " den Charakteren der Welt simuliert, vorausgesetzt" " dieses Kampfsystem ist global für das MUD. Ein" " normaler Wizard hingegen muß das Kampfsystem als" " gegeben hinnehmen und seine Area daran ausrichten."), ("In die verschiedenen möglichen Positionen geraten" " die Teilnehmer auch nicht zufällig, sondern sie" " werden normalerweise ihrem Wissen und" " ihren Fähigkeiten entsprechend von der" " Administration in passende Posten erhoben. Generell" " kann man sagen, daß Personen auf höheren Positionen" " sich mit den abstrakteren, den allgemeineren" " Problemen befassen. Wenn ein Problem auftritt, wenn" " z.B. ein Area-Designer eine Idee hat, aber nicht" " weiß, wie er sie umsetzen soll, so erfordert es" " fachkundiges Wissen, um zu entscheiden, auf welcher" " Ebene die Lösung für dieses Problem zu" " implementieren ist. Sehr häufig wird ein Problem an" " der \"falschen\" Stelle behoben, so daß später" " Probleme auftreten, weil nicht der Kern des" " Problems gelöst, sondern nur ein Symptom" " bekämpft worden ist. Beispielsweise könnte ein" " Wizard wollen, daß beim Betrachten eines" " Gegenstandes ein Ereignis eintritt. (Die normale" " Reaktion auf das Betrachten sei nur die Ausgabe der" " Beschreibung des Gegenstandes.) Eine Lösung des" " Problems wäre, das Kommando, das zum Anschauen" " führt, abzufangen (zu überlagern) und explizit zu" " prüfen, ob der Gegenstand angesehen wird. Diese" " Lösung kann lange Zeit funktionieren, bis jemand" " auf höherer Ebene noch ein zweites Kommando zum" " Betrachten von Gegenständen einführt. Sollte nun" " ein Spieler das neue Kommando mit dem alten" " Gegenstand kombinieren, wird er sich nur den" " Gegenstand ansehen, nicht aber die vom Wizard" " gewollte Reaktion auf das Betrachten auslösen."), ("Eine bessere Lösung für das Problem wäre von" " vornherein gewesen, nicht das (konkrete) Kommando," " sondern die (abstraktere) Aktion des Betrachtens" " abzufangen. Falls diese Möglichkeit jedoch bei" " der Herstellung des Gegenstandes noch nicht bestand," " so hat der Wizard mit der ersten Lösung die beste" " ihm direkt zur Verfügung stehende gewählt. Die" " Alternative, der indirekte soziale Einfluß, bei dem" " höhere Stellen (die Administration) aufgefordert" " werden, die zweite Lösung zu ermöglichen, wird im" " nächsten Abschnitt behandelt.") }), ({ "Indirekte soziale Einflußnahme", ("Wie im Beispiel schon erläutert, kommt es vor," " daß Wizards Probleme nicht zu lösen imstande" " sind, weil ihnen die Mittel" " (Schreibrechte auf die Corelib, Fachkenntnis)" " nicht zur Verfügung stehen. Falls die betroffenen" " Wizards dann erkennen, daß ihr Problem am besten" " auf einer höheren Ebene gelöst werden sollte," " wenden sie sich an Personen, die dazu imstande" " sind. Falls sie dies nicht erkennen, verwerfen" " sie entweder ihre Idee oder sie schreiben eine" " mangelhafte Lösung auf der ihnen möglichen Ebene." " (Daß die Lösung dann mangelhaft sein muß, ist" " zwingend, da das Problem von der Art sein soll," " daß es auf höherer Ebene hätte gelöst werden" " müssen.)"), ("In der Praxis ist das Nicht-Erkennen der weitaus" " häufigere Fall, so daß ein lange bestehendes MUD" " wie ein Flickenteppich aus Speziallösungen" " wirken kann. Zudem werden mit dem Alter eines" " MUDs die bereits irgendwo im MUD umgesetzten" " Ideen immer zahlreicher und die Komplexität der" " neuen Ideen steigt, da die meisten Wizards lieber" " Ideen umsetzen, die nicht schon umgesetzt worden" " sind. Durch die steigende Komplexität der" " Probleme wächst die Anzahl der Probleme, die" " einer abstrakten Lösung bedürfen, wodurch die" " Administration eines MUDs stärker gefordert wird" " als kurz nach der Installation und Eröffnung eines" " MUDs."), ("Die Abstraktheit eines Problems und der indirekte" " soziale Einfluß läßt sich exemplarisch gut" " zeigen: Ein Spieler hat die Idee, ein " + italics("Pferd") + " besitzen zu wollen. Er teilt" " dies einem Wizard mit, der daraufhin überlegt," " wie er " + italics("etwas, auf dem man reiten kann,") + " programmieren kann, weil ja schließlich auch Esel," " Elefanten und andere Reittiere interessant sein" " könnten. Er kommt (im günstigeren Fall) zu dem" " Schluß, daß das Problem zu abstrakt für die" " Arealib ist, und teilt seinen Wunsch der" " Administration mit. Dort überlegt nun ein" " Corelib-Programmierer, wie er eine " + italics("mobile Sitzgelegenheit") + " implementieren" " kann, um damit nicht nur die Klasse der" " Reittiere zu erschlagen, sondern auch gleich noch" " Rollstühle, Kutschen und Autos."), }) }), "soziale_einfluesse" }) }); } // what is a roleplaying game: http://www.nlc.net.au/~imagines/whatrpg.htm // advent: http://www.afn.org/~afn55673/a-g.html#advent