DEdit – Datenbank Editor

Dokumentations version 1.0d , 2003-11-16


TavernMaker und seine Datenbanken

TavernMaker ist ein Zufallsgenerator der seine Ausgabe erzeugt, indem er aus einer Datenbank zufällige Datensätze auswählt. Diese Datenbanekn beinhalten neben der anzuzeigenden Information auch eine Reihe sogenannter Flags. Diese zeigen dem Programm, unter welchen Umständen ein Datensatz gewählt werden darf. Durch die Kombination mehrerer solcher Flags ist es möglich, die erzeugte Ausgabe an die erzeugte Karte, sowie die vom Benutzer getroffenen Einstellungen anzupassen.

 

Damit wird aber auch klar: TavernMaker ist so gut wie seine Datenbanken! Daher liegt es an Dir (bzw. allen Benutzern) ausreichend hoch-qualitative Datenbanken zu erzeugen. Wir haben uns lange und hart bemüht, um ein möglichst komfortables und flexiebles Werkzeug zu erzeugen, die eigentliche Kreativität und Qualität kommt jedoch von den Benutzern im TeamWare Konzept.

Um ein gute Entwickler für das Projekt zu sein, benötigt man also zwei Dinge:ings:

·        einen kreativen Kopf, um gute Datensätze zu schreiben

·        ein wenig Übung und Fleiß um korrekte Datensätze zu schreiben.

 

Ich kann nichts dazu beitragen, um den ersten Punkt zu erfüllen, aber ich hoffe es gelingt mir, den zweiten Punkt durch gute Dokumentation und Tutorials zu fördern...

 

Für alle Ungeduldigen, die gleich zur Sache kommen wollen, habe ich daher ein Startertutorial angelegt. Damit sollte es gelingen, die ersten einfachen Datenbanken zu erzeugen. Manche wereden wohl nie tiefer eintauchen wollen...

 

Noch da? Gut! Wenn Du ein echter Entwickler werden willst, ist es notwendig, das Programm ein wenig besser zu verstehen. Ich werde versuchen, die Dinge hier so einfach wie möglich zu beschreiben, aber TavernMaker ist ein komplexes Programm!

Wie TavernMaker arbeitet

Für alle folgenden Erklärungen kann es hilfreich sein, folgendes Schema anzusehen. Es gibt einen guten Überblick darüber, wie TavernMaker zu seiner Ausgabe kommt, und wie die verschiedenen Hilfsprogramme zusammen arbeiten.

 

TavernMaker bekommt folende Eingaben vom Benutzer:

  • Ein RolePlayingSystem (RPS), ausgewählt aus verschiedenen Möglichkeiten.
    Das RPS definiert (unter anderem):
    • Die Sprache der Beschreibungen
    • mögliche Tavernentypen
    • mögliche Rassen
  • Einen "Typ" der Tavernen (Stadttaverne / Bar / Hafenkneipe etc.)
  • Eine Preisklasse" der Tavernen (Wie teuer ist es? Welches Klientel kommt?)
  • eine "Betriebsamkeit" (Wieviel der Tische sind belegt?)
  • Die "Größe" der Taverne (Wie viele Tische gibt es ?)
  • Die "Häuffigkeite" der einzelnen Rassen

Diese Information wird in einem ersten Schritt dazu benützt, eine Zufallskarte zu erzeugen. Ein bestimmtes, passende Basis-Layout (template) wird gewählt und mit Icons (Tische, Bars...) belegt. Aus dieser Karte erhält TavernMaker zusätzliche Information:

  • jedes gezeichnetes Objekt ist mit Größe (=Anzahl der möglichen Personen) und Flags (=welche anderen Objekte sind in der Nähe) gespeichert. Ausserdem erhält es noch eine Chance, mit der es mit einer Beschreibung "belegt" werden soll. (Für Tischbeschreibungen ist diese Chance durch die "Betriebsamkeit" geregelt, für andere Objekte durch das Template selbst.)

Nun geht TavernMaker durch die Liste der "belegten" Objekte. Für jedes Objekt wird die Datenbank gefiltert, so dass alle "unpassenden" Einträge entfernt werden. Dabei wird überprüft:

  • Erfüllt das Objekt die "distance flags" ? ("Dieser Tisch neben der Bar..." Beschreibungen sollten nur bei Tischen auftauchen, die auch in der Karte neben der Bar sind!)
  • Ist die Objektgröße (=Anzahl der Personen) passend? ("Drei Männer sitzen an diesem Tisch..:" sollte nur bei Tischen mit mindesten 3 Sitzplätzen auftauchen!)
  • Stimmen die Rassen mit der vom Benutzer gewählten Verteilung überein? ("Der Elf an diesem Tisch..." Beschreibungen sollten nicht gewählt werden, wenn die Taverne ausschließlich Menschen und Zwerge beheimaten soll!)
  • Stimmt der "wealth" (Wohlstand) der Beschreibung zur Preisklasse der Taverne? ("Der Bettler an diesem Tisch.." sollte nicht in noblen Hochpreistavernen auftauchen!)
  • Stimmen die Beschreibungen zum Tavernentyp? ("Die Gruppe gerade heimgekehrter Matrosen an diesem Tisch.." passt eher schlecht in eine Dorftaverne...)

Aus den nach der Filterung übrig gebliebenen Datensätze wird einer zufällig gewählt (und aus der Datenbank entfernt) Die Prozedur wird für jedes Objekt der Karte, das eine Beschreibung erhalten soll, wiederholt.

In einem letzten Schritt wird aus den gewählten Beschreibungen ein "Beschreibungstext" und eine "PickPocket"-Liste (=Inventar) erzeugt. Dazu besteht jeder Datensatz aus zwei Textteilen, eben einem Beschreibungsteil (direkt für Spieler zum Lesen) und einem PickPocketList-Teil (für den Spielleiter)

TavernMaker und die Flags

Datensätze brauchen einen Menge sogenannter Flags, die das Programm auswerten kann. Um dem Programm sinnvolle Beschreibungen zu entlocken, ist es absolut wesentlich, dass diese Flags gut und richtig gesetzt werden! Für Beschreibungen gibt es folgende Flags:

  • item type: Welches Objekt wird beschrieben? (meistens wird das "Tisch" sein.)
  • tavern type: Für welche Tavernentypen ist die Beschreibung geeignet?
  • wealth: Welchen "Wohlstand" entspricht die Beschreibung?
    (1 = arm ; 5 = druchschnitt ; 10 = reich ; 0 = nicht festgelegt)
  • distance flags: Welche Objekte sind in der "Nähe"
  • race flags: Welche Rassen kommen in welcher Menge in der Beschreibung vor.
  • unique: Darf die Beschreibung mehr als einmal pro Taverne verwendet werden.

Im folgenden gebe ich einige Beschreibungen, und wie die Flags richtig gesetzt werden.

 

"An diesem Tisch sitzt ein Elf zusammen mit einem Zwerg. Sie sprechen über die Meeresüberfahrt, die sie morgen starten werden."

 

item type: tisch

tavern type: hafenkneipe

wealth: 0 (alle)

distance flags: none

race flags: elfen (1) , zwerge (1)

 

“An diesem Tisch sitzt ein alter Händler und wärmt sich am nahen Feuer. Seine Kleidung wirkt twuer und er trägt viel Schmuck.”

 

item type: Tisch

tavern type: alle

wealth: 7 (reich)

distance flags: fireplace

race flags: unknown (1)

“In der Ecke, versteckt in den Schatten, sitzt eine Gestalt in einer Robe gehüllt. Nur die blauen Augen sind unter der Tief ins Gesicht gezogenen Kaputze erkennbar. Die Mädchen des Hauses meiden den Tisch.”

 

item type: Tisch

tavern type: Nachtbar

wealth: 0 (alle)

distance flags: corner

race flags: unknown (1)

 

TavernMaker – additional developer information

As TavernMaker grows with each new entry in the database and all users are building it together, it is sometimes important to stick to rules or conventions. New ideas and addons will make things more and more complex and it would be impossible to update the documentation all the time. Therefore, it is very important that you keep in contact with one of the project leaders, when creating databases. Discussions and additional information can be found at the TavernMakerFeedbackForum.