Rémi Saurel

Le projet

Une de mes matières de deuxième année à l'INSA de Toulouse était "projet libre". Nous étions en binôme et avons décidé de créer un jeu informatique. Notre choix s'est orienté sur la réalisation d'un jeu en vue 2D isométrique (fausse 3D) de type porte-monstre-trésor (hack'n'slash), fortement inspiré de Diablo et de jeux similaires.

Multi-plateforme (Linux, OS X et Windows), il est écrit en C++, utilise l'API OpenGL pour l'affichage et a été conçu pour être multilingue. Le code source du jeu est disponible ici : https://github.com/rems4e/Projet2MIC.

Ma tâche était l'écriture du code, tandis que mon binôme (Marc Promé, prome.marc@gmail.com) s'occupait de toute la mécanique du jeu, de la récupération des resources visuelles et sonores auprès de sources libres. Le projet a été réalisé parallèlement aux cours et en un semestre, pour un total d'un peu plus de 24 000 lignes de code C++ et environ 700 lignes de shaders GLSL.

Gameplay

Le jeu reprend les principaux éléments des jeux de rôle : des monstres à tuer, qui rapportent des points d'expérience et permettent d'augmenter le niveau du personnage, et donc ses capacités. Le joueur peut récupérer des objets au combat ou en acheter auprès de marchands, en fonction de son budget et de ses compétences. L'inventaire possède une capacité fixe et l'on peut choisir quels objets feront partie de la tenue du joueur.

Chaque carte contient des monstres, des marchands, différents objets/bâtiments et l'accès à la carte suivante est protégé par un boss plus puissant que les autres monstres.

Un système de sauvegarde autorise le chargement rapide d'un point de sauvegarde en cas de mort du personnage ou pour la prochaine session de jeu.

Éditeur de niveaux

Le jeu contient un éditeur de niveau intégré qui permet de créer ses "aventures" (succession de cartes). On peut choisir la taille des cartes, leur nombre, et bien sur leur contenu. L'édition du contenu se fait soir de manière explicite (une entité est placée à une position précise), soit de manière implicite en définissant des probabilités que tel ou tel type d'entité soit contenu par la case. La génération de la carte est ensuite procédurale et permet de varier l'intérêt du jeu même sur une même carte.

Captures d'écran

Cliquez pour afficher en taille réelle :

Capture d'écran du jeu