Skip to content
This repository has been archived by the owner on Dec 26, 2022. It is now read-only.

Getting started with Dialogue! #40

Open
calummackervoy opened this issue May 1, 2021 · 0 comments
Open

Getting started with Dialogue! #40

calummackervoy opened this issue May 1, 2021 · 0 comments
Assignees
Labels
enhancement New feature or request ontology Requires changes to be made to one or more ontologies

Comments

@calummackervoy
Copy link
Member

calummackervoy commented May 1, 2021

Big one this, very exciting. To make it more approachable I've made a proposal based around a small-scale interaction (so we have somewhere to start), and then below I've made some points about dialogue in general to keep in mind where we want to go

Starting Scenario

A dialogue is created in a similar way to building to a scene (#36), except with an additional step to generate the "social context" of the dialogue. At a basic level this should label the Participants and a history of messages between them

Take for example that I initiate a dialogue by interrupting a street preacher. A Dialogue is then created between myself and the preacher, and we both start with one goal:

  • I have chosen my goal by selecting an option for dialogue
  • The street preacher, interrupted, wants to talk to me about a radical new sect of Piscalism

The preacher may reply differently depending on my choice:

  • I asked about Piscalism - the happy preacher can pursue our mutual goal immediately
  • I asked the preacher's name - the preacher will accommodate my goal because it doesn't contradict their goal, but next time they may decide to pursue its own goal instead - "well met sir, I am Ivan of the Godly Parish"
  • I said something strange that the preacher didn't understand, or that contradicted their goal, for example asking them to a game of football - "the preacher stares at you, bewildered". They decide to pursue their goal anyway. "Have you heard the word of God?"

The "goals" here are the agents' short-term goals in narration and are different from a larger scale goal like world domination

Notes on AI

  • the game state may change such that the AI chooses to adopt a goal of avoiding dialogue, for example if I offended them
  • the use of goals could be useful in Machine Learning, but we may find that the use case of that is more in tune with developing scripts for the various stages (e.g. goal selection)
  • https://openai.com

Notes on reducing complexity

  • The complexity of "what to say and how to say it" can be heavily reduced by choosing a narration of what is being said, not what is literally being said. E.g. "The character says hello and introduces themselves as Hercules"
  • Limiting the dialogue to two participants
  • Only the player is able to initiate dialogue. I think that the NPC initiating a dialogue isn't very different from other forms of asynchronous events

Character building with dialogue

Later, we want dialogues to have "side-effects" on the game state

  • Relationships and memories
  • When the preacher presents me with the question, I could choose to make my character a convert or staunchly atheist. Perhaps the player poses a question about the NPC that it doesn't know, so needs to make a quick choice and write that to its character

Contradiction will be a difficult challenge, both in the sense of the player picking up on the AI contradicting itself (maybe after it's written some new development to itself) and in terms of the player saying contradictory things to the AI

Narration

I think that we could expand the social context in the dialogue to encompass other things, for example world state (this is a dangerous situation) and narrative goals which can steer the direction of conversation

@calummackervoy calummackervoy added enhancement New feature or request ontology Requires changes to be made to one or more ontologies labels May 1, 2021
@calummackervoy calummackervoy self-assigned this May 1, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request ontology Requires changes to be made to one or more ontologies
Projects
None yet
Development

No branches or pull requests

1 participant