One of great trends that have emerged since the wide adoption of Alexa enabled devices is the resurgence of "Choose Your Own Adventure" games and stories. I personally love the immersive experience that adding voice to these adventures has created.
After reviewing what was available already on the Alexa skill store, I noticed one thing was missing from nearly every skill: an immersive visual component. Most skills would show a single static screen throughout each scene, and many would show only one screen for the entire story!
What it does
Epic Hero Adventure is a choose your own adventure story, where YOU are the hero. In this immersive alien invasion story, you will be faced with difficult decisions. Each choice will determine your future. Will you survive the hidden dangers?
How I built it
- Alexa Ask-SDK for node.js
- APLA (APL for Audio)
- Alexa Presentation Language (APL)
- Speech Synthesis Markup Language (SSML)
- Audio: all sound effects & music from Epidemic Sounds
- Adobe Photoshop/Illustrator/Audition
- Alexa Polly Voices (no voice actors!)
Challenges I ran into
There were many challenges that were critical to the user experience we had to overcome.
- Matching audio to visuals: Currently, APL and APLA are not so easily compatible. Our goal was to leverage APLA to attain high quality audio, while simultaneously solving the problem of having one static screen. This led to many issues with getting the right audio to play for the right page. I ended up using an onMount command for the APL pager documents with a speakItem command to play the speech for each page of the pager. We then attached an APLA document for each page of every pager, using the aplAudioToSpeech transformer. This allowed a TON of flexibility when it came to story telling.
- Creating screens - A lot of time and effort was put spent trying to make each scene of the story look as envisioned.
- Writing the story - content is king! We had to create this entire experience from scratch. Every character, every scene, all the pathways - and of course - all of the audio/visuals.
- No voice actors: Using Alexa emotions and the ssml tricks available helped greatly in leveraging AI voices to play characters in a story. Amazon Polly voices were used to create some amazing dialogue.
Accomplishments that I'm proud of
Creating a choose your own adventure experience that was unlike anything on the Alexa skill store. Although there is much to do moving forward, we have unlocked a way to immerse the user in a voice-forward audio adventure that includes great visuals! Each scene can have a limitless number of screens displayed, allowing a user staring at their tv screen to enjoy a more immersive experience.
Letting the user choose the name of the character in the story: With APLA, we now have access to the SSML and the audio files from the code. Using a "replaceAll" regular expression, I was able to have the user speak or input their name. Having no voice actors and using Polly voices for characters also made this possible, opening endless potential use cases for future skills. APL 1.4 gave us the editText box, which allowed me to have the user enter a cool nick name to be referred to as. This is an amazing feature to me because developers don't get access to user utterances for security purposes. This can make it hard to capture user input at times. Using the APL editText component allows user's of Epic Hero Adventure to create any codename they want, and have that codename used throughout the story.
What I learned
- How to build powerful APL & APLA documents from scratch
- How to create a voice-forward multimodal experience users can enjoy anywhere
- How to allow users to add a custom name to any skill
- How to add limitless screens to each response
- How to leverage better quality audio and mix it with SSML at runtime
- How to immerse the user in a choose your own adventure story, with all relevant features added.
- A whole lot more about Alexa, Node.js, Voice-skills, etc.
What's next for Epic Hero Adventure
We plan to expand the story to include dozens of scenes, pathways, endings and surprises. More screens, better audio/visuals and more immersive content are in the works. We may consider adding more stories, allowing the user to choose from a library of interactive stories all taking place within the same universe. The future is ours to create.