FAQs - Avantol13/Conversational-AI-Engine-for-Video-Games GitHub Wiki
FAQs (Not really, no one's asked any of these...)
What is this project?
A proof of concept application that quantifies some well-regarded psychology concepts about personality and emotions and utilizes them to create a system for dynamic (and more realistic) conversations in video games.
Is it really artificial intelligence?
Well... depends on your definition of AI. Merriam Webster says:
Artificial Intelligence: an area of computer science that deals with giving machines the ability to seem like they have human intelligence
So in that sense, yes. The idea here is to give characters in games more freedom in their choices for statements in conversation (depending on their personality and emotions). This will better simulate "human intelligence" in the sense that if you make an NPC angry, their emotions will reflect that. Now that you have those emotions, a developer can do loads of things. This project focuses on conversations, so an angry character will react angrily. But there's nothing stopping people from using the emotions or personality of characters to do other things. Maybe when this personality type gets angry, they start throwing things. Maybe the door to the Heavenly Temple of Reverence only opens for people whose anger is low and fear is high. The possibilities are truly endless.
Why do this when you can 'hard code' human-like conversations better?
A valid argument. Developers can easily program realistic conversations for each interaction in modern video games. However, what happens when we expand the world of Skyrim ten-fold? One-hundred-fold? In the future, large virtual environments (Holodeck, here I come!) cannot possibly have hand-crafted interactions for every character (stale, unemotional defaults for all the non-important characters will not do! We want immersion!).
Won't developers have to 'hard code' these characters and statements anyway?
Sort of. The developer creates a topic and a pool of available statements regarding that topic. Each character is then assigned a personality type and upon needing a statement in conversation, they filter through that pool and choose one depending on their personality, current emotions, etc. This means that conversations are more dynamic and realistic without requiring each and every character conversation to be hand-crafted.
Will this system allow for programmed character interactions without the AI?
Yes, in a sense. Perhaps you want to make sure that the conversation between two characters progresses in a very exact way. While this (arguably) takes away from the realistic and immersive nature of the conversation, it is possible.
Simple create a topic like mainQuest_nemesis_castleDread_1.
Now, determine who will initiate the conversation with said topic and have just one statement available in the pool of statements for that topic.
-
"I see you've found my castle."
For the "next topic" field in the statement above, use something like mainQuest_nemesis_castleDread_2 which has only one statement for the hero/heroine.
-
"I followed your raven."
Similarly, advance the topic onto something like mainQuest_nemesis_castleDread_3 for the villain's response.
While this system will support this behavior, much more can be done. Why not have a few dialog options for the villain depending on his assigned personality and current emotions. Maybe outside events (like how many henchmen the hero/heroine has killed throughout his/her travels) will adjust the villain's emotions at this moment. In that case, you'd want some varying options for him to say.
-
"You coward, you should've come here ages ago!" -
"I knew you'd find me eventually." -
"How'd you get in here? And who are you?"
When is this going to be complete?
I don't know. I'm currently in college and creativity and programming are things I'm very passionate about so I work on this in my free time. If you can offer any help, please do! Download the source, critique it, break it, fix it, and then let me know how I can improve it! I am by no means an experienced programmer and this project is in its very, very early phases.