Trivia games are a lot of fun to play with friends and family, and it's always nice to win free stuff in a competition. I have built quite a few trivia skills since I began developing skills, and making one that included real world contests was a huge goal of mine.
What it does
It plays a lot of different game types, including Streak games to go for your highest personal score, Instant Win games with large groups of people where the first question you miss and you're out, and Normal games with friends where you play until someone wins.
Now, though, it also plays contests.
A contest works like a streak game with both a longest streak and an accumulated score. No lifelines or other ways to win, you have to use your own brain to get a high score. Each contest will last a set amount of time and you can see the current scoreboard at any time at llitd.com/trivia.
Other features the skill offers: random voices will read off the questions while you play, you can change the type of answer options you want to submit with (numbers, letters, greek, phonetic, and colors), and on normal and instant win games you can change the question category to hone in on one specific type of question.
How I built it
I built up my trivia skill design over time with minor modifications and improvements, and then when I decided I was finally ready to implement a competition based system into it I used dynamoDB and custom html generation to create a leaderboard on my skills website. Using the APL was a lot of fun for creating a way for users to submit their answers on the screen and make selections.
The contest showcases a global leaderboard to see who is in top place from around the world. It will be cleared out quarterly and track who has the highest total score as well as the longest streak without missing a question.
I made sure the base screen of the game was simple to understand and use and the flow was enhanced by the visuals. You can submit your answer with vocal requests or by tapping the screen.
Challenges I ran into
Implementing the APL was rough at first, and then designing out the leaderboard and custom game was a lot of work. I had to add permissions to the skill for the email address and names so that I could reach users later, but all in all it was worth it.
I used datatables to make the leaderboard snappy and clean so that users can filter it, and I intend to constantly improve the leaderboard over time.
Accomplishments that I'm proud of
I'm really proud of how well the game turned out and the way in which I was able to utilize other features I've built to offer this competition aspect. The gameplay is meant to be fast so that users don't need to submit a lot of extraneous requests to keep things moving. I also integrated additional voices into the system for reading questions so that if a user wants to hear a question again, another voice will speak it.
I'm also proud of how I was able to link the leaderboard and the game together so that users can view their overall scores in the competition. It is something I've wanted to do for a long time but never really had a plan in place to implement it. Now that it exists, I'm quite happy with it.
What I learned
I learned a lot about the APL language and designing large structures for things like competitions. Up until now everything has always existed on the level of one user at a time, so being able to expand to a worldwide competition is fascinating and a lot of fun.
I also discovered a lot of things about a voice first interface wherein visuals enhance everything without being a required part of the flow.
What's next for Party Trivia
I'm going to continue enhancing and adding features to the skill as well as honing the competitions to be as fun and fair as possible. It's going to be a learning experience to get it working perfectly, but hopefully it will be fun and challenging enough to be a regular part of everyone's time!
With luck, I'll also be able to offer real world prizes some time in the future as well once Amazon allows that. I can offer ebooks or other digital prizes directly from Amazon to encourage participation and friendly competition!