cazh-CNendeeliwhiiditjakoptrues

     

 

 

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 ! angel

   Vous nous avez sûrement déjà concocté une map gigantesque, changé le tileset, créé vos monstres, mais bon voilà... frown Malheureusement, ça ne suffit pas ! surprise

   Pour faire un RPG digne de ce nom, il manque encore beaucoup d'ingrédients et ils ne sont pas forcément simples à ajouter... cheeky

   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 ! wink

   Alors, je vous préviens tout de suite, on va monter d'un cran, niveau complexité ! wink 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 ! cheeky

   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. wink

   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. smiley

   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. wink 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). angel

 

     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. wink

   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 wink). 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. angel

   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 ! laugh

 

   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 wink) :

 

 

   Comme vous le voyez, en fait, c'est très simple ! smiley

 

   Nous avons ensuite corrigé quelques petites choses, qui peuvent être sources de bugs :

 

- comme me l'a fait remarquer Gondulzac :

using namespace std;
using namespace sf;

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. wink

 

- 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... frown)

 

- 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 ! wink Et avec un code aussi important, et qui va encore beaucoup grossir, on n'est jamais à l'abri ! laugh

 

       @ bientôt pour le chapitre 2, en compagnie de Stephantasy ! angel

                                                                                                                    Jay 

 

 

 
 
 

Connexion