Note: The project is currently not maintained
This project contains a game where players need to show five specific emotions and do five specific poses in two levels. The fastest player wins. The game uses various key cloud technologies to demonstrate the value of a diverse, interconnected system, with both public and private cloud environments.
Play the Game. Note: The game is currently not active.
and
the fast start with to run your own game instance on IBM Cloud. Here is a short "how to" video (4 min) on YouTube
Note: You need an IBM Cloud account and ask for a IBM Cloud trial feature code.
Here is an example of a successful game:
Showcase of IBM Cloud Technologies
The game utilizes various key IBM Cloud technologies to demonstrate the value of the IBM Cloud. There are three main parts:
- Core game: Implemented as serverless web application since it is primarily used during conferences only
- Users service: Implemented via IBM Cloud Private to avoid storing personal data in a public cloud
- Scores service: Implemented via Cloud Foundry Enterprise Edition to highlight easy changes via the ‘cf push experience’ (for example theme adoptions for different conferences)
Note: In order to allow developers to easily set up the game with an IBM Cloud Lite account, this project contains documentation how to use Cloud Foundry Public applications rather than Cloud Foundry Enterprise Environment and how to use Minikube rather than IBM Cloud Private.
The following diagram shows the key components that are used in this project. More diagrams, including a diagram showing IBM Cloud Private and Cloud Foundry Enterprise Environment, can be found in the images folder.
This is a list of used technologies:
- IBM Cloud
- IBM Cloud Private
- IBM Cloud Functions
- IBM Cloud Foundry Enterprise Edition
- IBM Cloud Foundry Public Applications
- IBM Cloud Object Storage
- IBM API Connect
- IBM Secure Gateway
- IBM Watson Studio
- IBM App ID
- IBM Cloudant
- Apache CouchDB
- TensorFlow.js
- Vue.js
- Minikube
- Webinar
- One Minute Video
- Code Pattern: Mirror game app showcases 15 cloud technologies and components
- Introducing Blue Cloud Mirror, a Fun IBM Cloud Showcase
- Blue Cloud Mirror Architecture Diagrams
- Three Minutes Video
- Screenshots and Diagrams
- Three awesome TensorFlow.js Models for Visual Recognition
- Serverless Vue.js Applications on the IBM Cloud
- Blue Cloud Mirror — A fun IBM Cloud showcase
- Blue Cloud Mirror – Of Kubes and Couches
- IBM Secure Gateway Setup
- Awesome Developer Experience with Vue.js
- Videos: How to setup the Highscores part in IBM Cloud?
- Highscores overview blog post
In the easiest case the game can be set up on a local machine in less than five minutes. In this case only the game web application is run without being able to register users and having highscores. To set up the game locally, invoke the following commands:
Then invoke the following commands:
$ git clone https://github.com/IBM/blue-cloud-mirror.git
$ cd blue-cloud-mirror/game
$ yarn install
$ yarn run serve
or
The full setup includes IBM Cloud Functions, Cloud Foundry and an on-premises environment. Please refer to the instructions of the three main components:
- Game: Web application hosted on the IBM Cloud
- Scores service: API and web application hosted on the IBM Cloud
- Users service: API hosted on-premises
For all three components, you need the following prerequisites.
Create an IBM Cloud lite account (free, no credit card required):
Make sure you have the following tools installed:
Invoke the following commands:
$ git clone https://github.com/IBM/blue-cloud-mirror.git
$ cd blue-cloud-mirror/
$ ibmcloud login
$ ibmcloud iam api-key-create blue-cloud-mirror \
-d "blue-cloud-mirror" \
--file blue-cloud-mirror.json
$ cat blue-cloud-mirror.json
$ cp template.local.env local.env
In local.env define
- 'IBMCLOUD_API_KEY'
- 'IBMCLOUD_ORG'
- 'IBMCLOUD_SPACE'
- 'BLUEMIX_REGION'
- **'BLUEMIX_CF_API'''
to match the apikey in blue-cloud-mirror.json and the org, space, region and cloud foundry endpoint name that you're using (see the outputs in your terminal when following the steps above).