I love playing chess (even though I'm not great at it) and really wanted to bring a board to life through Alexa. I think that being able to vocalize chess moves is tremendously powerful and brings a lot of players to the game that might otherwise be kept out.

What it does

It plays chess! Stockfish is the backend engine for playing chess (with 20 difficulty settings) and it uses a front end drag and drop interface on the Web API for Games. You can control your pieces any number of ways, and what's more it even plays against real opponents! If you are tired of playing the computer, try taking on a real player somewhere else in the world!

How I built it

I built it with APLA and Web API for Games with a react front end and java backend. It stays in sync with Websockets in cases where you are playing competitive and updates in real time!

Challenges I ran into

It was difficult getting everything to sync correctly and took a lot of work to be able to function as it was supposed to. It was important to me that the game be fully functional in voice before layering the displays on top of it.

Accomplishments that I'm proud of

I am proud of the board and piece customizations as well as the layered sound effects when you move pieces and other cool details. I wanted the board to be drag and drop as well and not just a static display which was another cool feat I managed to pull off.

What I learned

I learned a lot about the HTML system integration via the Web API with games, and I also learned a heck of a lot about chess! I wanted to make sure I covered as many possible movement phrases as possible and lean heavily into accepting moves rather than rejecting malformed ones. After all, a user can simply say 'undo' to move back without penalty! I also learned a lot about chess watching Queen's Gambit and have to say it's one of the best shows out there right now.

What's next for Chess Maven

More features, more music, and more of just about everything! I've been tuning the game difficulty to make it a little bit easier for entry level players so that the difficulty range isn't quite so drastic and the players win more often.

Built With

Share this project: