Description
Nous allons créer un jeu vidéo de type RPG qui se déroule dans un monde à créer, avec un personnage principal manipulable et des personnages secondaires comme des monstres ou des vilageois·es avec lesquels interagir.
Pour nous aider, nous pourrons utiliser le moteur de jeu open source Godot ainsi que tous les plugins qui nous semblent interessants.
Contraintes
- Durée: 2 semaines
- Langage: C++
- Moteur de jeu à utiliser: Godot Engine
Notions abordées
- Utilisation d’un moteur de jeu multiplateformes
- Gestion d’équipe
- Manipulation de diagrammes de classe et de maquettes
Se préparer
- Godot propose un éditeur ou permet d’utiliser son éditeur de prédilection
- Si vous utilisez l’éditeur de Godot, il existe des raccourcis pour faciliter son utilisation
- Pour utiliser le langage C++, il va y avoir besoin de mettre en place votre environnement
Plénières
- Install party
Orientation du projet
Idées de monde à créer
Si vous manquez d’idées, voici une petite liste dans laquelle piocher:
- Un monde d’heroic-fantasy, comme Zelda, où le personnage principal a une épée et doit combattre ce qu’il considère etre des monstres
- Un monde rempli d’insectes, comme dans Hollow Knight
- Un monde où l’on est un·e postier·e qui distribue du courrier. Dans ce cas, les monstres deviennent des personnages à livrer et les armes deviennent des lettres.
- Un monde où vous etes une grenouille qui a besoin de s’hydrater dans des marres et d’éviter les faucons qui veulent les manger
Je débute
Le but est ici d’initialiser notre jeu. Dans cette étape, nous vous proposons de mettre en place:
- une carte de jeu (que ce soit une carte avec plusieurs écrans, comme dans Zelda, ou une carte filante, comme dans Mario)
- un personnage principal (qui a des caractéristiques comme des points de vie, et un inventaire) avec un singleton
- Utiliser des animations pour faire bouger le personnage avec un clavier
- deux types de monstres (ou de personnages avec lesquels interagir dans les étapes suivantes) différents (Par exemple, un monstre qui vole, un monstre qui marche)
- 1 PNJ (avec des dialogues pré-définis)
Ressources
- Une idée de comment créer une carte avec Godot ou créer sa scène principale
- Une idée de comment créer un personnage ici ou ici
Objectifs pédagogiques
- Choix et manipulation d’un moteur de jeu
- Manipulation du C++
- Création de classes avec héritage
- Approche du concept de singleton
Je suis à l’aise avec certains langages
1. Enrichissement du jeu
Ajoutons plus d’interactions entre nos personnages:
- des actions: marcher, taper dans différentes directions, faire interagir le personnage principal avec d’autres personnages (Par exemple: un monstre fait 1 de dégat s’il touche le personnage)
- Drop de certains objets par les monstres, récupérables dans l’inventaire
- Ajout d’une nouvelle quete (ajout de nouveaux tableaux / écrans pour faire voyager le personnage principal)
- Utilisation de sons à intégrer aux actions du personnage ou des monstres
Ressources
- Une idée de comment ajouter des animations au personnage
- Une idée de [comment faire bouger le personnage]https://fr.flossmanuals.net/godot-game-engine-initiation/gerer-les-input/
2. Pouvoir mettre le jeu en pause
Des fois, on a envie de prendre une pause. Ajoutons cette option à notre jeu, pour pouvoir prendre un café entre deux mondes.
3. Pouvoir enregistrer sa partie
Des fois, la pause peut etre plus importante, et on voudrait enregistrer sa partie pour reprendre où nous en étions à un autre moment. Ajoutons cette option pour nous éviter de tout recommencer !
Objectifs pédagogiques
- Elaborer l’aspect immersif d’un jeu vidéo en manipulant des actions et des sons
- Ajout d’options pour rendre un jeu résilient
- Personalisation d’un jeu avec mise en place d’un scenario
Je veux aller plus loin
1. Evolution du système de jeu
Continuons à ajouter encore plus d’interactions avec:
- une gestion des collisions (bloqué par un arbre mais pas par des feuilles par exemple)
- une gestion de la vie du personnage et des monstres (baisse si touché par un monstre, augmente si récupère un coeur)
- un ajout de nouveaux objets comme les coeurs ou une arme
- un ajout des caractéristiques des armes (une arme fait X dégats)
- un ajout de personnages secondaires qui font des actions / cinématiques spéciales
2. Jouer avec une manette
Il est des fois plus agréable de pouvoir jouer avec une manette usb qu’avec un clavier. Essayez d’ajouter cette possibilité à votre jeu.
3. Création d’un plugin
Imaginez un plugin qui pourrait vous servir et construisez le pour pouvoir le réutiliser dans le jeu et vos futurs projets !
Ressources
- Création d’un plugin: https://docs.godotengine.org/en/stable/tutorials/plugins/editor/making_plugins.html#doc-making-plugins
4. Personalisation des graphiques
Si vous avez utilisé des graphiques existants pour construire votre jeu, amusez vous à les remplacer avec des graphismes de votre création.
Ressources
Ressources générales
- Interet et ambiguité de l’héritage multiple en C++
- Créer son premier jeu avec Godot
- Premiers pas pour créer un RPG
- Chercher et installer des plugins
- Il existe une bibliothèque graphique OpenGL, avec quelques tutoriels disponibles
- Au sujet du modèle Singleton, vous trouverez ici une représentation UML et ici un peu d’histoire et de compréhension de son utilité
- Quelques petites ressources concernant Godot