Skip to content

Plateforme de jeu regroupant 8 mini-jeux ainsi qu'un classement (par jeux et en général) en ligne ainsi qu'un accès aux statistiques liés au profil/jeu.

License

Notifications You must be signed in to change notification settings

gwendalauphan/Caverne_aux_jeux

Repository files navigation

Caverne aux Jeux

License GitHub stars GitHub release GitHub last commit

Authors

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.

Caverne aux Jeux - Intro

Table of Contents

Description

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.

Available mini-games

  • Fantome
  • Flappy Bird
  • Minesweeper
  • Hangman
  • Pong
  • Snake
  • Seeker Head
  • Tetris

Potential future games

  • Connect Four
  • Pac-Man
  • Guess Who?
  • Space Invaders
  • Tic-Tac-Toe

Video

CaverneAuxJeux.mp4

🚀 Quick Start – Caverne aux Jeux

1. Download the game

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 game
  • server.exe → the server (optional)

2. Run the game

Note : Under Linux and macOS, the launch procedure is identical. The commands to run the game are the same.

Simple mode (client only)

./client # (under Linux and macOS)
./client.exe # (under Windows)
  • Enter a username.
  • Select a game and start playing.

Client-server mode (multiplayer and score saving)

  1. Start the server:

    ./server # (under Linux and macOS)
    ./server.exe # (under Windows)
  2. Then start the client:

    ./client # (under Linux and macOS)
    ./client.exe # (under Windows)
  • Game data will then be stored server-side.

3. Advanced method (developers)

Note : Under Linux and macOS, the launch procedure is identical. The commands to run the game are the same.

Clone the repository

git clone https://github.com/gwendalauphan/Caverne_aux_jeux.git
cd Caverne_aux_jeux

Run with Python

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -m app.Reseau.server   # server
python -m app.main            # client

Build with Makefile

make build-linux
make run-linux

Docker Compose

xhost +local:docker
cd docker
docker compose up -d
xhost -local:docker

4. Dependencies

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.


👩‍💻 Developer Guide

Clone and contribute

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.

Requirements

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

CI/CD

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.

Documentation

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

License

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.

About

Plateforme de jeu regroupant 8 mini-jeux ainsi qu'un classement (par jeux et en général) en ligne ainsi qu'un accès aux statistiques liés au profil/jeu.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published