Hong Kong style mahjong game engine and web application. It uses a server to handle games which handles most of the game mechanics.
- Core library with the game mechanics, tests, and AIs focused in performance and correctness
- Service that persists and handles games for clients
- Can be communicated via an HTTP API
- It creates a WebSocket per active game, to process the game and communicate with clients
- Scripts to handle different tasks related to the code deployment and tests
- For example running linting, tests, and deploying to Docker
- Web client to play, both for desktop and mobile web
- It uses a drag-n-drop UI to play, and it has translated texts
- Includes E2E tests
- A Rust cli for running simulations
You can find the project's Rust documentation here.
The project main dependencies are Rust and Nodejs. There is a flake.nix file with all the required libraries needed for development, including android, but it requires that you have the Nix package manager installed.
Once you have cloned the repository there are a few things to setup:
- Generate the
.env
files where present by copying the templates - Install the dev dependencies:
cd scripts && bash src/main.sh dev_install