Projet SansCoeur - Jeu de contrée en ligne


SansCoeur Online
Logo SansCoeur

Logo du projet SansCoeur Online

Projet :
Nom : SansCoeur Online
Type : Jeu de cartes multijoueurs en ligne
Année : 2024-2025
Technologies :
Backend : Python Flask, Socket.IO
Frontend : HTML, CSS, JavaScript (modules)
Base de données : SQLite
Fonctionnalités :
Temps réel : Parties multijoueurs synchronisées via WebSocket
Gestion utilisateurs : Authentification, profils, statistiques
Interface : Table de jeu, chat, gestion du score

Note: Tout le code source du projet est disponible sur GitHub : iSeaox/SansCoeur.



Présentation du projet

SansCoeur est un jeu de contrée en ligne, permettant à plusieurs joueurs de s'affronter via leur navigateur. Ce projet vise à proposer une version numérique fidèle de la contrée, avec toutes les règles et subtilités de la contrée, accessible partout et à tout moment.

Fonctionnalités principales

Le site propose la création et la gestion de parties multijoueurs, un système d'inscription et de connexion sécurisées, un chat intégré pour communiquer pendant les parties, ainsi que le suivi des scores et des statistiques individuelles. Les joueurs peuvent rejoindre des parties existantes, inviter des amis, ou consulter leur historique de jeu et leur profil.

Interface de sélection de partie
Sélection d'une partie
Interface de jeu
Interface de jeu en ligne
Classement des joueurs
Exemple de classement des joueurs
Architecture technique

L'application repose sur un backend Python utilisant Flask pour la gestion des routes et des templates, et Flask-SocketIO pour la communication temps réel entre les clients et le serveur. Le frontend est développé en HTML/CSS avec des modules JavaScript pour la gestion dynamique de l'interface (cartes, chat, animations). Les données utilisateurs et les parties sont stockées dans une base SQLite.

L'organisation du projet suit une structure claire : les fichiers statiques (JS, CSS, images) sont séparés des templates HTML, et la logique du jeu est encapsulée dans des modules dédiés côté serveur et client. Un tableau de bord administrateur permet de superviser les utilisateurs, les connexions et les parties en cours.

Grâce au système de rooms dans les canaux Socket.IO, il est possible de lancer plusieurs parties en parallèle, chaque groupe de joueurs étant isolé dans sa propre salle de jeu en temps réel.

Défis et solutions

Le principal défi technique a été d'assurer la synchronisation en temps réel des actions de jeu entre tous les participants, tout en garantissant la robustesse face aux déconnexions ou aux comportements inattendus. L'utilisation de Socket.IO a permis de gérer efficacement les événements (distribution des cartes, tours de jeu, chat) et de maintenir l'état du jeu côté serveur.

Un soin particulier a été apporté à l'expérience utilisateur : notifications toast, gestion responsive pour mobile, et accessibilité des fonctionnalités (aide contextuelle, feedback visuel).

Carte As personnalisée
As
Carte Roi personnalisée
Roi
Carte Dame personnalisée
Dame
Carte Valet personnalisée
Valet
Bilan et perspectives

Ce projet a permis de mettre en œuvre des compétences avancées en développement web fullstack, en gestion de projet collaboratif et en conception d'interfaces interactives. SansCoeur Online est aujourd'hui pleinement fonctionnel et va rester privé. Il n'est pas prévu d'ajouter d'autres variantes de jeu, mais la plateforme pourra évoluer pour améliorer l'expérience utilisateur ou la gestion des parties.

La création de ce jeu en ligne permet de rassembler autour d'une même table virtuelle des personnes de plusieurs générations et potentiellement très éloignées géographiquement. C'est cet esprit de convivialité et de partage, au-delà des distances, qui constitue l'objectif premier du projet SansCoeur Online.