Petit moteur de jeu RPG 2D en C avec SFML : déplacement de personnage, tilemap et gestion de sprites/animations.
Telecharger & tester
make && ./my_rpg (jeu de role graphique en CSFML, necessite un affichage natif)
myrpg (B-MUL-200, sous-titre "It's your turn to create your final fantasy") est l'un des projets les plus libres de la premiere annee Epitech : creer de A a Z un RPG en C avec la bibliotheque graphique CSFML, sans mecanique de jeu imposee au-dela d'un socle minimal, l'objectif etant de livrer un produit complet plutot qu'une demonstration technique isolee.
Le sujet impose neanmoins des regles de jeu communes : le joueur possede des caracteristiques visibles dans un menu de statut, peut affronter des ennemis dont l'issue depend de ces statistiques, croise des PNJ, doit accomplir au moins une quete, gere un inventaire a capacite limitee, et gagne de l'experience (combats, actions specifiques) permettant de monter de niveau et d'ameliorer ses stats.
Sur le plan technique, le jeu doit gerer la fermeture par evenements, les entrees clavier/souris, des sprites animes via sprite sheets avec animations independantes du framerate et cadencees par des horloges, un systeme de collision (elements mobiles et statiques, formes variees), un systeme de particules (au moins 2 types, avec effets de couleur/echelle/rebond/fondu pour simuler vent, feu, pluie...), des mouvements de camera (zoom, translation, rotation) et des effets de pseudo-3D (isometrie, mise a l'echelle en profondeur).
Le jeu doit imperativement comporter un menu de demarrage (lancer/quitter) et un menu de pause (touche echap, retour au menu ou quitter) sur des scenes distinctes du jeu lui-meme, en plus d'un systeme de combat basique et d'un menu inventaire/statut. Le sujet suggere aussi, sans les rendre obligatoires, une sauvegarde de partie, une personnalisation du personnage, un arbre de competences, un menu reglages et un debut/fin narratifs clairs.
Seules les fonctions de la CSFML et de la librairie math sont autorisees sans restriction ; cote libc, uniquement malloc, free, memset, (s)rand, getline, (f)open/(f)read/(f)close/(f)write et opendir/readdir/closedir sont permises, toute autre fonction non listee etant de facto interdite hors bonus. Le sujet impose enfin une contrainte de poids : le depot complet (assets inclus) doit rester leger, 30 Mo etant donne comme ordre de grandeur maximal recommande.
Projet suivant
