Skip to content
Patpat200Public

About

the wolf game with cubes

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

89 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cube — Jeu multijoueur (serveur Node/Socket.io)

Stars Badge Forks Badge Pull Requests Badge Issues Badge GitHub contributors

  • Projet : Un petit jeu multijoueur web «Cube» avec authentification, scores, skins et arrière-plans personnalisés.
  • Fichiers clés : server.js, gameConfig.js, dossier public/ (HTML/CSS/JS clients).

Description

  • Ce dépôt contient le serveur Node.js d'un jeu en temps réel utilisant socket.io pour la logique multijoueur et une API REST minimale pour l'authentification et la gestion des statistiques.
  • Le serveur gère les comptes (MongoDB), les achievements, les skins et l'upload d'images (analyse via SightEngine si configuré).

Démo locale

  • Ouvre un navigateur sur http://localhost:2220 (ou le port que vous aurez configuré).

Prérequis

  • Node.js (>= 14 recommandé)
  • MongoDB (URI accessible)
  • Une clé JWT secrète pour sécuriser les tokens

Variables d'environnement Créez un fichier .env à la racine avec au minimum :

JWT_SECRET=votre_secret_jwt_long_et_complexe
MONGO_URI=mongodb://utilisateur:mdp@host:port/dbname
# Optionnel pour analyse d'image (SightEngine)
SIGHTENGINE_USER=xxx
SIGHTENGINE_SECRET=yyy
# SMTP (reset password)
SMTP_HOST=smtp.votre-fournisseur.com
SMTP_PORT=587
SMTP_USER=votre_identifiant
SMTP_PASS=votre_mot_de_passe_ou_app_password
MAIL_FROM=no-reply@votredomaine.com
# Option recommandé sur Render gratuit: API Brevo (HTTPS/443)
BREVO_API_KEY=xkeysib-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# true seulement si port 465 (SSL implicite)
SMTP_SECURE=false
# true seulement si votre fournisseur impose STARTTLS obligatoire
SMTP_REQUIRE_TLS=false
# utile sur certains hébergeurs/réseaux (Render) pour forcer IPv4
SMTP_FAMILY=4
# active un test SMTP au démarrage (logs)
SMTP_VERIFY_ON_START=true
# URL publique de l'app (important pour le lien de reset)
SITE_URL=https://votre-service.onrender.com
# Port doublement optionnel
PORT=2220

Sur Render gratuit, si SMTP renvoie ETIMEDOUT, configure BREVO_API_KEY : le serveur bascule automatiquement vers l'API Brevo (HTTPS) pour l'envoi des emails de reset.

Installation

  1. Installer les dépendances :
npm install
  1. Lancer le serveur :
node server.js

Le serveur écoute par défaut sur le port 2220 si PORT n'est pas défini.

Structure principale

  • server.js : logique serveur (Express + Socket.io), API REST et gestion des utilisateurs.
  • gameConfig.js : configuration des achievements, codes secrets, et mappings de skins.
  • public/ : client web statique (index.html, styles, assets).

Fonctionnalités

  • Authentification (enregistrement / login) avec JWT.
  • Parties en temps réel via socket.io (rejoindre, se déplacer, taguer).
  • Sauvegarde des statistiques utilisateur (MongoDB).
  • Système d'achievements et skins débloquables.
  • Upload d'image pour arrière-plan avec analyse (optionnelle) pour filtrer contenu inapproprié.

Personnalisation rapide

  • Modifier les récompenses et achievements : éditez gameConfig.js.
  • Modifier l'interface : éditez public/index.html et public/skins.css.

Sécurité & bonnes pratiques

  • Ne publiez jamais votre JWT_SECRET ou MONGO_URI en clair dans le dépôt.
  • Utilisez des mots de passe forts et limitez l'accès à votre base de données.
  • Le serveur utilise helmet et des rate-limiters pour améliorer la sécurité.

Dépannage rapide

  • Erreur démarrage liée au JWT : assurez-vous que JWT_SECRET est défini.
  • Problème de connexion Mongo : vérifiez MONGO_URI et la disponibilité de MongoDB.
  • Si les uploads d'image échouent, vérifiez SIGHTENGINE_USER et SIGHTENGINE_SECRET ou désactivez l'analyse.

Contribution

  • Suggestions, corrections ou nouvelles fonctionnalités : ouvrez une issue ou une PR.
  • Avant une PR, ajoutez une description claire et, si possible, un petit test manuel décrivant la validation.

Prochaines étapes recommandées

  • Ajouter un script npm start dans package.json (si absent).
  • Ajouter des tests automatés pour les routes critiques.
  • Documenter les endpoints API (/api/register, /api/login, /api/me, /api/leaderboard, etc.).

Star History

Star History Chart

About

the wolf game with cubes

Resources

Stars

2 stars

Watchers

0 watching

Forks

Contributors

Languages