Printemps 2021 - en cours de développement
RPG Builder est un projet que j'ai commencé à coder au printemps 2021.
Mon but était de créer un éditeur de jeu vidéo en 2D.
Langage de programmation : C++ (utilisation de la SDL).
Compétences développées : établissement d’un cahier des charges, conception de diagrammes UML, travail de groupe.
L'éditeur permet de créer différentes map pour le jeu, ainsi que de placer des évènements dessus.
Lors de la création d'une map on peut dessiner sur trois couches différentes.
Si une des textures qu'on a appliquée sur la map est un 'x' la case devient un 'x'.
En cliquant sur le bouton collision, les collisions s'affichent sur le tileset et on peut alors les changer en cliquant sur la texture que l'on souhaite modifier.
'o' signifie que l'on peut passer sur la case, 'x' que la case est un obstacle infranchissable.
La première version que nous avons codé était un combat RPG tour par tour.
Nous avons ensuite décidé de coder le combat au tour par tour, mais cette fois-ci sur une grille. Cela rend le combat plus dynamique et plus intéressant d'un point de vue stratégique.
Il existe différents types de portée :
Il existe différents types de portée effective :
Nous avons utilisé l'algorithme de A* pour le pathfinding.
Tout comme le personnage que l'on contrôle, les ennemis disposent de sorts. Afin de lancer leur sort, ils essaient de trouver la case la plus proche d'eux à partir de laquelle ils pourront le lancer. S'ils trouvent une case réunissant les conditions nécessaires dans la limite de leur nombre de points de mouvements, ils se déplacent dessus et lancent leur sort. Sinon, ils se déplacent vers l'ennemi. Dans le premier cas, une fois leur sort lancé, ils sont programmés soit pour s'approcher du personnage, soit pour fuir.
Après des combats tour par tour, nous nous sommes attaqués aux combats en temps réel.
La map est générée de telle sorte à ce que les salles spéciales ne soient pas les unes à côté des autres. Les maps sont générées aléatoirement et sont de taille modulable (sur les exemples ci-dessous : 8 et 65).
Sonia DAKHLI, Romain MARTIN
Kyomars BOUILLON
Alexandre PETITJEAN, Romain MARTIN, Louis MERINO, Kyomars BOUILLON, Jonathan LAGLASSE, Ezekiel