Today is only day 4, as I was too busy to do anything on the project yesterday. I spent a bit more time on emotions, exploring the Wheel of Emotions in a bit more detail. Implementation-wise I made a start on the module that generates and handles characters. From the wheel of emotions it is possible to derive a number of secondary emotions, and as I use emotion ‘coordinates’ to evaluate the stance of a character towards other characters, this should allow for a decent modelling of interpersonal relations. I’m still not sure how this will influence decision making. There will probably have to be some evaluation function which assigns a numerical score to each option, and that will be modified by the stance of the character towards any affected characters, and also the character’s own current emotional state. If they are furious, they might actually choose an irrational option that harms themselves.
When rendering this as a story, it might be worth looking at state changes, and possibly to add changes to emotional states as annotations to any activities that are going on, so that we can generate text like A did some action, and it filled B with anger. or A was overjoyed to see B again. – obviously, it is always better to describe emotional states indirectly where possible, but that seems to hard for now.
Given how little time I can devote to the project, I think I will have to scale it down a bit if I want to have anything ready by the end of the month. I might always try to continue working on it afterwards for the more ambitious ‘stretch goals’.
On the to-do list now is the representation of world knowledge, both the objective ‘truth’ and the characters’ individual views of it. Then the world simulator/planner, and then a few basic aims. At that point I should have a simple TaleSpin working, which I can extend with more details. I would then add more aims and actions to it as I go along, and start work on the routine to generate the story from the world log, and finally the verbalisation, which will be a slightly more sophisticated clone of Mumble.