35 lines
1.5 KiB
Markdown
35 lines
1.5 KiB
Markdown
# Galaxy
|
|
|
|
Galaxy is a turn-based strategy game which took place in space.
|
|
|
|
At the highest level Game has a Backend service and an UI Client.
|
|
|
|
## Backend service
|
|
|
|
Backend service is presented by several "microservices" with a different set of responsibilities.
|
|
|
|
- AuthN Proxy Service: handles all incoming requests,
|
|
immediately rejects not-authenticated requests and passes authenticated request to the next service.
|
|
|
|
- AuthZ Service: checks permissions avaliable to the authenticated user and passes request to the next service
|
|
if user is authorized to use specific game api.
|
|
|
|
- Games Orchestrator Service:
|
|
- finds appropriate Game Server according to Client's request data,
|
|
- passes user's commands to the selected Game Server,
|
|
- reads response and bounces it back up to request chain to the Client,
|
|
- manages Game Server state for health monitoring and making next turn.
|
|
|
|
- Game Servers: several instances of ongoing games with avaliable unprotected API ready to receive Player's and Administrator's commands.
|
|
|
|
## UI Client
|
|
|
|
UI Client is capable of:
|
|
|
|
- Register a new player and login for an existing player using only e-mail and one-time codes,
|
|
- Enlist to a new Game from available onboard Games list,
|
|
- Request list of Games in which Player participating,
|
|
- Request, store and display particular Game data,
|
|
- Use push-like mechanism for receiving asynchronous updates from Server,
|
|
- Offline mode when no internet connection is available or user desired to work offline.
|