Alexa is a new platform, an opportunity to build beyond what is expected. SubWar goes beyond all the simple template skills and things to blink your lights and aspires to reach the full potential of the medium.
The SubWar origin story:
And here is a demo of SubWar in action:
The SubWar game proves that anyone can produce a complex, multi-player interactive game for Alexa. The process may seem challenging, but the following presentation passes on to you all of the design, development testing and rollout tricks we used to deliver SubWar. You are welcome to use the learnings to extend this project or create your own ones. (45 minutes)
You are also welcome to check out the substantial SubWar documentation on the design and development of the project here as well.
Visual design is on of minor benefit when creating an audio app. The process we used relies on creating libraries of sample conversations. Those conversations, and the methods we have used for turning them into code, is documented in the project wiki.
The project was deployed separating the Game, Audio, and Alexa logic into strict layers. The importance of those layers, the architecture for them, and the design patterns used in their development is documented in the project wiki.
Production code cannot be delivered without comprehensive testing. The product wiki documents how the layering strategy makes it easy to do rigorous testing. All of the unit tests developed for the project are also checked into the source code repository.
First time launch, flow diagram
When the skill is launched for the first time, here are the possible branches for the user experience. The primary goal here is to provide basic instruction and get them to the game as quickly as possible.
Second time launch, pick a name
After the user has played the game a few times, it is time to start introducing them to customization. We alter the start-up conversation to take a different flow. This time we invite them to pick a name for themselves. Afterwards the narrator will address them by name.
Third time launch, pick your ship's name
A few launches after they have picked a personal name, we introduce them to the last element of customization: picking a ship's name.
SubWar - for the Amazon Echo
This is the working repository for the SubWar game for Alexa. It contains the source code for the game, two suites of unit tests, the generated Javadoc, and full design documentation.