[ T. A. G. ] [ Tutorium ]

 

Kapitel 9

Personen und Kommunikation

 

9.1    Personen sind Objekte

Zunächst einmal sind Personen (oder NPCs, Non-Player Characters, wie sie auch gerne genannt werden) in T.A.G. gewöhnliche Objekte. Sie besitzen nur zusätzlich das Attribut Person. Das bedeutet, dass man sie nicht aufheben kann und dass sie in der Raumbeschreibung gesondert am Schluss erwähnt werden. Eine Person unterscheidet sich damit nicht allzusehr von den anderen Objekten im Spiel, und all das, was eine Person ausmacht, nämlich Gespräche oder Verhaltensmuster, muss mehr oder weniger mühsam programmiert werden.

Aber eins nach dem anderen. Definieren wir also eine Person für unsere Haus- und Waldidylle, vielleicht einen Naturliebhaber.

    Obj     Wanderer
    Name    'Wanderer' m
    vor     'wanders'
    subst   'wanderer' m  'mann' m
    Ort     Lichtung
    Attr    Person transparent
    Besch   'Der Wanderer ist ein gutgelaunter Kerl
            Ende Dreißig, der eine Kniebundhose und
            ein kariertes Hemd trägt und sich an den
            schönen Dingen des Lebens, das heißt der
            intakten Natur, erfreut.'
    Dabei   'Der Wanderer trägt [liste 1] bei sich.'
    Erst    'Ein Wandersmann sitzt hier und macht
            gemütlich Pause.'

Damit ist der erste Schritt getan. Der Wanderer befindet sich auf der Lichtung und ist einfach da. Mehr aber auch nicht. Die Passivität des Wanderers ändert sich aber im nächsten Abschnitt. (Dabei ist übrigens das Äquivalent von Darin und Darauf für Dinge, die eine Person bei sich hat.)

 

9.2    Reaktionen

Personen bringen natürlich Leben in ein Adventure: Sie reagieren auf Aktionen des Spielers, sie reden mit dem Spieler und wandern unter Umständen sogar auf eigene Faust umher. Das macht diese Personen interessant, aber auch nicht ganz einfach zu programmieren. Schon unwichtige, eher muffelige Zeitgenossen benötigen einige Zeilen, um ihr Verhalten zu beschreiben. Bei ausgereiften Charakteren, wie sie z.B. in Detektivadventures vorkommen, steigt der Aufwand um ein Vielfaches, und trotzdem wirken die NPCs manchmal immer noch stereotyp.

Kümmern wir uns erst einmal um die Reaktion der Person auf die Aktionen des Spielers. Dazu gibt es zwei eigene Ausführungsblöcke, VorReakt und NachReakt. Diese Blöcke funktionieren wie die altbekannten Vor- und NachAusf, mit dem Unterschied, dass keins der erwähnten Objekte die Person sein muss. Mit anderen Worten, diese Blöcke können eine Reaktion auf jede beliebige Handlung des Spielers sein.

Erweitern wir also die Definition um ein paar Verhaltensmuster.

    Obj     Wanderer
    ...
    VorReakt
        (gehen)
            Text '"Tschüss!", winkt mir der Wanderer
                hinterher.'
            Absatz
    EndeAusf

    NachReakt
        (gehen)
            Wenn (aRaum besucht) dann
                Text '[#]Der Wanderer nickt mir kurz
                    zum Gruß zu.'
            sonst
                Text '[#]"Guten Tag!", sagt der
                    Wanderer, "Schön, dass es noch
                    mehr Freunde der Natur hier gibt.'
            Ende
        (hinlegen)
            Text '[#]"Wieso werfen Sie das weg?",
                fragt der Wanderer verärgert. "Tun
                Sie ihren Müll doch in einen Beutel
                oder Ihren Rucksack."'
        (singen springen fluchen)
            Text '[#]Der Wanderer schaut mich etwas
                mitleidig an.'
    EndeAusf

Die Ausführungsblöcke VorAusf und NachAusf funktionieren bei Personen natürlich so, wie gehabt:

    VorAusf
        (gegeben)
            Bed (aObj eßbar)
                '"Nein, danke!", sagt der Wanderer
                höflich.'
            Text '"Hmm, lecker, danke!", sagt der
                Wanderer, und kaum hat er [den aObj]
                in den Händen, verschlingt er [ihn]
                mit großem Appetit.'
            ObjNach aObj Nirwana
            Stop
    EndeAusf

   Tatsächlich können alle Objekte die Blöcke VorReakt und NachReakt haben. So kann z.B. ein Rauchmelder auf das Anzünden eines Streichholzes reagieren oder ein stark riechender Käse alle Schnupperversuche im Keim ersticken. Am häufigsten gebraucht werden diese Blöcke aber wohl bei Personen.

 

9.3    Gespräche führen

Natürlich kann man sich nicht nur anhören, was die Personen im Spiel zu sagen haben, sondern man kann mit ihnen auch reden. Üblicherweise geschieht dies mit einem der folgenden Befehle:

    > Frage den Wanderer über die Bäume
    > Erzähle ihm von dem Haus
    > Wanderer, gib mir die Karte.

Die ersten beiden Möglichkeiten sind dabei gewöhnliche Befehle, die mit einer VorAusf abgefangen weden können:

    VorAusf
        (fragen)
        Text 'Der Wanderer sagt:'
        Jenach aObj2
            (Bäume)
                Text '"Ganz klar, das sind Birken."'
            (Wanderer)
                Text '"Ich bin ein Wanderer.  Außerdem
                    bin ich Kassierer beim  SGV."'
            (Haus)
                Text '"Ich weiß nicht, wem das  Haus
                    gehört."'
            (Natur)
                Text '"Ich liebe die Natur."'
            ...
            (sonst)
                Text '"Ouh, da fragen Sie mich was."
                    Er schüttelt den Kopf. "Aber
                    darüber weiß ich nichts."'
        Ende
        Stop
    EndeAusf

Dabei kann man natürlich über alles mögliche fragen, auch über Dinge, die sich nicht im Raum befinden. Manchmal muss man zusätzliche Dekos einfügen, um abstrakte Gesprächsthemen, die natürlich in keinem Raum sind, abzufangen:

    Deko    Natur
    Name    'Natur' f
    adj     'frei'
    subst   'natur' f  'umwelt' f

Die letzte oben genannte Möglichkeit ist eigentlich ein normaler Befehl, der nur an jemand anderes als den Spieler gerichtet ist. An wen er gerichtet ist, wird in der Variable Akteur gespeichert, die normalerweise den Wert 0 hat. Ist Akteur ein anderes Objekt, so tritt ein besonderer Ausführungblock in Kraft, die BefAusf. Sie ist wie die bekannten Blöcke aufgebaut:

    Obj     Wanderer
    ...
    BefAusf
        (nicht_verst)
        Text '"Ich habe Sie nicht richtig verstanden",
            sagt der Wandersmann.'
        (gehen)
        Text '"Ich gehe, wohin ich will."'
        ...
        (sonst)
        Text '"Was sind Sie denn für ein Hektiker.
            Genießen Sie lieber die Natur, anstatt
            andere Leute herumzukommandieren", sagt
            der Wanderer erbost.'
    EndeAusf

Dabei ist nicht_verst der Befehl Nr. Null, der bedeutet, dass die Eingabe des Spielers fehlerhaft war. Man sieht, dass Personen in der Regel die meisten Befehle nicht befolgen.

Wenn man versucht, einem Objekt Befehle zu erteilen, das keine BefAusf hat, erscheint einfach ein platter Satz wie »Der Tisch scheint nicht an einem Gespräch mit mir interessiert zu sein.«

Aufgabe 24 **
Definiere einen Troll, der im Haus ist, und der den Spieler nicht in den Keller lässt, bevor er ihm etwas Essbares gegeben hat. (Die Trolle in unserer Welt sind offenbar eher auf Nahrungsmittel als auf Wertsachen fixiert.) Befehle und Konversation bedenkt der Troll natürlich mit einem unverständlichen Knurren.

 

9.4    Eigenständige Handlungen anderer Personen

Manche Personen bleiben für die Dauer des Spiels am selben Platz, andere wiederum wandern scheint's selbständig umher, und benutzen andere Objekte, genau wie der Spieler selbst. Dabei können die Handlungen der Person mehr oder wenig zufällig sein, oder aber einem vorgefertigten Schema folgen.

Egal, wie, diese Handlungen laufen unabhängig von der Eingabe des Spielers ab, und können so nicht in der NachReakt abgefangen werden. Solche eigenständigen Handlungen gehören in eine Aktion *.

Zum Beispiel können wir unseren Wanderer nach einem Zufallsschema von der Lichtung vors Haus wandern lassen und umgekehrt:

    Aktion *
    Ausf
        wenn (proz 12) dann
            wenn (Wanderer in vor_Haus) dann
                wenn (Wanderer hier)
                    Text 'Der Wanderer geht langsam
                    nac Norden auf die Lichtung.'
                ObjNach Wanderer Lichtung
            sonst
                wenn (Wanderer hier)
                    Text 'Der Wanderer schlendert
                    nach Süden.'
                ObjNach Wanderer vor_Haus
            Ende
            Wenn (Wanderer hier)
                Text 'Der Wanderer ist soeben
                angekommen, er nickt mir freundlich
                zu.'
        Ende
    EndeAusf

Diese Aktion ist relativ simpel, der Wanderer wandert zwischen zwei Räumen hin und her. Wann das geschieht, wird durch eine Zufallsbedingung gesteuert, hier in zwölf Prozent aller Fälle, also etwa alle acht Züge.

Aufgabe 25 **
Der Wanderer soll nun entlang einer festgelegten Route laufen, wobei er immer dieselbe Zeit am selben Ort verweilt. Zu bestimmten Zeitpunkten macht er bestimmte Bemerkungen. Dieses Verhaltensmuster soll einen geschlossenen Kreislauf bilden, so dass es sich ständig wiederholt.

Zusammenfassung:
Andere Personen im Spiel (NPCs) werden von T.A.G. als Objekte behandelt.

Es gibt zwei Ausführungsblöcke für Objekte, VorAusf und NachAusf, die es dem Objekt bzw. der Person erlauben, bei Befehlen zu intervenieren, in denen sie nicht direkt angesprochen wurden.

Ein weiterer Ausführungsblock, BefAusf, steuert das Ausführen von Befehlen durch andere Personen, die in der Form »Person, Befehl« gegeben werden.

Allgemeine Verhaltensmuster, die unabhängig vom Befehl des Spielers sind, müssen in einer Aktion * definiert werden.

Verweise:
Handbuch, Kapitel 6.5.2. Ausführungen von Objekten
Handbuch, Kapitel 12. Andere Personen im Spiel
Der alte Mann, die Zwerge, der Geist und die Meisterin in karn.adv


Nächstes Kapitel
Voriges Kapitel
nach oben
Inhalt


________
Startseite --> Textadventures --> T.A.G. --> Tutorium --> Kapitel 9
Übersicht
Martin Oehm

[ www.martin-oehm.de - Startseite ]
[ Textadventures ]
[ T. A. G. ]

Inhalt

Einleitung
Spielwelt
Objekte I
Objekte II
Anweisungen
Variablen
Befehle
Klassen
Personen
Diverses

Lösungen