I love party and board games - not just playing them, but occasionally writing/making them as well. "I spy" is a traditional game, that I got reminded of recently while playing with kids from my extended family. I was wondering if today's technology (I'm looking at you, Amazon!) has grown up to the point where it can be used for such games, and decided to try it out, learning as much as I can about Alexa on the way.

What it does

This skill is based on the classic game of I spy where one thinks about (or, in game terms, "spies") an object and the players try to guess what it is.

The slight twist to the original (as most Alexa-powered devices have no cameras), to make it a bit easier to implement and slightly more educational, is that I decided to use animals and animal sounds. This way kids can learn how they sound, and hopefully find out a few facts about the hints from the hints that were added in.

How I built it

As I used node.js previously, I started off the fact skill template with Alexa and used both the on-line interaction model builder and tester to flesh out the interaction and flow. These tools have come a long way since I last took a look at them and proved invaluable in the development process. I got my public-domain sound recordings from SoundBible, converted them to an Alexa-friendly format with ffmpeg, and before long it was time to playtest the skill.

I was also happy the whole development cycle (all of coding, interaction development, testing, publishing) was doable in the browser! Yay!

Challenges I ran into

The Alexa publishing process seems to require "stop", "cancel" etc to be active at all times. As a side effect, this means currently single-word, typed slots (animals) will not work. In plain English: "a cat", "is it a cat" and similar will work, but saying just "cat", as a single word, will not.

I'm hoping to get an exception/workaround from the Amazon publishing team, if not, this remains a "known issue".

Sessions in the dev tools. As cool the tools were, session timeouts in windows I did not use were a bit annoying, especially as sometimes the pages continued to work until you pressed save... and then got a nasty surprise. Duh.

Additionally, some of the slot types are not available in all countries, which made me switch back-and-forth (as my devices are originally in en_UK, not en_US)

Accomplishments that I'm proud of

It works!

What I learned

It's never as easy as it looks. The language recognition has gotten stunningly good, but implementing things to accommodate all the variations of how people use the skill is no simple feat. Publishing guidelines are not too well aligned with the API/tech itself (in terms of defaults, testing, automation), which does not help skill experience, and creates delays in the publishing process itself.

What's next for I Spy

Adding more sounds, of course! I also want to make it a bit smarter, so you could ask about specific characteristics of the animals - for example their color, size, where they live. Given the fixed format and choices, these should be reasonably easy to implement

Share this project: