Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/grpc-ecosystem/grpc-simon-says
Multiplayer Simon Says game using bidirectional gRPC streaming
https://github.com/grpc-ecosystem/grpc-simon-says
Last synced: about 1 month ago
JSON representation
Multiplayer Simon Says game using bidirectional gRPC streaming
- Host: GitHub
- URL: https://github.com/grpc-ecosystem/grpc-simon-says
- Owner: grpc-ecosystem
- License: apache-2.0
- Created: 2016-07-29T18:07:06.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-11-09T00:53:31.000Z (about 8 years ago)
- Last Synced: 2024-10-30T22:02:59.658Z (about 1 month ago)
- Language: Go
- Homepage:
- Size: 3.53 MB
- Stars: 132
- Watchers: 13
- Forks: 33
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-google-cloud - Real-time Simon Says - If you have played the 70s handheld game "Simon" as a child, you know exactly what this is. There are example clients for the Web, IoT (arduino), Android, and command line. Built with [gRPC](https://grpc.io) for bidirectional streaming and [Kubernetes](https://kubernetes.io) for scalability. (Compute / Kubernetes Engine)
- awesome-grpc - Multiplayer Simon Says - A Game using gRPC and Kubernetes - Sample app with Go server and clients using Node.js (on Arduino and web), and Java (Android and CLI) (Resources / Examples)
README
# Multiplayer Simon Says - A Game using gRPC and Kubernetes.
![Simon Says Game](game.png)
This is an example project using [gRPC](http://www.grpc.io/) and [Kubernetes](http://kubernetes.io/) to build a multiplayer version
of the game "Simon Says".It has been implemented in multiple languages to highlight the variety of supported languages that gRPC
gives you out of the box.## Folder Structure
- /server
This is the directory for the server implementation
- [/go](/server/go)
An example server implementation using [Go](https://golang.org/) and [Redis](http://redis.io/)
- /client
Client implementations written in a variety of languages and platforms
- [/java-android](/client/java-android)
Client implementation for [Android](https://developer.android.com/studio/index.html) written in [Java](http://java.com).
- [/java-cli](/client/java-cli)
Client implementation in [Java](http://java.com) for command line.
- [/node-arduino](/client/node-arduino)
Client impementation in [Node.js](https://nodejs.org/) for [Arduino](https://www.arduino.cc/)
- [/node-web](/client/node-web)
Clent implementation in [Node.js](https://nodejs.org/) and [Javascript](https://www.javascript.com/) for the browser.## gRPC Communication
The following animation shows the way in which gRPC sends message over it's bidirectional streaming
connection, to enable gameplay.Here we can see:
- Two players on different devices joining the game,
- Being notified it is their turn
- Communicating a button press on their clients
- Being told to light up given colors
- When the game has ended, because a sequence is incorrect
- Who has won the game in the end![gRPC Communication](grpc.gif)
## Presentation Recordings
[![Uniquity, 2015](http://img.youtube.com/vi/nz-LcdoMYWA/0.jpg)](https://www.youtube.com/watch?v=nz-LcdoMYWA)
[Ubiquity Dev Summit](https://ubiquity.withgoogle.com/), 2016## Contributing changes
* See [CONTRIBUTING.md](CONTRIBUTING.md)
## Licensing
* See [LICENSE](LICENSE)
*This is not an official Google Product.*