Lors de mes deux premières années d’école d’ingénieur, l’apprentissage de l’informatique a eu une place importante dans le cursus, et se fit principalement avec le langage informatique C. Si bien qu’en troisième année, quand je suis rentré en spécialité informatique, j’avais une bonne maîtrise du C. Il nous a donc été demandé, à mes camarades et moi, de mener chacun un projet de logiciel en groupe qui démontrerait notre maitrise du langage et de l’algorithmie. A l’époque, en 2016, j’avais déjà pour idée de me spécialiser dans le développement de jeux vidéo, et je jouais beaucoup au jeu vidéo The Binding of Isaac (l’original, celui fait sur Adobe Flash). Avec mon ami Bryan Vigee, nous avons donc choisis de créer un fan-game dans l’univers de The Binding of Isaac, avec les règles d’un Bomberman.
Ainsi est né notre mini-jeu “Bomberman Epic”. Il a donc été codé avec le langage C, en utilisant la bibliothèque SDL pour afficher des images et jouer des sons. Il présente les mécanismes habituels du jeu Bomberman, en 2D vue de haut, ou chaque joueur pose des bombes pour briser des rochers, obtenir des bonus et blesser ses adversaires.
Un des personnages dont j’ai formaté l’animation de marche pour la faire fonctionner avec la SDL
Il s’agit d’un des premiers jeux vidéo sur lequel j’ai travaillé à chaque étape de la production, le temps d’un semestre. Il reste donc relativement basique, mais il inclus déjà pas mal de fonctionnalité :
- Un mode solo et un mode deux joueurs, jouable sur le même PC.
- Des bots qui jouent tous seul, avec une IA faite maison.
- Des murs indestructibles et des murs destructibles.
- Plusieurs terrains de jeu, dont un qui est généré aléatoirement à chaque partie
- Des bonus caché dans les cailloux, pour se déplacer plus vite, augmenter la portée d’explosion, poser plusieurs bombes en même temps, etc.
- Deux conditions de fin : une avec limite de temps dans lequel il faut toucher le plus d’ennemis possible, et une avec des points de vie dans lequel il faut tuer tous les adversaires.
- Des musiques, bruitages, images et animations tirées du jeu The Binding of Isaac.
Parmi ces fonctionnalités, celle dont je suis le plus fier est le fonctionnement des IA des bots, sur lesquelles j’ai beaucoup travaillé. Les bots sont presque trop difficiles à toucher, ce qui n’est pas très grave pour un projet étudiant, mais demanderait de l’équilibrage si le jeu devait être publié. Voici leurs règles de fonctionnement :
- Deux modes de fonctionnement : le mode “danger” quand les bots sont menacés par l’explosion imminente d’une bombe, ou le mode “sécurité” sinon. Le mode se met à jour après chaque mouvement.
- En mode “danger”, ils cherchent le chemin le plus court pour se mettre hors de portée de toute explosion.
- En mode “sécurité”, ils se déplacent aléatoirement, sans foncer dans les murs, et en évitant les zones de danger.
- Les bots posent aléatoirement des bombes, mais plus fréquemment s’ils peuvent toucher un adversaire ou plusieurs rochers. Ils ne posent pas de bombe s’ils risqueraient de rester eux-mêmes coincés et de subir son explosion.
Le sprite de l’explosion, facilement découpable pour augmenter la portée.
Je n’ai plus retouché au projet depuis 2016, mais il garde toutefois une place importante dans mon esprit, avec un certain sentiment de fierté. Mais naturellement, comme c’est l’un des premiers jeux vidéo que j’ai créé, il souffre de nombreux défauts. Si je devais le retravailler aujourd’hui, j’apporterai les modifications suivantes :
- La correction d’un bug qui freeze l’écran un petit instant lors de l’explosion.
- Une animation d’explosion !
- Un menu au fonctionnement plus explicite.
- Un tutoriel ou une règle du jeu qui indique au moins les contrôles.
- Une interface en jeu plus transparente, qui rend compte du temps restant, des points de vie et des bonus de chaque personnage.
- Des feedbacks visuels et sonores notamment quand un personnage est touché par une bombe
- Une IA encore plus intéressante, avec une difficulté réglable.
- De nouvelles mécaniques de jeu, par exemple des évènements aléatoires, d’autres bonus, ou de nouveaux objectifs sur la carte. Peut-être même un boss ?
- Une meilleure courbe d’intérêt, autrement dit mieux rythmer les parties.
Le mini jeu Bomberman Epic est téléchargeable gratuitement sur Gitlab.