QML - Create Your Own Adventure

FAQ: Häufig Gestellte Fragen

Was ist QML?

QML ist eine Sprache, um stationsbasierte Textabenteuer zu erstellen, wie man sie auch in manchen interaktiven Büchern findet, wo man seinen eigenen Weg durch die Geschichte wählen kann.

Was macht QML?

QML kann Stationen, Auswahlmöglichkeiten, Spielzustände (etwa bestimmte Geschehnisse in der Spielgeschichte) verarbeiten. Es lassen sich Bilder und Musik einbinden. Es gibt Nummern, Zeichenketten, klickbare Bildteile, automatische Weiterleitungen, Wenn-Dann-Verzweigungen, und mehr.

Was brauche ich, um anzufangen?

Alles was man tun muss ist QML-Edit (7MB) zu installieren. Das Programm kommt mit einer Hilfe, die weitere Fragen beantwortet.

Muss ich Programmierer sein?

Nein. Es hilft, wenn man ein paar Sachen über's programmieren lernen will, aber für einfache Abenteuer ist das nicht nötig.

Muß ich irgendwas bezahlen?

Nein, alles was mit QML zusammen hängt ist kostenlost.

Programm/ Browser

Kann das Spiel als ausführbare Anwendung (EXE) gestartet werden?

Die Erstellung einer ausführbare Anwendung mit Hilfe des Internet Explorer Moduls in Visual Basic ist sehr einfach. Man könnte dann eine selbstausführende Anwendung kompilieren, die das Spiel ohne eine zu startende HTML-Datei ausführt. Allerdings ist das Gute am Browser ja gerade, dass Leute bereits kennen und ihm vertrauen. Viele Benutzer sind auch nicht bereit, aus dem Internet heruntergeladene Programme auszuführen. QML ist wie geschaffen für ein Online-Spiel und bietet so die kleinstmögliche Hürde für den Benutzer.

Kann das Spiel in einem neuen Fenster, ohne Menüleiste usw. gestartet werden?

Man kann auf die Start-HTML-Datei auf alle möglichen Arten verweisen, unter anderem über ein Pop-Up Fenster mit Hilfe von JavaScript. Wenn man das Spiel für Offline-Benutzung vertreibt, ist das auch OK. Online ist es allerdings so, das viele Leute es nicht mögen, wenn im Browser eigenständig ein neues Fenster aufgeht.

Wie funktionieren Browser-Knöpfe in QML?

Wird das Spiel in der Client-Version (IE5+) gestartet, so bringt der Zurück-Knopf den Spieler nicht zur letzten Station (sondern zur zuvor besuchten Webseite); und der Aktualisieren-Knopf wird nicht die aktuelle Station laden (sondern vielmehr das ganze Abenteuer neu starten).
Man kann den Spieler allerdings über <choice station="back">...</choice> zur zuletzt besuchten Station zurückschicken.

Wird das Spiel auf dem Server ausgeführt, so bringt der Zurück-Knopf den Spieler allerdings doch zur letzten Station. Allerdings, wenn das Spiel bereits beendet ist (wenn eine Station ohne Auswahlmöglichkeiten angezeigt wurde), so wird eine Neuverzweigung in einer andere Richtung von der alten Station das Spiel nicht fortsetzen (dies bezieht sich vorläufig auf QML1x).

Technische Hintergründe

What is XML?

XML bedeutet eXtensible Markup Language (Erweiterbare Beschreibungssprache). Es ist ein Industrieweiter Standard zum Datenaustausch. Das W3C (das World Wide Web Konsortium) führt solche Standards ein, um eine geteilte Datenstruktur auf verschiedenen Systemen, für verschiedene Leute und unterschiedliche Parser zu realisieren. Diese Seite zum Beispiel nutzt XHTML, was auch in XML gehalten ist.
Für weitere Informationen, siehe Introducing XML auf dieser Website oder XML in 10 points (XML in 10 Punkten) vom WWW-Konsortium.

Wie arbeitet der QML-Interpreter?

Die XML-Datei wird mit VBScript geladen und über die Quest DTD (Dokumenttyp-Definition) validiert. Tritt also während des Ladevorgangs kein Fehler auf, so ist die Datei korrekte QML-Syntax. Das komplette lesen der Datei geschieht über das DOM (Dokument-Objektmodell) des Microsoft.XMLDOM Objekts. Jede Station wird nun dynamisch in das Browserfenster geschrieben. Klickt man auf einen Verweis, so ruft dieser eine VBScript-Funktion auf, die wiederum eine weitere Station ausgibt, und zudem Spielzustände, Benutzereingaben, usw. behandelt.

Wie funktioniert das QML-Edit Programm?

Der MSXML Parser wird benutzt, um das Quest-Objekt zu verwalten, und jeder Bearbeitungsvorgang wird auf dieses im Speicher geschrieben. Es gibt vielerlei Eingabemodule (etwa Eingabefelder), die dann in XML umgewandelt werden, und andersherum. Wird gespeichert, oder die Vorschauversion angezeigt, so werden die HTML-Dateien auf die Festplatte gespeichert. Der Vorschaumodus ist nichts weiter als ein IE-Browsermodul, der Rest wird von den Client-seitigen VBScript-Routinen behandelt.

Spiel

Können Animationen benutzt werden?

Es lassen sich GIF-Animationen einbinden. Allerdings können diese (genau wie auch Bilder und Musik) über die Browsereinstellungen abgeschaltet werden.

Mein Abenteuer scheint etwas langsam zu laden. Kann ich es beschleunigen?

Lädt das Spiel nur zögerlich, lässt sich folgendes versuchen:

Kann ich Spielzustände, Nummern, und den Stationsnamen anzeigen?

Ja, wenn das quest-Attribut debug auf "true" ("wahr") gesetzt ist.

Geschichte

Gibt es Einschränkungen in der Größe der Geschichte?

Es gibt keine wie auch immer gearteten Einschränkungen. Man sollte die Geschichte allerdings in kleinere Kapitel (XML-Dateien) aufbrechen, um kurze Ladezeiten zu gewährleisten.

Muß ich Bilder und Musik benutzen?

Nein, das ist völlig optional.

Ist das Genre auf Fantasy begrenzt?

Die meisten der Wähl-Deinen-Eigenen-Weg-Bücher lassen den Spieler in einer Fantasy-Welt in die Haut eines Magiers oder Kriegers schlüpfen. Du kannst die Geschichte allerdings in jeder anderen Umgebung spielen lassen. Es muß noch nicht einmal ein Abenteuerspiel sein: es lassen sich auch Technische Support-Systeme in einem Intranet, oder beispielsweise ein Kasinospiel ohne jeglichen Handlungsstrang realisieren.

Muß all der Text in Englisch (oder Deutsch) gehalten sein?

Nein, die Geschichte lässt sich in einer beliebigen Sprache halten.

Verbreitung

Welche Dateien müssen enthalten sein, um das Spiel zu verbreiten?

Mit Hilfe der QML-Edit File -> Export (Dateiexport) Funktion lässt sich auf einfachste Weise eine Paket zusammenstellen, das sich eigenständig ablaufen lässt und verbreitet werden kann.

Welche Dateien lassen sich ändern, um die Verhaltensweisen von QML zu beinflussen?

Bei Verbreitung des QML-Pakets unter meinem Namen sollten keine Skripte (*.js, *.vbs) oder Dokumenttyp-Definitionen (*.dtd) verändert werden (wird ein Fehler in den Skripten gefunden, bin ich für Hinweise dankbar).
Allerdings ist jeder aufgefordert, einen völlig eigenständigen Interpreter für die Quest Markup Language für andere Systeme zu schreiben.

Kann ich meine Abenteuer verkaufen?

Es ist erlaubt, alles gewünschte mit den eigenhändig erstellten Abenteuern zu machen. Auch können alle zum Spielen des Abenteuers benötigten Dateien eingebunden werden. Die Quest-XML-Datei kann rechtlich auf deinen Namen geschützt werden. Allerdings ist es nicht erlaubt, das QML-System selbst zu verkaufen, da dieses Gratissoftware ist und den Public-Domain-Bestimmungen unterliegt.