This project is a straightforward chess game built with C++. It features a C++ backend server and a web-based frontend developed using Vite. Chessgame is compatible with the Euphron chess engine and uses the Chessboard library for chess rules and logic.
- Current version: 1.4.2
This chess game includes the following features:
- Session management for handling multiple games.
- Compatible with standard chess rules.
- Communication between server and web interface using WebSockets.
- Simple and intuitive web interface for playing chess.
- Compatibility with UCI protocol (via an http wrapper) for chess engines.
- Play chess against Euphron, a chess engine developed in C++ !
This project is compatible with Windows and Linux, and requires CMake for building.
Make sure you have the following dependencies installed:
- CMake (see CMake installation guide)
- A C++ compiler (e.g., g++)
- Node.js and npm (see Node.js installation guide)
Moreover, this project uses Crow for handling HTTP requests and WebSockets. You can either let CMake install it for you or install Crow manually by following the instructions on its GitHub repository.
Or, you can use Docker to run the project without installing dependencies manually.
To build and run the project using Docker, follow these steps:
- Build the images with Docker Compose:
docker-compose build- You can then start the backend server and frontend with:
docker-compose upIf you prefer to build the project from source, follow these steps:
- Clone the repository:
git clone https://github.com/Omikrone/Chessgame.git
cd Chessgame- Build the C++ server using CMake:
cmake -S . -B build
cmake --build build --config Release- Install the frontend dependencies:
cd ../frontend
npm installAfter building the project manually, you can start the chess game as follows:
- Start the C++ server:
./build/chessgame.exe- Start the frontend:
cd ../frontend
npm run dev-
Don't forget to install and run Euphron chess engine if you want to play against it.
-
Open your web browser and navigate to
http://localhost:5173to access the chess game interface.
Future improvements for this project may include:
- Implementing a multiplayer mode over the network.
- Add a clock/timer feature for timed games.
- Add compatibility with more chess engines.
