-
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.
If you are interesting in contributing please open a new issue here:
https://github.com/jonpchin/gochess/issues
In the issue state what you want to work on and I'll add you as a contributor.
If you are open to doing anything I can assign you one of the open tasks in the back log.
Once your changes are ready, make a pull request and I"ll review it.
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. Database of over 1.8 million chess games, most of which are master/grandmaster games.
14. Player profiles to view rating and past games.
15. Player's name has the country flag where their IP originates from when they register
16. Players can view on going chess games in real time as spectators
17. Lobby and game room chat.
18. Rating history timeline on player's profile using Google Charts.
19. Players can play against cinnamon chess engine and stockfish chess engine (web workers).
20. Web server runs in Windows and Linux.
21. Forum
22. Daily news feed, contains mostly tech articles but it can be configured to get other types of news.
To Do List:
1. Chess TV where live games are randomly broadcasted.
2. Admin control
3. Friends list
4. Inbox system
5. Update help, documentation and screenshots
6. Post game analysis with Stockfish engine
7. Statistics page
8. Store zipped source files and databas backup in Google Drive or Dropbox.
9. Add release notes.
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
5. Cinnamon JS Engine
6. download.js v4.1, by dandavis
7. dchest/captcha
8. robfig/cron
9. gopkg.in/gomail.v2
10. golang.org/x/crypto/scrypt
And many more...
Other Dependencies:
1. jsonlint
MUD
Classes:
- Warrior
- Barbarian
- Monk
- Mage
- Thief
- Ranger
- Swordmaster
- Illusionist
- Priest
- Necromancer
- Witch
- Paladin
- Alchemist
- Jester
Breakdown of classes and description:
-
Warriors: Warriors are well rounded fighter that can use a variety of powerful armor and weaponry. Warriors can learn some basic magic.
-
Barbarian: Barbarians are ancient warrior who uses brute strength and raw fury to excel in combat. After many generations of fierce training they have become resistant to magic.
-
Monk: Monks are masters at martial arts and they can use their spirtual powers to heal and purge disease.
-
Mage: Mages are spell casters who wield powerful spells. They can do great damage but are physically weak as a trade off.
-
Thief: Makes a living by robbing others.
-
Ranger: Cunning forestmen who lay traps.
-
Swordmaster: Swordmasters train with the blade day and night until they become experts.
-
Illusionist: Manipulates space and time
-
Priest: Holy magic casters
-
Necromancer: Can raise people from the dead
-
Witch: Uses dark voodo magic and can create healing potions
-
Paladin: Holy warriors who can use holy magic
-
Alchemist: Able to manipulate bodily fluid's and create rare elements
-
Jester: The utlimate prankster
Races
- Human
- Dwarf
- Elf
- Troll
- Ogre
- Hobbit
- Vampire