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
- protobuf
- grpc
- rest framework gin
The game consists of 5 major services:
- 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.
- 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
- 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
- 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.
- game-fontend: This contains a basic HTML, CSS, JS resource to provide a frontend to the game.