Inspiration

Free Food Trivia has two goals:

  1. Be an entertaining and educative trivia skill covering a wide range of topics to begin with (Science, Sustainability, Technology, Animals and General categories as of now).
  2. Contribute towards eradicating world hunger by donating food for those in need.

The skill is inspired by freerice.com which is a website owned by the United Nations. Freerice.com lets users play trivia games and donates the revenue generated in the process (from ads). This skill tries to emulate the model by providing an entertaining / educative skill to keep the users engaged which in turn generates revenue that will then be donated for the cause of eradicating world hunger. The positive contributions by freerice.com over the last decade serveed as an inspiration and a validation of the idea behind this skill.

Note: The skill doesn't ask for any donations directly from the customers but plans to donate the revenue generated through user engagement and in-skill purchases.

What it does?

At its core, Free Food Trivia is just a trivia game that asks users a bunch of questions and declare the game won or lost based on the number of correct answers. The skill differentiates itself from other trivia skills by pledging to donate the entire revenue generated (through Amazon's developer incentives and in-skill purchases) towards the cause of eradicating world hunger.

Currently, the skill covers Science, Sustainability, Technology, Animals and General categories in English and German languages.

In the interest of gamifying the experience, the skill advertises that it donates 50 grains of rice for every game won. In reality, that is just the lower bound. The entire revenue generated by the skill will be donated.

How I built it?

I started off by cloning the sample trivia skill provided by Alexa to get the basic trivia game business logic.

I did the following to customize it -

  1. Added the ability to support multiple categories of questions so the skill can be easily extended over time to other categories.
  2. Made changes to support multiple categories in multiple languages in an extensible way so I can add more languages later.
  3. Introduced dialog delegation to obtain the category from the user.
  4. Leveraged Entity Resolution synonyms to support different ways of referring to the same categories.
  5. Worked on sourcing thousands of questions for each category and formatting them to the right format expected by the skill.
  6. Translated questions and prompts into German.

Challenges I ran into.

I focused a lot on procuring thousands of questions for each of the categories so user's won't end up getting the same questions over and over. However, this significantly impacted the latency (3 seconds) as the file loads in response to the StartGameIntent.

To work around this issue, I implemented a caching mechanism and proactive loading of categories in the LaunchRequest itself. The latency is not about 600 milli-seconds (These changes are still in development and hopefully deployed to prod by the time the skill is certified).

Accomplishments that I'm proud of.

This is the first time I'm releasing a skill in a language other than English. I believe the cause of world hunger is a universally relatable concept and so I wanted to release this skill in multiple languages over time. As a stepping stone, am launching this skill in English and German.

I'm particularly proud of the architecture I accomplished to make the skill easily extensible to new languages. All I need to do is create a new folder for a new language and add the prompts, categories and question bank files. In future, I will pull these files into S3 so I can add new languages and questions without deploying code.

What I learned.

I have used Dialog delegation for the first time. It is very interesting and lets the developer focus on the actual business logic. The dialog delegation isn't adequate for my purposes though and I intend to implement a hybrid approach of delegating and taking control of the dialog to better handle some UX scenarios.

I also used Entity Resolution synonyms concept. For ex, users might refer to the technology category as 'technology' or 'tech' and I was able to leverage synonyms to support both variants without having to write code.

I also learned how to use i18next node module to write a multi-language skill effectively.

I also used CanFullFillIntent across all my intent handlers which made the my code much cleaner.

What's next for Free Food Trivia.

My first goal is to drive user engagement on this skill because the more the users are engaged, the more the skill will be able to donate. To drive engagement, I will be focusing on -

  1. Refining the user experience and adding more topics and questions.
  2. I also plan to add a multi-player option to further improve the engagement and the user experience.
  3. In the spirit of being a non-profit skill, I intend to expand the question bank on topics like climate change, environment etc. but will also be adding the usual suspects like movies and sports categories because they tend to drive more engagement.

Finally, I intend to introduce in-skill purchases to further drive the revenues up and enable more free food donations.

FAQ: (pulled from skill description)

  1. Does it really make a difference? Yes. There are millions of people who struggle to find their next meal and the rice you donate makes a huge difference to the person who receives it.

  2. Am I expected to make monetary or any other kind of donation? No. All you need to do is keep playing as if this is just another trivia skill. The skill does not solicit any kind of donations from you other than just using and enjoying the skill as often as you can.

  3. Who pays for the donated rice in that case? Amazon LLC compensates skills that generate high engagement with their customers. Based on the revenue generated by other skills published by the developers, it is estimated that the earnings of this skill will be able to support a donation of about 50 grains of rice per game.

  4. How do I know how much food has been donated? The developers plan to launch a website which details the total number of games played and the total food donated. Up until the website is launched, the details will be added here on the skill detail page every month.

  5. Why do I need to play? Why don't you just donate the rice? There isn't a pile of rice ready to be donated. Every game you play 'earns' 50 grains of rice which then gets donated. Here is how it works. Every time you play, Amazon and other sponsors pay the developers for the engagement generated. The developers then donate food with these earnings and publish the donation details. The users are then encouraged by the results and tend to play more often. It is this circular economy that pays for the free food.

  6. Do you make any money from this skill? Free Food Trivia does not make any money from this. Free Food Trivia is a skill committed to the cause of ending hunger around the world. It is run entirely for free and at no profit. All money (100%) earned by the skill is used to donate to the cause of eradicating world hunger.

  7. What if the skill doesn't generate enough revenue to support 50 grains of rice? The developers are committed to donating 50 grains of rice per every game won even if the skill doesn't generate the revenue right away. The developers will continue working on improving the skill to make it self-sufficient. Having said that, based on the past performance of our other skills, we are confident the skill will be self-sufficient to support a 50 grains of rice donation per every game won.

  8. This sounds very similar to Freerice.com. Are you affiliated? Free Food Trivia is definitely inspired by the very successful website called freerice.com. The positive contributions by Freerice over the last 10 years serves as an inspiration and a validation of the idea behind this skill. However, Free Food Trivia is not in any way affiliated to Freerice.

Built With

Share this project:
×

Updates