How many times you were telling someone over the phone your name, some details and had to repeat it multiple times to make sure it’s correctly understood? It was a very common problem when I just moved to the new country with English as a first language and tried to sort out all formalities over the phone. Especially if I’m not an English native speaker. Such mistakes always come at a cost of time, money or unnecessary stress.
What if we can find the way to avoid confusion? Well, it’s already there - you must have heard famous “Alpha-Bravo-Charlie” - that’s the beginning of NATO phonetic alphabet, widely used by pilots or in the military - where there is no room for error. It would be so beneficial if it would be more common among average civilians. It uses set of short, simple, short words that distinct phonetically from each other. Kids might know it for many actions movies, so why not realize this inspiration as a game for voice assistants?
What it does
Spy Club is an educational game designed to teach kids NATO phonetic alphabet. From the moment of start, “ABC” becomes “Alpha-Bravo-Charlie”. Liam being a voice of this game is looking for some helping hand on a way to decode secret messages. The game starts with a short tutorial to explain to a user the main objective of the game. After such introduction player is assigned to one of the available spy missions. Each of them is related to a different story and place. User’s role is to translate received messages into words.
Example one : Alexa says “Bravo-Alpha-November-Kilo” and player reply in such case would be “BANK”.
As the game progresses, messages might become more difficult to decode. Some of them might be longer, not clear or have more noise in the background. In case of an incorrect answer, the message will be repeated or player might get some additional advice. It’s always possible to pause a game and continue later, the current state of gameplay is always saved. To provide more immersive game experience, there is also an Android application that helps to keep track of current progress. At this time it provides a real-time preview of mission, place or transcript of secret message. If SpyClub is already on player’s smartphone, pairing is as simple as pressing one button (Alexa replies with player id, which is automatically recognized by DialogFlow.com SDK on Android).
Worth To Mention
Custom Voices - based on the age of target audience I decided to use a different voice than default one for Alexa. The main storyteller in SpyClub represents similar age range as the target audience for this game. There is also another voice responsible for responses with secret messages. That's especially important to make sure that player will notice moment demanding to be more focused. Both of them are generated with Amazon Polly.
Most of the architecture is based on Amazon's Solutions
- Lambda - handling game logic, building speech responses and synchronizing data between main database (Dynamo DB) and simplified Firebase database for users of SpyClub mobile application (more details below)
- Dynamo DB - providing persistent storage of game state, keeping track of user’s current progress, completed missions, (..)
- Amazon Polly - generating all voice responses available in the application, since the application doesn't use default one for Alexa.
Mobile application (Android)
User can pair mobile application and track current progress (see location on map, preview "secret message" that should be decoded)
- Firebase Functions - handles refreshing data in provides ea
- Firebase Database - simple, real-time access to data
- Dialogflow.com - providing SDK for voice recognition, so the user doesn’t have to type anything to synchronize.
- Mapbox - showing location of the current mission. A big highlight of this part cause Mapbox has super easy to install, beautiful and fully customisable maps.
Achievements I'm proud of:
- I can definitely consider using speech recognition to pair mobile application and Alexa as quite cool. Alexa can tell your smartphone what's player Id, and then it's easy. You don't have to type it yourself.
- Creating nice promotional video - didn't expect that it will take so much time :)
Challenges I ran into
- Until I tested my skill on real users I didn't expect that there are so many unhandled paths. It was a common scenario that when completely different Intent was called. After adding some extra utterances and adjusting slots it was much better.
- Showing real-time data on mobile application - I was experimenting with using simple sockets to synchronize user's progress on the mobile application, but at the end using Firebase was much easier.
- Auto-generated missions - At this moment all stories in the game are added manually. It would be great to automate this process one day with all advantages of AI.
- Leaderboard - presenting achievements of other players would make this game more competitive.