jonpchin / gochess

Online real time chess web server using websockets
MIT License
48 stars 17 forks source link
chess multiplayer websockets

License: MIT

Alt text
Alt text
Alt text

Go Play Chess - Free Online Real time chess web server using websockets - Creator: Jonathan Chin

12/10/2015 - Start date of project.

5/31/2016 This project is officially open source. - All commit history has been cleared as some of the git history contained sensitive data.

4/30/2017 I've decided to add a MUD. Chess and MUD's don't usually go together but by having them on the same web server and domain allows me to save server costs. More details will be revealed soon.

7/6/2019 The mud is being migrated to a different repository. The mud will be hosted on a different server.

This project is a experimental project and only intended for my personal use.

6/1/2021 The Go Play Chess server is no longer online.


Features:

1. User accounts

2. Time controls

3. Player ratings and matchmaking system

4. Save and review games

5. Server side validation of chess moves

6. Security (HTTPS, WSS, CAPTCHA, input validation, password encryption) (partially shown on GitHub)

7. Cron jobs

8. Logging(partially shown on GitHub)

9. Graceful shutdown and recovery of active games

10. Automated deployment of web server to production environment (not shown on GitHub)

11. Highscore board containing top bullet, blitz standard, and correspondence ratings.

12. Configurable user settings, chess piece theme, sound toggle, chat toggle, etc.

13. Player profiles to view rating and past games.

14. Player's name has the country flag where their IP originates from when they register

15. Players can view on going chess games in real time as spectators

16. Lobby and game room chat.

17. Forum

18. Guest play

19. Stockfish chess bot


To Do List:

1. Update help, documentation and screenshots

2. Add android client for goplaychess


Special thanks to those who provided amazing third party libaries:

1. chess.js

2. chessboard.js

3. goglicko by Josh Hoak aka Kashomon

4. Tock.js

6. download.js v4.1, by dandavis

7. dchest/captcha

8. robfig/cron

9. golang.org/x/crypto/scrypt

10. github.com/notnil/chess

And many more...


Other Dependencies:

1. jsonlint