Repository navigation
Releases: KOUSSEMON-Aurel/ChessGame
Release list
ChessGame v2
Godot Chess est une application de jeu d'échecs multiplateforme avancée développée avec Godot 4, combinant une interface graphique moderne et une intelligence artificielle de niveau expert.
🌍 Plateforme & Portabilité
Desktop : Windows, Linux (X11), macOS (Intel & Apple Silicon)
Mobile : Android (avec plugin natif Java/JNI optimisé)
Web : Support HTML5/WebAssembly avec mode IA simulé
🎮 Modes de Jeu
Joueur vs IA : Affrontez Stockfish avec 10 niveaux de difficulté progressifs
Joueur vs Joueur : Mode local pour deux joueurs sur le même appareil
IA vs IA : Observez des parties autonomes entre moteurs
Mode Élimination Totale : Variante exclusive où la victoire nécessite l'élimination de toutes les pièces adverses (désactive les règles de mat/pat)
🏗️ Architecture Technique
Interface Graphique (Godot 4 / GDScript)
Rendu hybride 2D/3D pour un plateau dynamique et visuellement riche
Animations fluides : déplacements de pièces, indicateurs de coups, effets visuels (captures, promotions)
Système de scores : comptage en temps réel des pièces capturées avec icônes
Historique PGN : popup dédié listant tous les coups de la partie
Contrôles intuitifs : drag-and-drop, annulation/rejeu, flip du plateau
Backend & Moteur IA
Desktop (Linux/Windows/macOS)
Serveur UDP (Go/Golang) : processus intermédiaire ultra-rapide (iopiper)
Communication asynchrone via sockets UDP
Pipe bidirectionnel entre Godot et Stockfish
Isolation des processus pour stabilité maximale
Android
Plugin natif Java (
StockfishEngine.java
)
Intégration JNI du binaire ARM libstockfish.so
Communication directe via signals Godot (pas de UDP)
Gestion du cycle de vie et extraction automatique des .so
Web
Mock AI fallback : génération de coups aléatoires légaux en attendant WASM Stockfish
Support des règles complètes côté client (validation GDScript)
Intelligence Artificielle (Stockfish UCI)
10 niveaux de difficulté avec configuration granulaire :
Skill Level : 0 (débutant) → 20 (Grand Maître)
Temps de réflexion : 500ms à 4000ms (progression exponentielle)
Ressources : Hash tables (16-128 MB), Threads (1-2)
Taux d'erreur simulé : 40% (niveau 1) → 0% (niveau 10)
MultiPV : analyse de coups multiples pour variété de jeu
Timeout de sécurité : fallback sur coups légaux si moteur freeze
💾 Gestion de Partie
Format FEN : chargement/sauvegarde de positions arbitraires
Export PGN : historique complet avec notation algébrique
Validation stricte : règles FIDE (échec, mat, pat, roque, en passant)
Promotions configurables : activables/désactivables selon le mode
🎨 Expérience Visuelle
Pièces 3D texturées : modèles PNG haute résolution (blanc/noir)
Plateau paramétrique : mesh procédural avec éclairage dynamique
Effets spéciaux :
Indicateurs de coups légaux (highlight cases)
Animation de dernier coup joué
Suggestion visuelle du meilleur coup (optionnel)
UI adaptative : menus contextuels, popups, barres de score
🛠️ Détails Techniques
Détection OS automatique : sélection binaire optimisé (x64, ARM, WASM)
Gestion d'état robuste : FSM (Finite State Machine) pour flux de jeu
Communication asynchrone : timers de sécurité contre freeze moteur
Export multiformat : APK Android (armeabi-v7a), EXE Windows, binaire Linux
📦 Structure du Projet
ChessGame/
├── src/ # Projet Godot
│ ├── Main.gd # Logique principale (FSM, IA)
│ ├── Board.gd # Plateau & règles
│ ├── engine/Engine.gd # Abstraction moteur UCI
│ ├── pieces/ # Assets 3D
│ └── android/ # Build template Android
│ └── plugins/StockfishEngine/ # Plugin natif
├── bin/ # Binaires par plateforme
│ ├── linux/iopiper + stockfish
│ ├── windows/iopiper.exe + stockfish.exe
│ └── android/chess_final_signed.apk
└── builds/ # Exports finaux
🚀 Points Forts
✅ Architecture modulaire : abstraction plateforme complète
✅ Performances optimales : communication UDP/JNI, binaires natifs
✅ UX soignée : animations, feedback visuel, gestion erreurs
✅ Débogage avancé : logs détaillés, timeouts, fallbacks
✅ Production-ready : APK signé, builds optimisés, gestion mémoire
Un projet de référence pour explorer l'intégration de processus externes avec Godot, la communication inter-processus (IPC), et le développement d'interfaces de jeux de stratégie complexes multi-plateformes. Idéal pour comprendre les subtilités du packaging Android (JNI, AAR, Gradle), la gestion d'état avancée et l'optimisation cross-platform.
ChessGame
Godot Chess est une application de jeu d'échecs multiplateforme (Windows, Linux, macOS) développée avec le moteur Godot 4.
Ce projet se distingue par son architecture hybride et performante :
Interface Graphique (GUI) : Réalisée en GDScript avec Godot, elle offre un rendu visuel soigné (mélangeant 2D et éléments 3D) et une expérience utilisateur fluide.
Backend Robuste : Un serveur écrit en Go (Golang) agit comme intermédiaire rapide et fiable, communiquant via UDP entre l'interface et le moteur d'échecs.
Intelligence Artificielle : Intègre le puissant moteur Stockfish (protocole UCI) pour offrir un adversaire redoutable avec 10 niveaux de difficulté réglables.
Fonctionnalités principales :
♟️ Modes de jeu variés : Joueur vs IA, Joueur vs Joueur (local), et IA vs IA.
⚔️ Variante exclusive : Mode "Élimination Totale" où le but est de capturer toutes les pièces adverses.
💾 Gestion de partie : Sauvegarde/chargement (FEN/PGN), historique des coups et validation stricte des règles.
🖥️ Cross-platform : Détection automatique de l'OS et utilisation des binaires optimisés pour chaque système.
C'est un projet idéal pour explorer l'intégration de processus externes avec Godot et le développement d'interfaces de jeux de stratégie complexes.