Building an Azure selfie-and-seek game

Published on
Reading time
Authors

This post has been a while coming, but I'm pleased to finally share it, and the related GitHub project, with the community.

In 2018 when I joined Microsoft Australia as the Azure Pro Developer Lead in Sydney one of the first things I worked on was building an engagement activity for event attendees at events we were sponsoring.

The core idea was to showcase features of Azure that any developer can pick up and use with little or no training.

Together with some other Microsoft team members we arrived at a form of "hide and seek" that in its initial incarnation would use augmented reality to deliver the experience – the initial brainstorm outputs are shown below.

Original concept

After a few more iterations (and dropping real-time AR because 'conference wifi') we arrived at a workable solution that boiled down to people registering to play by sending a selfie to a Twitter account wired up to Azure Logic Apps which then used Azure Cognitive Services Face API to create a unique registration for the player.

A game is started by one registered player being chosen at random and then having their face hidden in their selfie which was then displayed on a large screen at a stand at the event.

Where's Bit Stand

All other players then had to try and find the person and send a photo of them via Twitter to our account. An Azure Logic App would do a Azure Cognitive Services Face API call to do a similarity check of the new face and the set of registered faces before returning the unique ID that allow the Logic App to confirm that it was the right individual.

The best bit about the entire solution is that we could run a multi-day event for less than the cost of two cups of coffee (at non-Sydney prices too)!

Along the way I took the opportunity to learn Python and how to develop using Logic Apps. I have to say I learnt a bunch of stuff about both and the scenarios they are best suited to 🙂.

Rather than re-write everything on GitHub's readme documentation here I'll let you go and have a read through the repository, and if you have any questions feel free to post them here or on GitHub.

Even though this is a relatively small solution I appreciate that if you're new to Azure that it might be hard to understand all the components. Additionally, the way I've pushed the entire solution into a single repository also doesn't lend itself to setting up CI / CD for all solution components – so you might be better off separating out if you intend to use yourself.

I hope you have fun playing with the solution!

Happy Days 😎