Home

Awesome

Actions on Google: Spellcast

NOTE

This is an experimental project and will receive minimal maintenance. Only bugs for security issues will be accepted. No feature requests will be accepted. Pull requests will be acknowledged and reviewed as soon as possible. There is no associated SLAs.

Some of the projects in this experimental org might mature to a more stable state and move into the main Actions on Google GitHub org.


Spellcast Game

In this game your wizards cast spells to defeat monsters. To play the game, select the element opposite of the monster to damage it. Water versus fire, and earth versus air. Select a shield or heal to protect the wizards.

This sample demonstrates how to create an Interactive Canvas experience using Actions on Google for the Google Assistant. It uses the Node.js client library and is deployed on Cloud Functions for Firebase and Firebase Hosting.

Background

This game was originally developed for chromecast devices. The game was designed to be played with multiple players, each using a mobile phone as a controller.

Even though the game is quite simple, the code has a good design for managing players, resources and game states would could be reused for multi-player Interactive Canvas games.

This version of the game only supports a single player and uses some of the testing capabilities in the game to control all of the game characters using voice commands. The screen layout has been designed for smart displays.

Setup Instructions

Prerequisites

  1. Node.js and NPM
  2. Install the Firebase CLI
    • We recommend using MAJOR version 7 with 7.1.1 or above, npm install -g firebase-tools@^7.1.1
    • Run firebase login with your Google account

Configuration

Actions Console

  1. From the Actions on Google Console, add a new project > Create Project > under More options > Conversational
  2. Click Deploy in the top menu. Then, click Additional information.
    1. Under Category, select Games & fun
    2. Under Interactive Canvas Do your Actions use Interactive Canvas?, check Yes
  3. Click Develop in the top menu. Then, click Actions > Add Your First Action > Play game > GET STARTED IN DIALOGFLOW (this will bring you to the Dialogflow console) > Select language and time zone > CREATE.
  4. In the Dialogflow console, go to Settings ⚙ > Export and Import > Restore from zip using the agent.zip in this sample's directory.

Firebase Deployment

  1. On your local machine, in the functions directory, run npm install
    1. Note that when creating a new project for Interactive Canvas, you must install the actions-on-google library Developer Preview version using the @preview tag with npm install actions-on-google@preview.
  2. Run firebase deploy --project {PROJECT_ID} to deploy the function and hosting
    • To find your Project ID: In Dialogflow console under Settings ⚙ > General tab > Project ID.

Dialogflow Console

  1. Return to the Dialogflow Console > select Fulfillment > Enable Webhook > Set URL to the Function URL that was returned after the deploy command > SAVE.
    https://${REGION}-${PROJECT_ID}.cloudfunctions.net/dialogflowFirebaseFulfillment
    
  2. From the left navigation menu, click Integrations > Integration Settings under Google Assistant > Enable Auto-preview changes > Test to open the Actions on Google simulator then say or type Talk to my test app.

Running this Sample

References & Issues

Make Contributions

Please read and follow the steps in the CONTRIBUTING.md.

License

See LICENSE.

Terms

Your use of this sample is subject to, and by using or downloading the sample files you agree to comply with, the Google APIs Terms of Service.