There are several Trivia Skills our there. Why did I build yet another?
Most of the existing trivia skills are built for voice and don't deliver an immersive multimedia experience. Smarty Pants is a trivia skill that is built from ground up to be both voice forward and visual forward. One of the key design goals was to be able to use the skill with just voice or just screen interactions or any combination of voice and screen interactions.
What it does
At its core, Smarty Pants is a trivia skill. The skill pulls from a repository of 6000+ questions. Users can choose a trivia category like animals, science, technology etc. They can also decide the length of the game (maximum of 20 questions).
What sets the skill apart is the immersive experience on APL devices. The skill leverages features like touch interactions, auto generated events, background images and videos, audio mixing etc. to build a rich immersive experience for screen based Echo devices. At the same time, the skill is fully functional or headless devices like Echo Dots.
How I built it
I started off collecting thousands of high quality trivia questions across multiple categories like science, animals etc. I then built the basic trivia functionality into the skill.
From that point onwards, I focused on building the APL based multi-media experience. I drafted a design on paper on how to present the questions, how to present results after each question and how to present the final game results etc. I also designed what interactions to offer to the user (for example, skipping ahead to the next question, restarting the game etc.). Once I had the visual designs finalized on paper, building it using APL technologies was a breeze.
I just followed the documentation, cookbook code, Slack channels etc. to realize my design by the skill.
Accomplishments that I'm proud of
Auto generated event: Once a user answers a question, two things need to happen.
- An APL visual telling the user if they got it right or wrong. Stay a couple of seconds on this screen.
- Another APL visual showing the next question.
These APL documents need to be shown one after the other without user interaction.
I'm proud of how I made it happen. I leveraged APL's 'SendEvent' command to schedule an automatic event to be fired once the first APL document is rendered. The automatic event gets handled by my code to render the next question.
I believe I found a good use case to leverage the 'PlayNamedChoreo' in the Motion Sensing APIs. When the user provides a wrong answer, I use the 'ScreenImpactCenter' to tell the user in a fun way that they got it wrong.
What's next for Smarty Pants
Persistence layer to avoid repeating questions across sessions.
Leaderboards to track highest scorers across all users.
More game categories.
Support for difficulty levels.
Fun options like 50-50, hints etc.