Réaliser un RPG en C avec SDL et FMOD
Un article de Games Creators Network.
[modifier] Avant-propos
Le but de cette page est d'arriver, étape par étape, à réaliser toutes les tâches de programmation menant à la conception d'un RPG en 2D.
Le jeu sera écrit en C et utilisera deux librairies:
Le rendu final du jeu sera proche des jeux Final Fantasy sur SNES. Tous les méchanismes de base seront implémentés, cependant l'accent ne sera pas mis sur la création d'un gameplay permettant au jeu d'être intéressant. Par exemple, le système de magie pourra gérer plusieurs dizaines de magies mais seulement deux ou trois seront fournies avec les démos. Libre à vous de développer la jouabilité de ce noyau de jeu afin d'arriver à vos fins.
De plus, le code source fourni tente de rester le plus simple possible. Les solutions les plus complexes et les plus optimisées seront implémentées à la fin de la série dans des étapes spéciales. Le but est de ne pas exclure dès le départ des lecteurs potentiels par la difficulté du code.
Bonne lecture!
[modifier] Avertissement
Toutes les connaissances nécessaires à la conception d'un jeu ne peuvent être acquises en une seule fois. Une connaissance du C est requise pour la bonne compréhension de cet article. Les liens vers d'autres articles du wiki qui sont insérés dans ces pages peuvent vous aider à combler vos lacunes, n'hésitez pas à les consulter.
[modifier] L'évolution du jeu en images
[modifier] Les étapes de la création d'un RPG
[modifier] Etape n°1: Préparation
Dans cette étape, nous installons Dev-Cpp et installons les bibliothèques que nous allons utiliser pour le jeu.
[modifier] Etape n°2: Commençons!
Il faut désormais poser les bases du jeu: écrire la fonction Main(), initialiser les bibliothèques, lier les fichiers nécessaires au projet.
[modifier] Etape n°3: Les cartes
La réalisation des décors est un point important du développement du jeu afin d'obtenir un rendu visuel intéressant au final.
- Démo n°1: génération et affichage d'une carte (Télécharger | Voir le code source | OS: Windows, Linux)
- Lire cette étape
[modifier] Etape n°4: L'éditeur de carte
L'éditeur de carte va nous permettre de créer des cartes complexes à utiliser dans notre jeu.
- Démo n°2: l'éditeur de carte de notre jeu (Télécharger | Voir le code source | OS: Windows, Linux)
- Lire cette étape
[modifier] Etape n°5: Les sprites et les collisions
La gestion des sprites permet à notre héros d'apparaître. On peut d'ores et déjà le déplacer à l'aide des touches directionnelles et il ne traverse pas les obstables (murs, caisses, etc.).
- Démo n°3: le héro, déplacé à l'aide des touches directionnelles, se déplace sans passer à travers les obstables (Télécharger | Voir le code source | OS: Windows, Linux)
- Lire cette étape
[modifier] Etape n°6: Les événements et les PNJ
L'ajout d'un PNJ à notre carte est relativement aisé grâce au système que nous avons conçu durant l'étape 5, mais créer de toute pièce un système gérant toute l'interactivité du jeu est un vrai défi!
- Démo n°4: un nouveau pnj se déplace et des événements se produisent (Télécharger | Voir le code source | OS: Windows, Linux)
- Lire cette étape
[modifier] Etape n°7: Interface, inventaire et boutiques
Les fondations de notre jeu sont posées: il est temps de compléter notre jeu avec des fonctionnalités totalement inédites tel que: un menu permettant de gérer notre inventaire et les armes et armues équipées, une boutique et même une auberge.
- Démo n°5: un nouveau menu, des dialogues et deux boutiques (Télécharger | Voir le code source | OS: Windows, Linux)
- Lire cette étape
[modifier] Etape n°8: Combats, fondus enchaînés et coffre
Dans cet article, nous allons ajouter un système très important pour notre jeu: le système de combat. La gestion des fondus enchaînés est également au rendez-vous. Enfin, nous ferons encore un petit peu évoluer notre système d'événement avec l'implémentation d'un nouveau type d'événement permettant de gérer (entre autre) les coffres.
- Démo n°6: des combats, des fondus enchaînés et un coffre (Télécharger | Voir le code source | OS: Windows)
- Lire cette étape
[modifier] Ressources
[modifier] Table des matières
- Préparation
- Commençons!
- Les cartes
- L'éditeur de carte
- Les sprites et les collisions
- Les sprites
- Gestion des collisions
- Création des fichiers sprite.c et sprite.h
- Implémentation des types
- Initialisation et libération des sprites
- Chargement statique de données
- Sauvegarde des sprites
- Chargement des sprites
- Affichage des sprites
- Changer l'animation d'un sprite
- Déplacement d'un sprite et gestion des collisions
- Gestion des événements
- Modification de la fonction Main()
- Démo 3: Sprites et collision
- Les événements et les PNJ
- Ajouter un PNJ
- Gestion du déplacement des PNJ
- Le sytème de gestion des événements
- Création des fichiers events.c et events.h
- Implémentation des types de donnée nécessaires
- Initialisation et libération de la structure
- Chargement des données statiques
- Gestion des événements
- Sauvegarde des événements
- Chargement des événements
- Création de nouveaux événements
- Modifications de la fonction main()
- Démo 4: PNJ et événements
- Interface, inventaire et boutiques
- Combats, fondus enchaînés et coffre
[modifier] Aller plus loin
[modifier] Travaux dérivés de ce projet
Catégories: C | SDL | FMOD


