Caverne aux Jeux is a mini-games platform that I built together with my friend Dorian Gaspar. It includes a server mode that allows players to save their scores and check leaderboards. Originally, this was our final high school project, but driven by our passion for coding, we decided to push it further. After being abandoned for several years, I decided to modernize it and add some developer-oriented features.
The idea behind the app is to bring together several mini-games, with a competitive twist. Each mini-game has its own scoring system, and scores are stored on a server. Users can play, view their own scores, and check the global leaderboards.
The server side is quite interesting, though not very conventional. To be honest, it’s not really at the same level as the client app — but keep in mind we were just beginners at the time. The server communicates directly via sockets with the client and saves data in plain files.
The game was originally created in French only, and there is no English in-game translation.
- Fantome
- Flappy Bird
- Minesweeper
- Hangman
- Pong
- Snake
- Seeker Head
- Tetris
- Connect Four
- Pac-Man
- Guess Who?
- Space Invaders
- Tic-Tac-Toe
CaverneAuxJeux.mp4
The easiest way to install the game is to download a release: 👉 Caverne aux Jeux Releases
Choose the version for your operating system:
- Windows
- Linux
- macOS (use the Linux binary, launching is the same as Linux)
After downloading, you will have two executables:
client.exe
→ the gameserver.exe
→ the server (optional)
Note : Under Linux and macOS, the launch procedure is identical. The commands to run the game are the same.
./client # (under Linux and macOS)
./client.exe # (under Windows)
- Enter a username.
- Select a game and start playing.
-
Start the server:
./server # (under Linux and macOS) ./server.exe # (under Windows)
-
Then start the client:
./client # (under Linux and macOS) ./client.exe # (under Windows)
- Game data will then be stored server-side.
Note : Under Linux and macOS, the launch procedure is identical. The commands to run the game are the same.
git clone https://github.com/gwendalauphan/Caverne_aux_jeux.git
cd Caverne_aux_jeux
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -m app.Reseau.server # server
python -m app.main # client
make build-linux
make run-linux
xhost +local:docker
cd docker
docker compose up -d
xhost -local:docker
Note : Under macOS, you can use Homebrew to install the necessary packages. (
brew install python3-tk make
). T
sudo apt update
sudo apt install python3 python3-tk make
For launching with Docker, ensure that Docker and Docker Compose are installed and configured correctly.
👉 For more details, check the User Guide.
git clone https://github.com/gwendalauphan/Caverne_aux_jeux.git
cd Caverne_aux_jeux
You can contribute by:
- Forking the repository and opening a Pull Request.
- Reporting bugs or ideas via issues.
Development requires:
- Python 3 and tkinter
- make, docker, docker compose
- Poetry (dependency management)
Install dependencies:
poetry install
Useful commands before committing:
poetry run black . # formatting
poetry run flake8 . # linting
poetry run pylint . # static analysis
poetry run mypy . # type checking
poetry run pytest tests/ # unit tests
Export dependencies:
poetry export -f requirements.txt --output requirements.txt --without-hashes
poetry export -f requirements.txt --output build_requirements.txt --only build --without-hashes
poetry export -f requirements.txt --output test_requirements.txt --only test --without-hashes
The project uses GitHub Actions for code quality:
- On each push/pull request: dependency installation, linting, tests, Docker build, Linux/Windows executables build.
- On each release: automatic publishing of Linux and Windows executables as artifacts.
Full documentation is available in the docs/
folder:
To convert Markdown documentation to PDF:
docker run --rm -v "$(pwd)":/data -u $(id -u):$(id -g) \
fpod/pandoc-weasyprint --from=markdown --to=html5 \
--resource-path=.:docs --pdf-engine=weasyprint --metadata author="Gwendal Auphan" \
--metadata lang=fr-FR -c style.css -o user_guide.pdf user_guide.md
👉 Full guide: Developer Guide
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0).
© 2025 Auphan Gwendal & Dorian Gaspar. You must provide attribution to the original authors when using or sharing this project. Commercial use is prohibited unless explicit permission is obtained.