This repository is a monorepo containing the source code required to run Creature Chess.
This project is split into a number of packages with separate responsibilities, and is managed using Yarn workspaces.
Apps are entry points for the project - they aren't necessarily a server or a client but they are a single "artifact" that can be produced from the project, rather than a library.
-
This is a game server that runs the game logic and communicates with clients.
It is also currently responsible for serving the client app, but this will be moved to a separate app in the future.
-
This is an HTTP server that serves information related to user management.
-
This is a web client that connects to the game server and allows users to play the game.
This is not a server, rather the artifact is a static website that can be served by any web server.
-
This is a web client that contains the login and home screens.
This is not a server, rather the artifact is a static website that can be served by any web server.
Modules are libraries that are used by the apps. They are grouped into a number of parents.
-
Contains shared code relating to the game.
-
@cc-web
and@cc-server
Contains shared code relating to the web and server apps respectively.
This is split into two modules because the web and server apps have different dependencies.
-
@shoki
and@shoki-web
Contains shared code relating to the Shoki game engine.
This is code which has been abstracted out of the game.