Skip to content

Impulse is a game to check your reaction time by clicking on the appearing shapes on the screen. It is an effort to understand and implement protobuf, grpc & rest framework gin using golang.

Notifications You must be signed in to change notification settings

dhruvbehl/impulse-game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

impulse-game

Impulse is a game written in golang to check your reaction time by clicking on the appearing shapes on the screen. It is an effort to understand and implement

  1. protobuf
  2. grpc
  3. rest framework gin

Game Components

The game consists of 5 major services:

  1. game-apis: This is the model that the game gRPC server & clients use to interact with other services. This contains a protobuf resources which are compiled to autogenerate game-api code using the prooc tool.
  2. game-highscore: This is a gRPC service that maintains the highscore of a game session and also provides getter and setter funcionalities for the same
  3. game-engine: This is a gRPC server that is the logic backbone of the game, here the base logic of deciding the difficulty of the game based on the user's performace is decided
  4. game-mgmtplane: This is a proxy service that converts rest call made by the frontend to gRPC and routes it to the appropriate gRPC service.
  5. game-fontend: This contains a basic HTML, CSS, JS resource to provide a frontend to the game.

Game architecture

Screen Shot 2022-02-14 at 3 31 20 PM

Reference

  1. https://grpc.io/docs/what-is-grpc/introduction/
  2. https://grpc.io/docs/languages/go/quickstart/
  3. https://github.com/gin-gonic/gin
  4. https://www.justforlearning.com

About

Impulse is a game to check your reaction time by clicking on the appearing shapes on the screen. It is an effort to understand and implement protobuf, grpc & rest framework gin using golang.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published