Sand Breaker

Sand Breaker (ou Cassable) est un prototype d’un jeu de casse-brique en 2D, incluant un système de progression, et dans lequel vous incarnez un crabe voulant se frayer un chemin jusqu’à la mer.

Contexte du projet

Codé en C# avec le framework Monogame, j’y ai travaillé seul pendant 3 semaines en automne 2024, lors du second module de ma formation professionnelle de Game Developpement auprès de l’école Gaming Campus.

Cahier des charges imposé

Créer en un mois un jeu vidéo avec le framework Monogame. Ce devait être un Casse-briques en 2D, incluant plusieurs niveaux, et au moins une originalité de gameplay.

Game Design

Au début de ce second projet, j’ai pris le temps de rédiger un Game Concept Document (ou GCD), afin de donner une certaine cohérence au jeu, de garder à l’esprit ma vision artistique, et d’anticiper les tâches à faire et l’architecture souhaitée. Si la plupart des idées sont restées, vous pourrez constater en testant le jeu que certains détails ont été modifiés au cours du développement. Il n’empêche que, certainement grâce à cette étape de conception préalable, Sand Breaker est le jeu que j’ai créé pendant ma formation de Game Developpement dont je suis le plus fier.

Afin d’apporter un peu d’originalité au concept très convenu du casse-brique, j’ai voulu exploiter plusieurs idées :

  • Changer la condition de victoire. La satisfaction d’un casse-briques vient de la destruction des bloques, et du mur qu’on voit disparaître progressivement. Mais les dernières minutes d’un casse-brique traditionnel, alors qu’il ne reste que quelques briques à toucher, sont souvent plus ennuyeuses. En ajoutant une limite de temps, et une nécessité de s’enfuir, je rend la progression de la partie plus dynamique, peut-être plus stressante, mais avec un meilleur sentiment de défi.
  • Ajouter une cohérence narrative. La diégèse des jeux de casse-briques m’a toujours échappé : pourquoi casse-t-on des briques ? pourquoi une balle ? que représente la raquette ? que cherche-t-on à faire en vérité ? Alors que je cherchais à changer la raquette en un élément qui ne pourrait se déplacer que sur une ligne, je me suis rappelé l’idée reçue selon laquelle les crabes ne peuvent pas tourner (exploitée par Arthur de Pins dans l’excellent court métrage “La Révolution des crabes“). Tout les autres choix narratifs ont naturellement déroulé de cette idée.
  • Ajouter un système de progression. Quitte à faire plusieurs niveaux consécutif, autant ajouter un vraiment sentiment de progression pour le joueur. Avec un casse-briques traditionnel, cela passerait par le level design. Mais pourquoi ne pas récompenser vraiment les victoires du joueur en lui proposant d’améliorer sa force par des bonus ? J’ai notamment implémenté quelques bonus qui pourraient se retourner contre le joueur : en augmentant la vitesse des projectiles, il gagne du temps, mais aura plus de difficulté à rattraper les rattraper. Autre exemple, en augmentant la taille du crabe, il aura plus de facilité à rattraper les projectiles, mais plus de mal à se frayer un chemin à travers les bloques de sable.

Notions informatiques utilisées

Monogame est un framework en C# qui intègre déjà quelques éléments hauts niveau pour faciliter l’utilisation de sa Game Loop et de , j’ai donc pu me concentrer moins sur l’implémentation de la physique et de la boucle de jeu, et plus sur des éléments de gameplay.

  • Programmation orientée objets
  • Chargement et lecture de fichiers
  • Génération de niveaux à partir de fichiers
  • Création d’un Scene Manager pour passer d’un niveau à l’autre
  • Création d’un Input Manager, pour gérer la souris et le clavier
  • Création d’un Service Locator, pour charger et récupérer efficacement les assets, les managers, etc.
  • Création d’une interface basique de sélection de bonus
  • Animation de personnages avec Gimp, notamment le crabe lorsqu’il renvoie une balle, puis implémentation dans Monogame.

Toujours plus d’ensoleillement

Je suis très satisfait de ce qu’a donné ce projet compte tenu du temps que j’ai pu y passer. Cependant, comme dit précédemment, je n’ai pas pu intégrer toutes les mécaniques secondaires que j’avais envisagé dans le GCD.

  • Plus de niveaux différents, voire une génération procédurale de niveaux avec une difficulté infiniment croissante.
  • Des niveaux plus longs, avec une caméra qui suit le crabe à mesure qu’il progresse vers le haut de sa grotte. Éventuellement un mode infini ou le crabe ramasse des bonus en chemin et doit parcourir le plus de chemin possible sans être rattrapé par le sable.
  • Éventuellement un système de scoring, si le joueur a besoin d’une meilleure sensation de succès et de progression.
  • Plus de bonus différents, passifs ou activables. Certaines idées sont données dans le GCD.
  • Une interface pour choisir son bonus à activer.
  • Des obstacles et des types de projectiles différents.
  • Un ou plusieurs boss, toujours dans l’univers de la plage.
  • Des graphismes, sprites et logos mieux faits, je suis un piètre dessinateur.
  • Plus de feedbacks, notamment des sons, des animations et des FX !
  • Des musiques, pour l’ambiance et l’immersion du joueur.

Leave a Reply

Your email address will not be published. Required fields are marked *