James Intro (Opponent)
Amazon Alexa being a voice first interaction device/platform, and a session based (speak/listen/reply) kind of usage pattern, there are limited things you can do with it when it comes to kids. It boils down to a "ask question, expect answer" kind of a platform. As a developer/designer, we would innovate in how we ask the question or how we make the kids feel (using a storyline), as that is under our control . This was my thinking process while thinking of an idea for this hackathon.
A very obvious choice came to mind, A QUIZ. No surprises there. But the number of trivial quiz skills in the Alexa skills store is overwhelming. A very simple guess for the low ratings of such skills is that it does not innovate in the "ask question, expect answer" pattern. It just blindly follows it.
I thought about many other skills, and all required the use of echo show to make it 'actually' fun to use or play. What I ended up with is :
A skill that would not ask:
- Only Geeky questions (boring for one and fun for the other)
- Only Math questions (enhance calculation skills)
- Only Game Of Thrones questions (make it fun for the start and boring after some time) ...etc. (I think you got the point there)
Moreover, I wanted to add a human touch to it so that the kids not only interact with Alexa but many others like Alexa. For example, if I am playing with an opponent (not a real one), I would not like Alexa to just tell me that this is your opponent, you will be competing with it. I would want the opponent to talk to me in some way so that I don't get bored with random opponent names.
What it does
The skills name is 'Beat the Opponent' (Sorry for the boring name there). It is an interactive quiz game for the kids which has multiple levels and different opponent for each level. The themes are different for each level. For example, the first level's theme is on Superheroes where you will be playing against an opponent named Rick. Rick will introduce himself to you (not in Alexas voice but his own). And there will be a connection between Rick's introduction and the level's theme. So as one might expect, Rick is a superheroes fanatic, he likes to watch Marvel/DC/etc. Every level has 10 questions, and the skill keeps a count of your score (right vs wrong). At the end of the level (10 questions), it will compare your score with Ricks and tell you whether you won or not. If not, Rematch!, or Proceed to next level! Another example of a theme is 'audio-based'. In the 3rd level, you will be presented with sounds of a turkey, campfire, beating eggs, a man speaking Chinese and other cool things, for the kid to identify and pick. See I told you, not so boring after all.
I don't want kids to take it as a quiz (because if they are even 1% like I was as a kid, they would hate that word, though they might have fun playing it.). Also, You would not hear a kid say to others on the playground about how a quiz is badass.
THE BEST THING? Please try it on echo show and you will know it. My neighbor's kids loved it because of what it shows on the screen.
How I built it
Things I focused on :
- Keeping it Dynamic.
- Adding different ways to interact each time.
- Not so easy-Not so difficult-Not so boring questions.
- Minimum Code-Maximum Functionality.
- Easy & Interactive Experience (Not to make the kid feel quizzy but increase their knowledge too)
That said, Lets get on with how it's currently Implemented.
Services Used :
- AWS Polly - Different voices for different opponents.
- AWS S3 - For storing :
> images > audio
- AWS DynamoDB - For storing:
> Opponents > Questions > Users
- AWS Lambda - For running the code.
The best thing about the implementation?
- It is very dynamic. I can add almost anything including levels, opponents, and questions, without changing any code.
Challenges I ran into
- Creating Score Board with Customized Opponent Names and Scores. [Using Python Script]
- Designing Themes and Questions.
- Content building.
Accomplishments that I'm proud of
- Dynamic Addition of Levels/Opponents/Questions
- Can be scaled up pretty quickly.
What I learned
- Working with Alexa Skills Kit.
- Creating skill for Echo Show
What's next for Beat The Opponent
- Add videos for victory at the end of every level.
- Learning from user behavior and accordingly get opponent scores. (higher for better players, lower for beginners)
- Add 1-2 levels/week for new content.
- Add functionality for knowing the current score of a player.