Changelog¶
Historique des versions de R-Type.
Le format est basé sur Keep a Changelog, et ce projet adhère au Versionnement Sémantique.
[Unreleased]¶
Added¶
Gameplay¶
- Mode Fullscreen : Touche F11 pour basculer entre fenêtré (1920x1080) et plein écran
- Letterboxing automatique : Maintien du ratio 16:9 avec barres noires sur écrans non-16:9
- Mode Solo : Possibilité de jouer seul (1 joueur minimum au lieu de 2)
- Affichage des vrais pseudos : Les autres joueurs affichent leur vrai pseudo, "You" uniquement pour le joueur local
Leaderboard¶
- Affichage du rang global en temps réel pendant la partie
- Affichage du meilleur score personnel avec indicateur "NEW!"
- Mise à jour périodique du rang (toutes les 10 secondes)
- Tri par colonnes cliquables dans le leaderboard (Score, Wave, Kills, Time)
- Filtrage par mode de jeu : Solo, Duo, Trio, 4P, 5P, 6P ou tous les modes
- Colonne "MODE" affichée quand le filtre "ALL" est sélectionné
Système¶
- Vérification de version automatique : Comparaison du hash Git client/serveur à la connexion
- Historique des versions : Affiche le nombre de commits de retard si version obsolète
- Bouton Jenkins : Accès direct au téléchargement si mise à jour nécessaire
- Mode développeur : Fichier
version.devpour bypasser la vérification - Script run-client.sh : Wrapper Linux pour le support audio PipeWire/JACK (voice chat)
Discord Bots¶
- Bot Admin : Administration à distance via Discord (slash commands)
- Commandes :
/status,/sessions,/rooms,/kick,/ban,/broadcast - Connexion sécurisée via TCPAdminServer (port 4127, token 256-bit)
- Bot Leaderboard : Statistiques et classements via Discord
- Commandes :
/leaderboard,/stats,/achievements,/history,/compare - Pagination avec boutons, autocomplétion des joueurs
- Annonce changement de leader : Notification automatique quand un joueur devient #1 all-time
Technique¶
- Documentation complète avec MkDocs Material
- Support multi-backend graphique (SDL2/SFML)
- Architecture plugin pour les backends
- Système ECS intégré : Entity Component System pour la gestion des entités serveur
- Tests unitaires pour le formatage du score et les couleurs du rang
Changed¶
- Refactoring de la couche graphique avec abstraction
- Calcul du rang utilise maintenant l'agrégation MongoDB pour joueurs uniques
- Optimisation du système de collision avec détection AABB par paires
- Amélioration de la gestion des groupes d'entités avec cache optimisé
Fixed¶
- Correction des fuites mémoire dans le système ECS
- Fix du calcul de rang qui comptait les scores au lieu des joueurs uniques
- Correction du redimensionnement et des clics souris avec letterboxing
- Correction des touches coincées après utilisation du chat
- Correction du clignotement et de l'overlay du LeaderboardScene
- Fix crash SIGABRT dans TCPAdminServer lors de déconnexion client
- Remplacement de strncpy par snprintf pour éviter les buffer overflows
Security¶
- Authentification par token 256-bit pour TCPAdminServer
- TCPAdminServer bind sur localhost uniquement (127.0.0.1)
- Filtrage des commandes dangereuses (quit, exit, zoom, interact, net)
[1.0.0] - 2024-XX-XX¶
Added¶
- Jeu R-Type fonctionnel client/serveur
- Système ECS complet
- Communication UDP avec Boost.ASIO
- Backend SDL2
- Backend SFML
- Configuration JSON
- Logging avec spdlog
- Support Linux et Windows
Architecture¶
- Architecture hexagonale (Ports & Adapters)
- Système de plugins pour backends graphiques
- Sérialisation réseau custom
Types de Changements¶
- Added : Nouvelles fonctionnalités
- Changed : Modifications de fonctionnalités existantes
- Deprecated : Fonctionnalités qui seront supprimées
- Removed : Fonctionnalités supprimées
- Fixed : Corrections de bugs
- Security : Corrections de vulnérabilités
Convention de Versionnement¶
MAJOR.MINOR.PATCH
MAJOR : Changements incompatibles (breaking changes)
MINOR : Nouvelles fonctionnalités rétrocompatibles
PATCH : Corrections de bugs rétrocompatibles
Exemples¶
| Version | Type | Description |
|---|---|---|
| 2.0.0 | MAJOR | Nouveau protocole réseau incompatible |
| 1.1.0 | MINOR | Ajout d'un nouveau type d'ennemi |
| 1.0.1 | PATCH | Fix crash au démarrage |