Recently, my wife and I have gotten into attending escapes rooms when we have the rare date night opportunity. I wanted to create an Alexa skill that challenged users to the same type of critical thought problems you would encounter doing an escape room.
What it does
Ready Set Know is a trivia game that attempts to place an emphasis on pattern recognition, over actual “book" knowledge. Items of a set are read one at a time and the user is tasked with identifying the pattern. A game is won by telling Alexa the next item in the set. There are no time limits, or scoring in Ready Set Know. I wanted to encourage players to take their time with the thought process and not feel rushed once they start encountering more challenging puzzles.
How I built it
Ready Set Know was built with nodejs, taking advantage of the Alexa Skills Kit SDK for node, as well as dynamodb and lambda. This was my first proper Alexa app, so there isn’t much else to say here other than trial and error.
Challenges I ran into
Allowing for a single slot from the SolveIntent to allow for multiple data types. Answers can range from last names, numbers, states, or other arbitrary words. This required me to use the Literal slot type, which was prone to providing extraneous characters.
I underestimated how difficult it would to come up with the questions used in Ready Set Know. Additionally, since RSK is about pattern recognition, it was particularly difficult to determine what constitutes as an “easy” sequence.
An Alexa skill needs to be able to function from any intent or entry point. There is no guarantee the user is going to call the LaunchIntent prior to issuing additional commands. The user may say “Alexa, ask Ready Set Know what the next item is”. This demands that every branch needs to know how to respond to a user without any assumptions of other tasks already being completed.
Accomplishments that I'm proud of
Being my first proper Alexa skill, I am proud with the fact I took a challenging concept and brought it to life. As a software engineer, it is easy to start a new project but putter out near the end and leave it unfinished.
What I learned
Voice interfaces are more challenging than I thought it would be. Sure, you don’t have to deal with visuals, layout or animations, but you do need to put real effort into your UX and decision trees.
While SSML seems to be like icing on the cake, it is actually very important to the quality of an Alexa skill. It isn’t enough to just provide a string for Alexa to read back to the user. Most of the time, the default options will be adequate, but to avoid some of the rigidity the developer really needs to put some thought into how to leverage SSML.