Week 11: Finishing Dialog, Setting New Machine & Showing Hints

Week 11: Finishing Dialog, Setting New Machine & Showing Hints

Until now, we were waiting to finalize the states that our experience would consist of. This would determine the main dialog that Ako would have to speak. We also wanted to add some more visual cues, especially during the real game to help the player get unstuck.

Setting up the Project on New Machine

Until now, we had been only testing our project on a development PC that we had setup initially. Now that we are nearing the end of the semester. It was time to start playtesting our product. We decided to setup a new machine to only playtest. We encountered a couple of problems along the way.

  • Our application refused to receive valid audio files from Polly. Polly would ping its server for request but would only get an empty file back.
  • We created a new account with Polly and use its hash code in our application, it still didn’t help.
  • However, later, we switched to a new machine which was similar to our ETC PCs instead of the gaming workstation that we had been using.
  • This seemed to fix the problem! So, we were probably facing an issue with the network receive message from the Polly API not being accepted by our machine. Switching of Firewall and Network Security too didn’t seem to make a difference in the last machine.

Let us get you unstuck, Here is a Hint!

We often noticed that even though the players went through the tutorial, they often encountered problems when they were in the real game. We didn’t want to force hints or help to them since we really wanted them to solve and play the game!

Therefore, we introduced a subtle hint system. Ako would wait for a time period and start giving out hints one by one but allow the player to complete the puzzle.

Making SSML Work with Dialogflow

Every time Dialogflow is requested for a response, it returns the dialog that Ako is supposed to say. In other words,

Dialogflow Response -> Amazon Polly -> Ako

  1. Therefore, the response that Dialogflow returns is a SSML string encoded in a XML format.
  2. The application parses the XML string to extract the SSML.
  3. The SSML string is then passed from the application to Polly.

But, the SSML string is very similar to the XML syntax. So, our XML Parser started getting confused. We slightly tweaked our responses to received from Dialogflow so that the XML parser can parse it without problems and convert it back to SSML syntax.

Ako now has a clear and more expressive speech!