We wanted to push away from the typical clunky voice quiz, to something with greater fluidity and presence. We saw an opportunity with APLA to allow for a more multidimensional quiz game, that would include audio based minigames and bonuses.

What it does

Category Blast is a quiz game that challenges you to give 3 correct answers to a category,

For example, if the category was: "colours of the rainbow", you could shout out: "red, green, "blue", and earn one point. Keep answering new categories correctly and you will get a streak of points.

During the game you will encounter minigames and bonuses which earn you more points. There are also facts after each question and contextual sound effects and jingles.

Get a question wrong and it's game over and you lose! Your score is put on our global leader board and you can see how you compare to other players.

How I built it

The real uniqueness of this skill is its implementation of APLA, to start, we created a custom utility to avoid having to write long blocks of APLA command JSON.

Then, we embellished the full potential of the APLA functionality:

  • We recorded VO and sourced audio at the new 320kbps/44.1k bitrate limit
  • We used the APLA volume filter to increase the volume of answers read back to you
  • The APLA mixer was used to give a more seamless transition between VO/SFX and TTS.

We also used Amazon GameOn to create and store data for a global leader board that players from en-GB, en-US, en-AU, en-IN and en-CA locales can all submit scores to! When it's game over, we make a call to the leader board and then display the data with an APL view.

To manage the Skills infrastructure and certification, we used the ASK-SDK. We store persistent user data in DynamoDB and our audio and imagery assets in S3 buckets.

Challenges I ran into

We had issues distinguishing whether the user had intended to give one, two or three answers in a response.

For example, check out this sample of our answer handling intents:

GiveOneAnswerIntent {AnswerOne}

GiveTwoAnswerIntent {AnswerOne}{AnswerTwo}

When given the category: Wives and children of Henry VIII

If the user says: "anne boleyn", we see a resolution to GiveTwoAnswerIntent with the slots "AnswerOne" => "anne boleyn" and "AnswerTwo" => "anne of cleves" being populated!

This was due to dynamic entities over resolving and matching "anne" straight to "anne of cleves" and "boleyn" to "anne boleyn".

To get around this, we check if the raw speech resolution has a fuzzy match of > 90% to a correct answer, if so, we make the assumption that they only wanted to give one answer, and dismiss any additional slot value fulfilments.

Accomplishments that I'm proud of

We're really happy with our mind mapping of creative audio ideas for this project, through this we came up with a few bonuses as well as a nice way to present facts!

  • Good Genie - audio flow: bonus SFX => Alexa TTS => poof SFX - offers you a bonus to 10x points if you answer correctly.
  • Bad Genie - audio flow: evil SFX => Alexa TTS => poof SFX - you can lose up to your entire score if you get this wrong!
  • Life Saver - audio flow: angel SFX, this occurs randomly when you get 2/3 answers right - your life is saved and you can move to the next question.

  • Contextual Audio - After getting certain questions right, you get an audio snippet relating to the question. For example, if you say: Raphaello, Donatello and Michelangelo to "Names of the Teenage Mutant Ninja Turtles", you will hear a TMNT sting!

What we learned

We learned about using new retention tactics.

This skill used an experimental technique to retain customer engagement - we used the Twitter API to post the best players scores to our Twitter feed @voicechampions

We'd hoped that this would drive players to play the game and build a following through social platforms, however it hasn't gained any traction.

It may be due to a lack in crossover between Twitter users & Alexa users, but it seems more likely that we're simply not exposing enough people to the Twitter promotion... Back to the drawing board with this one!

What's next for Category Blast

We would like to improve our visual experience. The problem at the moment is that APLA and APL commands cannot inherently be used with each other.

However, we can now get around this by passing our APLA documents into the aplAudioToSpeech transformer, this let's you convert your APLA to a URL to used as a SpeakItem command in an APL document. Once doing this, our breadth of options will be massively expanded to the entire potential of the APL library, specifically we'd like to use some AnimateItem commands to really make it pop!

We created more minigames that we'd like to incorporate, there's a coinflip stage that allows you to risk points and double them, also we made a minigame that was like a "price is right" wheel that gives you bonus points!

Built With

Share this project: