Add profile-driven daily schedules, semantic location import and editable catalogs, flexible intent execution and safe graph handovers. Implement coherent social scenes, native chair use and campfires, frontal conversation approaches and walking. Fix clientless near-teleport observer identity and native flight area queries. Include migrations, regression tests and implementation documentation.
5.5 KiB
Wir hatten die Tagesroutinenplanung und die Mikroaktionen als zwei aufeinander aufbauende Systeme für die AdventureBots vorgesehen. Dabei war uns besonders wichtig, dass AdventureBots keine vollständig autonomen Spieler simulieren müssen, sondern vor allem glaubwürdige, sichtbare Abenteurer in der Spielwelt darstellen sollen.
- Tagesroutinenplanung Der Tagesroutinenplaner soll festlegen, was ein AdventureBot im Laufe seines Tages unternehmen möchte, ohne jeden einzelnen Handlungsschritt vorzugeben.
Wir hatten dafür serverseitige Lua-Skripte vorgesehen:
- scripts/clientless/adventure/generic.lua als allgemeines Skript für AdventureBots mit abwechslungsreichem, teilweise zufälligem Tagesablauf.
- Individuelle Overrides, beispielsweise overrides/arthoran.lua, um bestimmten Charakteren eigene Verhaltensweisen zu geben.
- Einen getrennten Bereich für Testskripte. Ein Tagesablauf könnte beispielsweise beinhalten, dass Arthoran zunächst nach Eisenschmiede reist, dort eine Taverne besucht, später ein Abenteuer unternimmt und anschließend zu einem anderen Ort weiterzieht.
Die Tagesroutine beschreibt dabei lediglich die größeren Vorhaben, nicht jeden einzelnen Bewegungsschritt oder jede Animation. 2. Intents als Verbindung zwischen Planung und Handlung Wir hatten ausdrücklich zwischen einem Intent (Absicht) und den daraus entstehenden Actions (Aktionen) unterschieden.
Die Lua-Schnittstelle sollte dafür eine semantische Anweisung wie intend anbieten.
Beispiele: Intent Bedeutung Eine Taverne in Eisenschmiede besuchen Dort einkehren und Bier trinken In die Todesminen gehen Ein Abenteuer erleben und gegen Gegner kämpfen Einen anderen Ort besuchen Dorthin reisen und eine entsprechende Tätigkeit ausüben
Lua beschreibt das Vorhaben. Der Core entscheidet, welche konkreten Aktionen zur Erfüllung erforderlich sind.
Die Lua-Skripte sollen also weder den Reiseweg selbst berechnen noch Animationen, Getränke, Kämpfe oder einzelne Interaktionsschritte manuell koordinieren müssen. 3. Mikroaktionen während eines Intents Mikroaktionen sind die kleinen Handlungen, durch die der Bot sein übergeordnetes Vorhaben glaubwürdig ausführt.
Wir hatten insbesondere folgende Beispiele besprochen: Situation Mögliche Mikroaktionen Taverne besuchen Hinsetzen, trinken, essen, aufstehen Aufenthalt in einer Siedlung Sich umsehen, Emotes verwenden, mit NPCs oder anderen Bots sprechen Abenteuer unternehmen Auf Monster treffen, kämpfen, sich zwischendurch ausruhen Unterwegs sein Pausieren, rasten und situationsabhängige Handlungen ausführen
Der wichtige Grundsatz war, dass Mikroaktionen zum aktuellen Intent und zur Umgebung passen müssen.
Ein Bot, der eine Taverne besucht, soll dort nicht einfach nur stehen bleiben. Er soll durch passende Handlungen vermitteln, dass er tatsächlich eingekehrt ist.
Genauso soll ein Bot, der auf Abenteuerreise ist, nicht bloß von Location zu Location laufen, sondern auch entsprechende Aktivitäten ausführen können. 4. Glaubwürdige Darstellung statt vollständiger Simulation Hier hatten wir eine wesentliche Einschränkung festgelegt:
AdventureBots sind in erster Linie RP-Darsteller, keine vollständig simulierten menschlichen Spieler.
Daraus ergeben sich unterschiedliche Anforderungen an die Ausführung.
Sichtbare Aktivitäten: Reisen, Tavernenszenen, Gespräche und andere Handlungen in der offenen Spielwelt sollen für echte Spieler möglichst glaubwürdig stattfinden.
Abstrahierte Aktivitäten: Nicht alles muss vollständig durchgespielt werden. Als Beispiel hatten wir die Todesminen besprochen: Ein AdventureBot könnte sichtbar den Dungeon betreten, sein Abenteuer anschließend intern abstrahiert absolvieren und später an einem plausiblen Ort wieder erscheinen.
Das bedeutet auch, dass ein Tavernengast nicht zwangsläufig ein vollständiges NPC-Handelssystem durchlaufen muss, nur um ein Bier zu trinken.
Bei Kämpfen gegen Monster hatten wir sie als Bestandteil von Abenteuer-Intents vorgesehen. Eine detaillierte Kampf-KI mit festgelegten Fähigkeiten, Taktiken und Entscheidungsregeln hatten wir in diesem Zusammenhang allerdings noch nicht ausgearbeitet. 5. Dialoge und soziale Mikroaktionen Für Tavernenszenen hatten wir außerdem gemeinsame, lokalisierte Standarddialoge vorgesehen.
Ein Beispiel war: „Noch ein Bier bitte.“
Die Bots sollen solche Dialoge und passende Emotes situationsabhängig verwenden können, statt für jede Szene individuelle Texte zu benötigen.
Da sie echte clientlose Player verwenden, sind serverseitige Chatfunktionen grundsätzlich verfügbar.
Komplexere direkte Interaktionen mit menschlichen Spielern, etwa Gruppenspiel oder eine umfangreichere soziale KI, hatten wir ausdrücklich auf später verschoben. 6. Entwicklungsreihenfolge Die Reihenfolge war ebenfalls klar: Clientless Player Core
Stabile Reiseplanung und Navigation
Intent-System und Tagesroutinen
Kontextabhängige Mikroaktionen
Das Navigationssystem ist dabei das Rückgrat. Es soll einen Bot zuverlässig zu den Orten bringen können, die seine Tagesroutine auswählt.
Erst darauf baut die eigentliche Verhaltenssteuerung auf. Zusammengefasst Unser bisheriges Konzept lautet:
Der Tagesroutinenplaner bestimmt, was der Bot unternehmen möchte. Ein Intent beschreibt das konkrete Vorhaben. Der Core organisiert die Umsetzung, und Mikroaktionen sorgen dafür, dass diese Tätigkeit in der Spielwelt glaubwürdig dargestellt wird.
Dabei müssen nur die für andere Spieler relevanten Aktivitäten tatsächlich sichtbar simuliert werden. Aufwendige Vorgänge können abstrahiert werden, wenn das dem Zweck der AdventureBots nicht widerspricht.