Diagram of our game control flow
Testing our skill using the Amazon Developer Console
We got inspiration from text-based RPGs, namely Runescape and classic games like MUDs, as well as old school roguelikes where you’d have to restart every time you failed. This way, the player can find the most optimal path to victory, and advance further everytime he or she played the game. Many of the old classics had already been rebuilt on the Alexa, such as Runescape, but because of that, we were able to think of an original idea!
We had been watching Back to the Future over the past weekend before the competition, and realized that it would be very interesting to do a text-based RPG based on the concept of time-travel. We had just learned about the Alexa Skills challenge a few nights before, and although we did not have much time to submit, we were very enthusiastic about creating an exciting application on the Echo.
We found out that the Echo was a perfect platform for such an application as you could be immersed much more in the situation due to sound effects and voice based content. Furthermore, we could end up teaching/learning about other points and history, while building an engaging experience.
Through this, we attempted to both teach people about languages, history and anything else we could teach about, but above all else, we hopefully made an engaging game.
What it does
The user navigates a voice-based, question-response interface, similar to classic text-based adventure games in the heyday of early gaming. Further, it gives the user more control, such as a “choose-your-own-adventure” type story.
Along their journey, the user can learn and interact with famous people and sections of history from different time periods. Further, you can learn about different innovations between periods as well as about languages.
Overall, through the mystery of time-exploration, we tried to learn about history, different languages and innovations in the world. Also, although it may seem repetitive, some key characteristics of our game are repeated due to the supposed space-time glitch, as well as trying to create a mystery that links different eras.
How we built it
At first, we were hoping to create an android app that uses the Echo as an “engager”, but we realized that the Echo contained its own inbuilt functions to display various commands as well as would be far more interesting than just text appearing on the screen.
Thus, we ended up using one of the resources provided, called the Alexa Interactive Game Library, which we were able to compile down and use as a boilerplate for what we were trying to accomplish. Since we had a more complex storyline, we weren’t able to solely rely on drag and drop and had elements outside of just this library in use, such as mazes, etc.
Overall, we used NodeJS, JSON and the Alexa Game Library. Further, we used AWS Lambda and DynamoDB to run our application.
Challenges we ran into
Much to our disappointment, the library we used to architect our game had some limitations, including not supporting loopback paths in the game or multiple paths that merged into one. If not fixed, this would have severely limited the expressiveness of the game. Therefore, we had to make modifications to the generated game script to manually add unsupported constructs.
Further, we learned about this challenge very recently and only made a team a couple of days ago, so creating something as extensive as we hoped was very difficult, especially with the typical workload of a high school student. True to the rules of a high school student, we were only able to start this past weekend, but due to hard work and inspiration from all ends, we were able to create an application, which is much more than we normally are able to do.
We also had some trouble with finding engaging periods of time and evidence to go along with it. Ultimately, we chose periods that we were familiar with, but didn’t know too much about, so we could use what we had learned and also learn more. We weren’t able to completely finish all the ideas we had considered, but we believe that we have created a foundation that allows us to develop further and create even more and greater content in the future.
Accomplishments that we’re proud of
As high schoolers, we are very proud that we were able to make time to create something so amazing. Snow days helped us a whole lot, and we were able to make time to create such an extensive product. Furthermore, while we do come up with ideas as a team, we normally pass on actually completing them, but this time, we came together as a team and made an interesting product. We feel really proud about that.
Ultimately, the experience of creating a product on the Echo, as well as actually implementing a storyline that we had imagined up, was a really great accomplishment for us and the Echo was a wonderful catalyst for that.
What we learned
In the beginning, we started this project with almost zero knowledge of the internal workings of the Amazon Echo. Simply adapting to the different programming paradigm of having a skill and a challenge-response nature was confusing initially. By creating this game, we obtained a deeper understanding of the Echo, like how it decides which skill to launch, how it contacts AWS Lambda or other services for skill responses, and how it can obtain user input and send it to the skill.
This was also the first time that we had used Amazon Web Services in a significant manner. We had to configure Lambda and DynamoDB to run our uploaded program, assisted by tutorials and much googling. The project has given us a better understanding of these services so that one day we may use them in a larger project.
What's next for EchoChamber
We would like to add more regions/content as we were on a very tight time schedule, and were only able to do civilizations that we were more familiar with. Adding new areas would increase the educational value, both for us in researching and the people playing this game.
Furthermore, we would like to expand the storyline into the future, as there are multiple facets and interesting concepts that we could explain through this adventure. Adding to this, we could create equipment and multiple variables, which would make this more like an RPG. We could also add MMORPG elements by utilizing configured Amazon servers.
It would also be interesting to add more Easter Eggs than what we already have, as we’d like to create an even more fun and engaging experience for kids of all ages. It would also be best to have explanations, as well as an easy mode for a younger audience.
Ultimately, what could be very fun, would be for this to become a platform for easily creating RPGs for children as we take input from authors, parents and even, of course, kids like us!