Realtime game hosting of Surakarta using Node.js. This project is still in beta stage.
- Any user can play Surakarta without registering an account.
- However, a guest will automatically surrender the game if he/she leaves the game.
- Users can know where to move and which chess piece to attack when he/she drags a chess piece.
- The opponent's latest move is clearly shown on the game board.
- If a guest previously has played a Surakarta game, he/she can register or log into an account to inherit his/her game records.
- Registered users can easily return to game if he/she accidentally left the game.
- Users can choose not to disclose his/her location on the map in User Settings.
- WebSocket is used to implement the real-time update of game status between the server and the clients;
- The back-end part of this web-based game is implemented using Node.js. The back-end program is designed to host multiple in-progress games simultaneously. Error prevention is well implemented as well to detect and intercept any cheating request;
- The game board in the front-end part is rendered by paper.js;
- Data models of games and users are implemented by Mongoose.
Please refer to Surakarta (game).
- Node.js and MongoDB should be installed in advance.
- HTTP server runs on port
2100
by default. You may change it inbin/www
(here). - Google reCAPTCHA is integrated in this software. Please create a new file as
static_data/recaptcha.json
with following content:{"PublicKey": "[YOUR PUBLIC KEY]", "Secret": "[YOUR SECRET KEY]"}
- Please replace the API key of Google Maps with your own key in
views/stat/map.pug
. - Please replace the value of
global.DOMAIN_ROOT
with your own hostname inapp.js
(here). This global constant is to prevent the abuse of the private APIs.
Please refer to Roadmap #1.
Surakarta Online is licensed under the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. For details, please refer to COPYING
.