Alexa Chess
Example Proposal
CMSC389L
Colin King
October 29, 2017
Overview
- Alexa Chess will be able to compete with you in a game of Chess.
- The human player will play on a physical chess board, speaking their moves out loud to Alexa.
- Alexa will process these moves and respond back.
Usage Example
Alexa, open Alexa Chess.
Let's play a game of Chess. Would you like to play as black or white?
White.
Great, then I will play black. What is your first move?
Pawn to D6.
Knight to F3.
...
Queen to B2. Checkmate! Would you like to play again?
Features
- The service will be able to support multiple concurrent games, one per Alexa.
- A website will show the current game state.
- It will display a 2D chess board with each game piece.
- To simplify development, each game will be associated with an Amazon email account. A user will only need to enter the email on the front-end to see the associated game.
AWS Services
-
AWS Lambda:
- 2 Lambda functions:
- Alexa Responses (triggered by Alexa Skill Kit)
- Chess AI
- 2 Lambda functions:
-
DynamoDB:
- Stores game states and user data (win/loss record, etc.)
- Alexa Skill Kit
-
API Gateway:
- Exposes an API on top of DynamoDB
-
S3:
- Hosts HTML and CSS for a website
- Queries API from client-side JS
Architecture
Scalability
- Lambda, DynamoDB, API Gateway, and S3 all automatically scale to handle changes in load, without needing to provision extra capacity.
- The only concern would be to consider pre-warming these services before major press events that could lead to a severe load spike.
- Unlike the other services used, DynamoDB's auto-scaling is not automatically configured. It can be enabled on a table separately.
Hardware
-
Amazon Alexa
- I own one, which I will use for development
Example Proposal
By Colin King
Example Proposal
- 2,344