FILO memory and conversation

Stainless 151 Mar 21, 2013 at 11:17

I was stuck at a boring show yesterday and snuck away for a beer. In the pub I started thinking about memory and conversations.

I have a FIFO memory structure. A conversation with me follows a linear progression

{Thought 1} {start talk 1}{thought 2}{end talk 1}{start thought 2}

“I think it would be a good idea to use binary instead of xml, it saves disk space and is quicker to parse”

My wife however has a FILO memory structure.

{Thought 1}{start talk 1}{thought 2}{start talk 2}{end talk 2}{end talk 1}

“I think it would be good, as it saves disk space and is quicker to parse, to use binary instead of xml”

I’m just wondering if this would be a way of creating variations in games that use conversation, like RPG’s

The same text data could produce different results depending on the speaker.

Then you could add speech artifacts. Stutters, procrastination, teurets, etc.

4 Replies

Please log in or register to post a reply.

TheNut 179 Mar 21, 2013 at 12:27

I think it would be complicated to break a conversation down into pieces and selectively order their appearance. The more variations you add, the more you have to test and double-check the combinations for the targeted language. In your example, your wife would be a difficult person to follow if she spoke like that :D

Personally I think advancements in AI, particularly chat bot technologies will eventually find their way into games as they have the greatest chance of improving character dynamics. A system needs to have NPCs react to the environment in infinite ways rather than a finite state based on some variables. If a neighbouring town goes to war with another, then only through realistic means can the other town begin to react to it. Visible invasion, messengers, loud sounds nearby, official announcements, etc. The choice of text can be based on the defined personality of the NPC. In the future, we can expect good speech synthesis to even provide the audio component of the conversation, which will add in such characteristics as stuttering, paranoia, anger, etc.

Stainless 151 Mar 22, 2013 at 09:27

Breaking down data would be very easy actually, it would just require adding a flag flags into the text stream, much like you would do with an eliza system.

However you are correct, my wife can be pain to listen to :rolleyes:

“You remember x, the thing that y told you about, you know y the woman that works at z, well used to work at z she’s now at a, but anyway ….”

I worked on a system of text to speech a few years ago for a company that went bust. It was very advanced and used a mixture of genetic algo’s and complex shaders. The aim was to take a bunch of speech samples and turn them into a sort of DNA that could be used to generate any speech you wanted.

I almost had it working, I fed in test data a friend got for me. He got Janet Jackson to record the data for me. I fed it into the system, left it running for a day or so. Then generated a few test speech segments.

I got Micheal Jackson.

Close but no cigar :(

fireside 141 Mar 22, 2013 at 14:27

“You remember x, the thing that y told you about, you know y the woman that works at z, well used to work at z she’s now at a, but anyway ….”

That’s more about adding too much detail. I had a stepfather that did that and I could never actually remember what the topic was. He did. He would just add all this detail, like the kind of weather on the day, etc.

It’s more or less agreed by most gamers that conversations need to be short and to the point. They would mostly rather be doing something else. Doesn’t mean you don’t need it, however, there is a group that believes that.

Stainless 151 Jul 07, 2013 at 10:10

I’ve been thinking about this more, and it can be applied to AI to create new behaviors based on existing code.

For example, making a cup of coffee.

void Actions::MakeCoffee()

In a fifo AI the character would get the kettle, then get the mug, then get the coffee.
In a filo AI the character would get the coffee, then get the mug, then get the kettle.

Cheap way of adding variations to the game