Skip to content

L0laapk3/multiverse-chess

Repository files navigation

Multiverse Chess

Discord

Description

This is the source code behind multiversechess.com.

  • This project is hosted for free on Fly.io.
  • Node.js is used for the backend since the game logic is ran by both the client and the server. The client visualisation and animations are layered ontop of the game logic classes.

Note: If I were to start over, I would select WebGL (or js+canvas) for rendering. However, I wanted to see how far DOM could be pushed.

Structure

  • public/js/game.js and public/js/gamePieces.js

    • Core logic of the game. It validates all the moves and keeps track of the game state.
    • Used by both the client and the server.
  • public/js/client.js and public/js/clientPieces.js

    • These files layer the animations by hooking into inherited methods from the core game logic above.
    • Used in the client.
  • public/js/main.js and public/js/menu.js

    • The main files for the client, they control the user workflow and the main menu.
  • index.js, socket.js and discordBridge.js

    • The main files for the server, they manage all the games and notify the discord bridge when new games are created.

Contributions

Contributions are welcome, feel free to open an issue or a pull request, and join our discord server!

Credit