-
Notifications
You must be signed in to change notification settings - Fork 0
/
pseudocode.txt
104 lines (77 loc) · 3.28 KB
/
pseudocode.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
StoryProgres == Narrative position + Spatial location
Where you are in the story and where you are in the world.
Story = Arc
Arc = chapters
chapters = scenes
scenes = beats
ABLAgent should care about stories.
________________________________________________________________________________
---Server---
ABLAgent.start()
SenseStoryState()-->Update StoryWME
--ABLAgent---
---Story Behaviors---
startStoryNode()
continueStoryNode()
endStoryNode()
---Sensors---
SenseStoryState()
---WMEs---
StoryProgressWME
StoryID
Progress?
LocationWMEs
Where you are.
----DATA----
---StoryStructs--
preconditions = [an array of thingss that need to be true to fire.]
current = "Story text."
effect/modifiers = [an array of effects that modify the story. That
should happen after the node gets removed.]
next = [the possible next states, and how to get there.]//
HOW DO WE DEAL WITH PRECONDITIONS?
next == {
choice1 = node1
choice2 = node2
---LocationWME---
Information about the player's current location.
________________________________________________________________________________
---Data Flow---
---GAME---
HAS [LOCATION, PLAYER INPUT]
NEEDS [INPUT, DRAMA MANAGEMENT]
---GAME DATA---
- User input
- Location
---STORY MANAGER---
HAS [STORYDATA] --> Look at StoryStructs to see how they are developed.
---ABL---
NEEDS [LOCATIONDATA, STORYDATA]
OUTPUTS [ACTIONS]
---Actions---
________________________________________________________________________________
---End Goal---
Have an AI author that creates stories that adhere to MICE constraints.
The agent itself, however, will need to know two things.
[1.] The first being story beats. Such as a simple character story.
[2.] The second thing the agent will need is a model of MICE.
What are we missing:
- Story nodes.
These story nodes need some kind of tag within them, so we know what we are kind of stories they are.
- Model of MICE.
________________________________________________________________________________
[Deal with this later.]
C --> Resolution.
While each of the structures is effectively the same, the progression of those structures is different. So, a character storyline progresses whenever the character reflects on something.
An event story line progresses when the event has changed.
An inquiry story line progresses when a question has either been raised or answered.
A milieu story line progresses when the characters are getting closer to leaving the location. Note, a milieu feels like a collection of inquiry questions.
The key here is that progress must be made in some form. Each beat is a step towards a resolution.
TODO: NOW let's just code a scene where we have some reactive beats.
Character wants [change in life.]
life changing event.
Character reflects (we will want to use other systems for this.)
---Character---
John's restless because they don't like their job.
- John can quit their job and become an adventurer .
Needs conclusion((Adventurer story) event/character)