I enjoy playing games with Alexa, so thought I could engage and entertain kids with an old favorite, Battleships. I wanted to make it my own, so have created a Pirate version!

What it does

It has the same concepts as a game of Battleships. You take it in turns to take "shots" at each others ships until someone destroys the other's fleet. My twist to the game is I have enabled the user to be able to view the battle as it happens (If they wish) from any web browser. The game can be played without viewing it, but I think it is more engaging seeing it as well as using voice commands to control the game.

How I built it

I used Node.js for the intent related logic and Angular, for the website from which you can see the battle

Challenges I ran into

I have worked with WebSockets, before and this had helped to guide me in how I was to build this Skill. However, Lambda, does not work with WebSocket, so I had to quickly get an understading for the Publish/Subscribe concept and learn to manage this communication between the front end, the database and the logic within the intents

Accomplishments that I'm proud of

I think I am proud of the whole thing really. I feel it has pushed my skill set in all aspects; even down to the submission video! I had a few lost weeks working through different ways of communication from Lambda to anything outside of AWS. So to finally come up with a solution to this feels brilliant!

What I learned

I learnt about a few more services that fall under the AWS umbrella, while not incorporating them all into the Skill, I gained valuable insight and understanding of some such as the API gateway and IoT

What's next for Pirate Ships

I really want to make this a multiplayer game, where Alexa, orchestrates the battles rather than takes place. I would prefer that she found other players and managed the games for them (Falling back into her playing if she is unable to find a player) This is going to offer other challenges in how I can make it work.

Share this project:


Rory Standley posted an update

I have just added a card response for when a user asks to view the game live. While Alexa, reads the URL to you, in order for you to enter this into your browser; being able to access the URL via the companion app gives other options to the user for accessing this information

Log in or sign up for Devpost to join the conversation.