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
  • 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

  • 1,854