Big Tuto SFML 2 / Action-RPG 2 / Expert : Legends of Meruvia
Chapitre 1 : La suite, please !
Tutoriel présenté par : Jérémie F. Bellanger (Jay81)
Date d'écriture : 24 juillet 2016
Date de révision : -
Prologue
Après 18 chapitres de folie, le Big Tuto Action RPG en C++ / SFML 2 s'est terminé dans l'euphorie générale !
Vous nous avez sûrement déjà concocté une map gigantesque, changé le tileset, créé vos monstres, mais bon voilà... Malheureusement, ça ne suffit pas !
Pour faire un RPG digne de ce nom, il manque encore beaucoup d'ingrédients et ils ne sont pas forcément simples à ajouter...
C'est pour ça que ce second tutoriel vous propose de poursuivre le projet en implémentant des éléments que vous ne trouverez nulle part ailleurs sur le net !
Déjà que le premier tuto dépassait de très loin le plus ambitieux tuto RPG que j'ai pu trouver sur le net, avec une jouabilité correcte et une gestion de la map et des bâtiments, là on va s'enfoncer dans les méandres du RPG !
Alors, je vous préviens tout de suite, on va monter d'un cran, niveau complexité ! Et c'est Stephantasy qui va ouvrir le bal en nous proposant d'ajouter des cinématiques à notre projet, avec même un éditeur clé en mains sous Excel !
Projet de progression pour cette seconde partie du tuto :
Cette seconde partie, comme vous allez le voir, est très très ambitieuse ! Cela dit, même si certains éléments annoncés ci-dessous ont déjà été implémentés par l'un des membres de Meruvia, dans un jeu ou un projet fonctionnel, tout n'est pas encore prêt et rien ne garantit que nous serons capables de le terminer, tant il est énorme !
Cela dit, nous ne sommes pas pressés par le temps, et rien ne vous empêche, vous aussi, de venir de donner un petit coup de main sur un point ou un autre.
La progression que j'indique ci-dessous est aussi, pour l'instant, indicative. Rien n'empêche de faire passer un élément avant un autre, selon les besoins du projet.
Voilà, sans plus attendre, ce que j'ai prévu :
Partie 2 : Quel est le menu ?
Ajout d'un système de cinématiques
Découper les buissons
Ajout de loot laissé par les monstres
Création d'un menu Personnage
Ajout d'un menu Inventaire
Ajout d'un menu Equipement
Ajout d'un menu Sauvegarde / Options
Partie 3 : Insuffler de la vie
Ajout de PNJs
Ajout de dialogues
Ajout de magasins (vendeurs)
Partie 4 : Système de temps
Ajout d'un système de temps (jour/nuit)
Ajout de conditions climatiques (pluie / neige ?)
Ajout de lumières dynamiques
Partie 5 : Donjons mortels
Ajout de donjons : portes qui se ferment automatiquement
Donjons : système de clefs
Donjons : coffres
Donjons : mécanismes
Donjons : pièges
Donjons : boss
Partie 6 : Bonus optionnels
Optionnel : nouvelles magies
Optionnel : nouvelles armes
Optionnel : nouveaux monstres
Optionnel : un autre boss
Optionnel : ajout de véhicules (cheval ou autre)
Modèle économique de ce tuto :
Ce tutoriel sera réservé aux membres Premium du site, et cela afin de financer le site et de permettre son écriture de façon sereine.
Pensez que l'abonnement Premium reste modique et nous permet de continuer à exister et de créer du nouveau contenu pour vous.
Qui plus est, ce que vous trouverez ici est unique et original et vous ne verrez pas d'équivalent ailleurs sur le net. Cela représente aussi beaucoup de travail et vous fera gagner un temps précieux dans la création de votre jeu (plusieurs mois au minimum).
Reprise en mains du projet :
Avant de laisser la parole à notre ami Stephantasy pour les premiers chapitres de ce tuto, reprenons ensemble notre projet, tel que nous l'avons laissé au chapitre 18 du Big Tuto A-RPG.
Première chose, nous allos désormais passer de Visual Studio 2013 à la version 2015, plus récente. VS 2015 compile par défaut en VC 140, alors que VS 2015 compilait en VC 120. Si vous ouvrez votre projet VS 2013 sous VS 2015, il vous faudra donc mettre à jour votre projet (VS vous le proposera à son ouverture ). De même, il vous faudra retélécharger la version VS 2015 de la SFML 2, et la linker à la place de l'ancienne (cf. le chapitre 2 du tuto précédent pour la méthode).
Mais, comme on est sympa, on vous fournira, au chapitre prochain, le projet VS 2015 préconfiguré avec la SFML intégrée au projet et préconfigurée.
C'est Stephantasy qui m'a donné l'idée : en intégrant la SFML au projet, celui-ci est plus facilement portable d'un PC à un autre et la personne qui le télécharge n'a pas à se casser la tête pour trouver la bonne version de la SFML !
Il nous indique d'ailleurs comment configurer tout ça ci-dessous (après avoir copié les dossiers include et lib de la SFML dans le projet ) :
Comme vous le voyez, en fait, c'est très simple !
Nous avons ensuite corrigé quelques petites choses, qui peuvent être sources de bugs :
- comme me l'a fait remarquer Gondulzac :
devraient se trouver en haut du fichier main.cpp et non pas dans main.h !
Qui plus est, comme l'indique Stephantasy, cette pratique est plutôt à éviter car elle peut engendrer des conflits entre des fonctions qui porteraient le même nom d'une lib à l'autre.
Ici, on n'en a que deux, donc les risques sont limités, mais cela peut, en effet, s'avérer être une bonne pratique.
- Dans le fichier monster.cpp / update(), j'ai augmenté le déplacement des monstres à 2 pixels pour éviter certains bugs de collision (la fonction a du mal avec les nombres impairs... )
- Enfin, const enum est accepté par Visual Studio, alors qu'il ne compilera pas avec d'autres compilos car c'est une erreur. enum seul suffit.
Voilà, si vous remarquez d'autres choses, n'hésitez pas à m'en informer sur le forum. Il est toujours temps de se corriger ! Et avec un code aussi important, et qui va encore beaucoup grossir, on n'est jamais à l'abri !
@ bientôt pour le chapitre 2, en compagnie de Stephantasy !
Jay