GithubHelp home page GithubHelp logo

isabella232 / virtual-pet-game-nodejs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from actions-on-google-labs/virtual-pet-game-nodejs

0.0 0.0 0.0 359.4 MB

License: Apache License 2.0

JavaScript 93.88% HTML 6.12%

virtual-pet-game-nodejs's Introduction

Actions on Google: Virtual Pet

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.


Virtual Pet

In this game, you will adopt and take care of a hamster just like you would in real life, except through Google Assistant. To start the game, you would go through the adoption process which takes place at the pet store. After adopting your new pet, you can then begin to take care of it by playing and/or feeding it. This game has two different levels. In order to progress to the next level, players must collect the corresponding badges in each level; total 2 badges for each level. Each food choice affects the energy level of the hamster differently and each toy choice affects the happiness level of the hamster differently.

One unique element of this game is overtime if the player does not return to the game, both the energy and happiness level of the pet will go down. The hamster will become unhealthy and sad.

Background

This game is built to experiment with some traditional game concepts such as players earning badges and progressing in the game through different levels. This sample also 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. It also uses FireStore to manage states across different devices as well as users.

Core Classes

  • Owner - This object models the user and maintains state relevant to the owner, e.g their name, etc
  • Pet - An object that models the hamster which maintains state such as energy and happiness level of the hamster. Additionally, it contains logic related to the hamster like eating and playing.

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.

Firestore Database

  1. From the Firebase console, find and select your Actions on Google Project ID
  2. In the left navigation menu under Develop section > Database > Create database button > Select Start in test mode > Enable

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

  • You can test your Action on any Interactive Canvas supported devices on which the Assistant is signed into the same account used to create this project. Just say or type, “OK Google, talk to my test app”.
  • You can also use the Actions on Google Console simulator to test most features and preview on-device behavior.
  • In the simulator, you have to click on the canvas iframe to enable audio playback of the game sounds.

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.

virtual-pet-game-nodejs's People

Contributors

mandnyc avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.