Megafuzz Dev Blog

Nerdy rants on programming and game design

The Dialogue System

Talking About Talking

If you've read the first blogpost, you will know the game I'm currently working on is an RPG with heavy emphasis on dialogue and moral choices. To this end, one vital part of developing the featureset for the game is making a robust dialogue system. I had a good idea of what I wanted it to be able to do before I set out to make it, and one of my main goals was to make a very automated system that, when properly set up, would be able to handle just about every situation I could throw at it and automatically handle everything for me after being fed a single file for each encounter - one single file containing all relevant data - beyond just dialogue.

Here are the bullet points:

  • Based on external files to accommodate for localization, easy fixes, updates and possibly modding
  • Needs to work in seamless conjunction with the internal quest handling module
  • One file for each conversation should provide everything - not just dialogue, but automated handling of quest data, scripted events etc.
  • Wildcard attributes in a file can do stuff like changing in-game values (money, health, good/evil points etc.) at specific points in a conversation
  • Should also be able to change facial expressions at certain points, determine who's talking to who - maybe a second NPC suddenly gets involved
  • Handle dynamically created, context based dialogue option; based on certain criteria like quests, weather conditions or other factors
  • Needs to be able to show customized control keys (images and/or text) - with localization taken into consideration
  • Anyone, regardless of programming skills, should be able to create content for the dialogue system with very little to no need to read documentation

So let's look at them one by one in a bit more depth.