Shufflepuck Legend : Conception d'un jeu vidéo simple avec CImg Blanchard Cédric Brincin Guillaume El-Ouarti Haitam Griffon Jean-Louis
Contexte Créer un clone de ce jeu. Shufflepuck Café : Jeu de « air hockey », Joueur contrôle une raquette et doit envoyer le palet dans la camp adverse. Créer un clone de ce jeu. Affichage des raquettes et du palet en 3 dimensions Jeu jouable à la souris Menu, Effets spéciaux, Musique, … Code court et portable Obligation d’utiliser CImg
Contexte Affichage effectué grâce à CImg Bibliothèque C++ Open Source, Spécialisée dans le traitement d’images, Composée d’un unique fichier entête CImg.h Réalisée par David TSCHUMPERLE, Développée au laboratoire CNRS CREYC de Caen. Code simple, compact et portable.
Plan Mise en oeuvre Moteur Physique et IA Introduction Contexte Mise en oeuvre Moteur Physique et IA Gestion de l’affichage de base Effets spéciaux Character Design Fonctionnalités Supplémentaires Conclusion
Mise en oeuvre tant que non(partie terminée ou escape frappée ou croix cliquée) faire | si joueur1 est humain | | détecter les touches frappées //détection touches/souris | | déplacer la raquette en conséquences | sinon | | évaluer mouvement de la raquette en fonction de la position du | | palet //IA | si joueur2 est humain | | détecter les touches frappées | | palet | évaluer la prochaine position du palet en fonction de son mouvement | | actuel et de l'environnement //gestion de la physique du palet | afficher état actuel de la scène //affichage de base/effets spéciaux fin tant que
Plan Mise en oeuvre Moteur Physique et IA Introduction Contexte Mise en oeuvre Moteur Physique et IA Gestion de l’affichage de base Effets spéciaux Character Design Fonctionnalités Supplémentaires Conclusion
II. Moteur physique et IA Gestion des collisions et déplacements des différents objets qui constituent le jeu. Objectifs : Déterminer les paramètres nécessaires aux mouvements Détecter les collisions et déterminer leurs effets sur les objets Bomber la face avant de la raquette Elaborer une intelligence artificielle pour affronter le joueur Gestion de la souris ou du clavier
II. Moteur physique et IA Implémentation : Position, vitesse et accélération dans « Object » Géométrie des éléments dans les classes héritées Mode de déplacement : contrôlé, pour les raquettes (IA ou joueur) calculé en fonction du mouvement suivi et des collisions, pour le palet
II. Moteur physique et IA Différents types de collisions : Rebond simple sur les bords de table Collision avec transmission de vitesse entre une raquette et le palet Bombage de la face avant des raquettes
II. Moteur physique et IA Mouvement latéral de l’IA : Détermination du point de collision éventuel (sans considérer les rebonds intermédiaires éventuels) Déplacement à vitesse adaptée Prise de risque réglable pour déterminer la zone de la raquette ou aura lieu le choc
II. Moteur physique et IA Amortis et coups accélérés : Pourcentage réglable du nombres de coups de chaque type Prise de décision lorsque le palet rentre dans une zone proche Replacement au centre lorsque le palet n’est pas à proximité
II. Moteur physique et IA Contrôle du palet par le joueur : S’il y a deux joueurs simultané, au moins l’une des raquettes se déplace au moyen du clavier (inconvénient : vitesse de déplacement constante) Contrôle optimal avec la souris Curseur caché pendant la partie Curseur constamment ramené au centre de la fenêtre
II. Moteur physique et IA Réalisation d’un prototype : Indépendant du développement de l’affichage final Permet de tester les paramètres physiques Permet le réglage des IA Démo physique
Plan Mise en oeuvre Moteur Physique et IA Introduction Contexte Mise en oeuvre Moteur Physique et IA Gestion de l’affichage de base Effets spéciaux Character Design Fonctionnalités Supplémentaires Conclusion
III. Gestion de l’affichage de base Présentation des objectifs Plateau de jeu original Nouveau plateau de jeu Afficher sur décor plat 2d deux raquettes et un palet en 3D Donner l’impression qu’ils sont posés sur la table Utiliser CImg
III. Gestion de l’affichage de base Création de la scène Déplacement des objets dans un espace à 2 dimensions + rotation pour créer l’illusion
III. Gestion de l’affichage de base Création des objets 3D La raquette Le palet 4 paramètres : une liste de points qui sont sommets des polygones, une liste de primitives regroupant 3 ou 4 sommets coplanaires pour former un polygone, une liste de couleurs donnant la couleur de chaque polygone, une liste d’opacités décrivant le niveau d’opacité des polygones.
III. Gestion de l’affichage de base Intégration dans la scène Programme de réglage
III. Gestion de l’affichage de base Intégration dans le jeu Code concernant l’affichage regroupé dans une méthode disp() de la classe Game appelée à chaque boucle de jeu, Chaque objet est positionné sur la table grâce aux coordonnées fournies par la partie gérant la physique, Vitesse d’animation contrôlée par une méthode wait() fournie par CImgDisplay. Illusion de voir les objets glisser sur la table qui restreint d’ailleurs leur mouvements
III. Gestion de l’affichage de base Résultat Plateau de jeu original Notre table de jeu
Plan Mise en oeuvre Moteur Physique et IA Introduction Contexte Mise en oeuvre Moteur Physique et IA Gestion de l’affichage de base Effets spéciaux Character Design Fonctionnalités Supplémentaires Conclusion
IV. Effets spéciaux Objectifs Réaliser des effets spéciaux utilisant la bibliothèque de traitement d’image CImg. Ces effets doivent donner du dynamisme et embellir le rendu graphique du jeu ShufflePuck.
IV. Effets spéciaux 1. Principe Les effets sont créés en 2D et son intégrés dans l’univers 3D à l’aide de Sprites. Avantage : les effets sont « liés » à l’objet 3D au niveau mouvement au niveau de la profondeur : diminution automatique de la taille. Réalisation d’animations au rendu 3D sans utilisation de mémoire importante
IV. Effets spéciaux 2. Les effets (travail préliminaire) « L’impact » Utilisation: onde de choc lors d’un rebond du palet contre la raquette ou contre les parois de la table. « la spirale » Utilisation: effet spécial de la raquette lors d’un coup spécial du type « aspiration ». Effet « spirale »
IV. Effets spéciaux 2. Les effets (travail préliminaire) « la fumée » Utilisation : lorsque la palet perd brusquement de la vitesse, c’est-à-dire lorsque la raquette recule rapidement. « concentration » Utilisation : coup spécial de la raquette, le palet reste collé à la raquette avant d’être renvoyé très rapidement. Effet « concentration »
IV. Effets spéciaux 3. Les effets Sprites « multicouches » Utilisation de 3 sprites superposés affichant chacun une animation différente. Utilisation d’un masque pour chaque image pour un rendu transparent plus réaliste. sprites superposés sprites superposés transparents
IV. Effets spéciaux 4. Les effets du Jeu Les explosions Utilisation: lorsque le palet touche les bords de la table (sprite simple) lorsque le palet sort de la table (sprite multicouches) Le coup spécial lorsqu’il y a eu un assez grand nombre d’échanges Visuel: une barre d’ énergie (image simple) une onde de force associée à la raquette (sprite associé à la raquette) Explosion du jeu Coup Spécial du jeu
Plan Mise en oeuvre Moteur Physique et IA Introduction Contexte Mise en oeuvre Moteur Physique et IA Gestion de l’affichage de base Effets spéciaux Character Design Fonctionnalités Supplémentaires Conclusion
V. Character Design 1.Principe Symbolisation de l’adversaire par des personnages Différentes attitudes suivant le déroulement de la partie Un personnage par niveau de difficulté
2 Présentation des personnages V. Character Design 2 Présentation des personnages Nounours (Niveau Facile) GeekMaster (Niveau Moyen) CaenGourou (Niveau Difficile)
Plan Mise en oeuvre Moteur Physique et IA Introduction Contexte Mise en oeuvre Moteur Physique et IA Gestion de l’affichage de base Effets spéciaux Character Design Fonctionnalités Supplémentaires Conclusion
VI. Fonctionnalités Supplémentaires Création d’un menu Création de musiques, de mélodies originales et de bruitages (Intégration dans le jeu grâce à la bibliothèque audio fmod)
VI. Fonctionnalités Supplémentaires Création d’un site de téléchargement www.shufflepuck-legend.fr.st
Résultat final
Conclusion Merci de votre attention. Des Questions ?