Kass Brikerie

Jeu de casse-briques moderne développé en Java pour terminal

Septembre 2025 Java Terminal Game Dev Agile/Scrum

Aperçu du projet

Kass Brikerie est un jeu de casse-briques moderne inspiré du classique Arkanoid, développé entièrement en Java pour terminal. Le projet combine un gameplay classique avec des fonctionnalités modernes : système de bonus, gestion multi-balles, et sauvegarde de scores en ligne. Développé en méthodologie Agile/Scrum sur 9 sprints par une équipe de 5 développeurs.

Au sein de l'équipe, j'ai contribué à l'implémentation du système de collisions et de physique du jeu, au développement du système de bonus variés, ainsi qu'à l'optimisation du rendu dans le terminal pour assurer une expérience de jeu fluide. J'ai également participé activement aux cérémonies Scrum (daily stand-ups, sprint reviews, rétrospectives) et à la gestion du backlog produit.

Contexte du projet

SAÉ universitaire réalisée en équipe de 5 développeurs dans le cadre du BUT Informatique à l'IUT de Lille. L'objectif était de produire un jeu complet en appliquant rigoureusement Scrum, avec un focus sur le travail collaboratif, la gestion de backlog et les bonnes pratiques de développement.

Objectifs

  • Livrer un jeu jouable en terminal, fluide et stable, en 9 sprints.
  • Mettre en pratique Scrum de bout en bout (planning, daily, review, rĂ©tro).
  • Garantir une base de code testĂ©e et maintenable Ă  5 contributeurs.

Mon rĂ´le

Développeur dans l'équipe Scrum : j'ai contribué au système de collisions et à la physique, au système de bonus, et à l'optimisation du rendu terminal. J'ai participé activement à toutes les cérémonies Scrum et à la gestion du backlog, ainsi qu'aux revues de code des autres membres.

5 Développeurs
9 Sprints Scrum
~4k Lignes de code Java

Fonctionnalités principales

  • Gameplay classique amĂ©liorĂ© Reprise du concept Arkanoid avec des mĂ©caniques modernes et fluides
  • Système de bonus variĂ©s Power-ups pour agrandir la raquette, ralentir la balle, obtenir des vies supplĂ©mentaires, etc.
  • Gestion multi-balles PossibilitĂ© de jouer avec plusieurs balles simultanĂ©ment pour maximiser les points
  • Rendu terminal optimisĂ© RafraĂ®chissement d'image fluide dans le terminal avec gestion des collisions prĂ©cise
  • Système de scores en ligne Sauvegarde et classement des meilleurs scores avec persistance des donnĂ©es
  • Niveaux progressifs DifficultĂ© croissante avec des patterns de briques variĂ©s

Technologies utilisées

Java

Langage principal pour la logique de jeu et le moteur graphique

Terminal Graphics

Rendu graphique dans le terminal avec rafraîchissement optimisé

Game Loop

Boucle de jeu avec gestion du temps et des FPS constants

Méthodologie Agile

Développement en sprints Scrum avec rétrospectives et planning

Méthodologie Agile/Scrum

Le projet a été développé en suivant rigoureusement la méthodologie Scrum sur 9 sprints :

Sprint Planning

Définition des user stories et estimation des tâches en début de sprint

Daily Standups

Points quotidiens pour synchroniser l'équipe et identifier les blocages

Sprint Review

Démonstration des fonctionnalités développées aux parties prenantes

Retrospective

Analyse des points positifs et axes d'amélioration pour le sprint suivant

Défis techniques

Rendu fluide en terminal

Optimisation du rafraîchissement de l'écran terminal pour obtenir un gameplay fluide malgré les limitations du terminal (pas de double buffering natif).

Détection de collisions précise

Détection cellule par cellule des collisions entre la balle, les briques et la raquette avec gestion des angles de rebond cohérents avec le terminal.

Gestion multi-balles

Coordination de plusieurs balles simultanées avec gestion individuelle des collisions et de la physique pour chaque balle.

Travail en équipe

Coordination de 5 développeurs avec des niveaux d'expérience différents, nécessitant une communication claire et des revues de code régulières.

Architecture du projet

Séparation des responsabilités

Logique de jeu, rendu et entrée séparés en classes dédiées, avec une boucle de jeu centralisée orchestrant les composants

Conception orientée objet

Interfaces (Drawing, Move) et énumérations (BonusListe) pour rendre les briques, bonus et entités graphiques extensibles

Tests unitaires

Tests JUnit sur le système de score et le déplacement de la raquette

Git workflow

Branches par fonctionnalité avec merge requests et code reviews

Compétences développées

Compétences techniques

  • DĂ©veloppement de jeux vidĂ©o (game loop, physique, collisions)
  • MĂ©thodologie Agile/Scrum en environnement rĂ©el
  • Travail collaboratif avec Git (branches, merge, code reviews)
  • Optimisation de performances et gestion mĂ©moire
  • Conception orientĂ©e objet avec interfaces et Ă©numĂ©rations
  • Communication d'Ă©quipe et gestion de projet
  • Tests unitaires et assurance qualitĂ©

Compétences transversales

  • Communication : daily standups et synchronisation continue avec 4 autres dĂ©veloppeurs.
  • Organisation : planification de sprint, estimation et suivi du backlog.
  • AdaptabilitĂ© : ajustement du pĂ©rimètre en rĂ©trospective face aux alĂ©as de chaque sprint.
  • Esprit critique : revues de code constructives entre pairs.

Résultats obtenus

Jeu livré jouable au terme des 9 sprints, ~4k lignes de Java, tests unitaires JUnit sur le score et le déplacement, dépôt Git structuré (branches par fonctionnalité, merge requests, code reviews). Toutes les cérémonies Scrum ont été tenues sur la durée du projet.

Bilan & recul

  • Ce que j'ai appris : Scrum n'a de valeur que si chaque cĂ©rĂ©monie est tenue sĂ©rieusement ; sauter une rĂ©trospective coĂ»te plus cher qu'il n'y paraĂ®t.
  • DifficultĂ© surmontĂ©e : coordonner 5 dĂ©veloppeurs avec des niveaux diffĂ©rents : la mise en place de revues de code systĂ©matiques a homogĂ©nĂ©isĂ© la qualitĂ©.
  • Ce que je referais autrement : investir davantage dans les tests automatisĂ©s dès le sprint 1, plutĂ´t que de les ajouter en milieu de projet.

Captures du projet

Explorez le code

Le code source complet est disponible sur GitHub avec la documentation du projet et les instructions d'installation. Testez le jeu et découvrez l'implémentation !

Voir le repository GitHub →