I was at my friend's house and we were playing this game amongst ourselves. After they left I was alone but still wanted to play the damn game. Then it struck to me that it would be great to build that kind of game skill. It would be fun and hence here we are.
What it does
This is a simple word game where Alexa gives you a place and you say another place starting with the last character of the place said by Alexa. You cannot repeat the words used by either you or Alexa in a single session. Create a volley of 25 words to win at BEGINNER level. As you win more matches you would be upgraded to EXPERIENCED, EXPERT and MASTER levels. At each level, the number of volley's you need to win increases.
At any time you can ask Alexa to repeat the place, tell more details about that place or even spell the place.
How I built it
- I am using Amazon Alexa SDK for python in order to build the skill.
- I used elastic search for storing all the possible places and then search one for Alexa to answer.
- I am using dynamoDb for storing the words used in the current session.
- Lastly, I am using s3 for certain assets like images for Alexa presentation language etc.
Challenges I ran into
- I was using a static file for all the possible places and using that earlier. I realized that later that it was not a scalable thing and secondly when I started working on the feature where you can ask more details about that place it started to fall. Then I realized that Elastic search would be a great bet here.
- Understanding and using APL templates was trouble at first as there are not many resources for it as it's new, but after getting it, it was a breeze.
Accomplishments that I'm proud of
- I learned python from scratch in order to build this skill. I could have easily used Java as I know it but still writing in python and learning it gave me satisfaction.
- I tested this skill with my friends and family and everybody simply loves playing the game.
- The usage of SSML interjections and audio to create an engaging experience.
What I learned
- During this project, I have learned python.
- I learned Alexa SDK for python.
- I deep dived into Alexa presentation language in order to understand the multimodal experience.
- Also that creating games on Alexa is too much fun.
What's next for Geography
I want to certain more features like
- Player ranking based on the number of wins.
- Locale/Country specific interjections.
- Save and load functionality.
- Asking for hints.
- Monthly quiz competition where rankers can be awarded.