Skip to content

Kohlanta

Kohlanta Banner

Présentation du projet

Kohlanta est un projet de jeu multijoueur développé avec un frontend HTML/CSS/JavaScript et un backend FastAPI utilisant WebSocket pour les communications temps réel.

Le principe du jeu :

  • plusieurs joueurs se connectent avec un pseudo,
  • chaque joueur contrôle une voiture,
  • chaque manche contient 4 instructions,
  • les voitures avancent sur une grille,
  • la carte contient des murs, checkpoints et une case d’arrivée,
  • le premier joueur qui atteint la case finale gagne.

Fonctionnalités

Backend

  • GET /ping
  • POST /register
  • POST /send-moves
  • POST /clear
  • POST /restart-game
  • POST /leave
  • WebSocket /ws

Jeu

  • enregistrement des joueurs
  • voitures colorées
  • directions des voitures
  • 4 instructions par manche
  • déplacements sur grille
  • collisions avec poussée
  • checkpoints verticaux
  • retour checkpoint après accident
  • victoire du premier joueur
  • redémarrage de partie
  • temporisation de manche

Frontend

  • affichage des joueurs
  • affichage de la grille
  • affichage des murs
  • affichage des checkpoints
  • affichage des voitures
  • affichage des instructions
  • fenêtre de victoire

Structure du projet

kohlanta_final/
│
├── Backend/
│   └── app/
│       ├── main.py
│       ├── state.py
│       ├── websocket_manager.py
│       ├── game_logic.py
│       └── api/
│           ├── ping.py
│           ├── register.py
│           ├── send_moves.py
│           ├── clear.py
│           ├── restart_game.py
│           └── leave.py
│
├── Frontend/
│   ├── index.html
│   ├── style.css
│   └── js/
│       ├── main.js
│       ├── api.js
│       ├── socket.js
│       ├── render.js
│       └── controls.js
│
├── README.md
├── EXIGENCES.md
├── requirements.txt
└── start.sh

Technologies utilisées

Backend

  • Python
  • FastAPI
  • Uvicorn
  • WebSocket

Frontend

  • HTML
  • CSS
  • JavaScript

Lancement du projet

1. Cloner le projet

git clone git@gitlab.com:ahmad-games/kohlanta.git
cd kohlanta

2. Créer un environnement virtuel

python3 -m venv venv

3. Activer l’environnement virtuel

source venv/bin/activate

4. Installer les dépendances

pip install -r requirements.txt

5. Lancer le projet

chmod +x start.sh
./start.sh

Accès

Frontend

http://127.0.0.1:5500

Backend

http://127.0.0.1:8000

Test API

http://127.0.0.1:8000/ping

Règles du jeu

  • chaque joueur envoie 4 instructions,
  • avancer,
  • tourner à gauche,
  • tourner à droite,
  • collisions avec poussée,
  • murs et bords bloquants,
  • retour checkpoint après accident,
  • victoire à l’arrivée.

Choix techniques

Le projet est séparé en plusieurs modules :

  • state.py : état global
  • game_logic.py : logique principale
  • websocket_manager.py : WebSocket
  • api/ : routes backend
  • frontend séparé en modules JS

Cette organisation permet un code plus clair et plus facile à maintenir.


Limites actuelles

  • données stockées en mémoire,
  • pas de base de données,
  • animations simples,
  • version pédagogique.

Pistes d’amélioration

  • animations avancées,
  • meilleure interface graphique,
  • mode en ligne hébergé,
  • gestion avancée des collisions,
  • amélioration de la carte,
  • affichage du temps restant.

Résultat

Kohlanta est un projet multijoueur simple permettant de découvrir :

  • FastAPI,
  • WebSocket,
  • synchronisation temps réel,
  • architecture frontend/backend,
  • logique de jeu sur grille.

Liens


Auteur

Ahmad Abo-Alola — Student Project (AI Developer Training)