developing a multi-platform network game marie saadeh – inf1495
TRANSCRIPT
![Page 1: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/1.jpg)
Developing a Multi-Platform Network Game
Marie SAADEH – INF1495
![Page 2: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/2.jpg)
Plan
• Problématique et objectif(s) du projet:▫Description du jeu.▫Ressources demandées.▫Difficultés et solutions.
• Analyse et conception:▫Structure d’un jeu.▫Diagramme de classes▫Outils employés▫Support Network
• Valeurs ajoutées.
• Démonstration.
![Page 3: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/3.jpg)
Problématique et objectif(s) du projet
![Page 4: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/4.jpg)
Problématique et objectif(s) du projet:Description du jeu:
• Type de Jeu: Jeu de combat 3D• Nombre de joueurs: 2• Caractéristiques: Support Network local, Développement
multiplateformes (PC et XBOX 360).
![Page 5: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/5.jpg)
Problématique et objectif(s) du projet:
Ressources demandées.
•Un jeu 3D nécessite la présence des ressources suivantes:
- Modèles 3D: caractères et environnement.- Animations des caractères (walk, punch…)- Framework d’intégration des modèles et des animations (XNA, DarkBasic, Game Maker…).- Codage de la logique du jeu.
![Page 6: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/6.jpg)
Problématique et objectif(s) du projet:
Difficultés et solutions.
•Un jeu 3D moderne nécessite une équipe de modelling, d’animations, de programmation… (50 à 70 personnes…).
•Solution: importer des modèles existants, et générer uniquement les animations. De plus, choisir un jeu non-complexe au niveau programmation (Combat).
![Page 7: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/7.jpg)
Analyse et conception
![Page 8: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/8.jpg)
Analyse et conception
Structure d’un jeu.
• La structure générale d’un jeu est la suivante:
▫Définition des variables▫Chargement de ressources (modeles, images…)▫Initialisation (Constructeur)▫Boucle Update (Logique du jeu)▫Boucle Draw
![Page 9: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/9.jpg)
Analyse et conception Diagramme de Classes
![Page 10: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/10.jpg)
Analyse et conception
•Outils employés:
▫3D Studio Max 2011: Importation des modeles 3D. Génération des animations. Exportation en un format .X (compatible avec XNA).
▫XNA Game Studio 4.0: Importation des ressources. Génération des classes et intégration des librairies. Codage et implémentation.
![Page 11: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/11.jpg)
Analyse et conception
•Pourquoi XNA?
▫Représente un Environment de développement riche, par intégration dans Visual Studio.
▫Support un développement multiplatformes (PC, XBOX, Mobile…) en utilisant un code commun.
▫Offre plusieurs fonctionnalités utiles pour le développement 3D (Cameras, Network…).
![Page 12: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/12.jpg)
Analyse et conceptionSupport Network
![Page 13: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/13.jpg)
Valeurs Ajoutées
![Page 14: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/14.jpg)
Valeurs Ajoutées
•Support multiplateforme (PC et XBOX 360):
▫Déploiement sur XBOX 360 en ajoutant uniquement du code relatif aux controlleurs (GamePads).
![Page 15: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/15.jpg)
Développement et prototypage
1. Importation des modèles dans 3D MAX
•Insérer un disque de jeu “XBOX 360” basé sur le moteur Unreal Engine .
•Créer une image ISO en utilisant le programme S360X.
![Page 16: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/16.jpg)
Développement et prototypage
1. Importation des modèles dans 3D MAX
![Page 17: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/17.jpg)
Développement et prototypage
1. Importation des modèles dans 3D MAX
•Utiliser wx360 pour extraire les «modèles comprimés en format .XXX:
▫Choisir l’image « ISO » créé par S360X▫Naviguer au répertoire Asset et faire
export du fichier convenable.
![Page 18: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/18.jpg)
Développement et prototypage
1. Importation des modèles dans 3D MAX
![Page 19: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/19.jpg)
Développement et prototypage
1. Importation des modèles dans 3D MAX
![Page 20: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/20.jpg)
Développement et prototypage
1. Importation des modèles dans 3D MAX
▫Extraire le fichier sélectionné par l’utilitaire umodel.
▫Ecrire la commande suivante dans ‘command prompt’ pour extraire le modèle 3D (.PSK) et les textures :
umodel –export –noanim char_catwoman.xxx
![Page 21: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/21.jpg)
Développement et prototypage
1. Importation des modèles dans 3D MAX
▫Le fichier ‘CHAR_Catwoman’ est créé dans le même directoire que Umodel.
▫Le fichier ‘CHAR_Catwoman’ contient deux répertoires importants :
SkeletalMesh : contient le modèle PSK qui sera importé dans 3DS MAX.
Texture2D : contient les ‘textures’.
![Page 22: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/22.jpg)
Développement et prototypage
1. Importation des modèles dans 3D MAX
▫Dans 3DS MAX, utiliser le « ActorX Importer » pour importer le modèle PSK
▫Il est nécessaire d’assigner le « materials path » au fichier du caractère.
![Page 23: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/23.jpg)
Développement et prototypage
1. Importation des modèles dans 3D MAX
![Page 24: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/24.jpg)
Développement et prototypage1. Importation des modèles dans 3D
MAX
![Page 25: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/25.jpg)
Développement et prototypage
1. Importation des modèles dans 3D MAX
Configurer les « textures » du caractère avant de l’exporter en format .X (DirectX).
![Page 26: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/26.jpg)
Développement et prototypage
1. Importation des modèles dans 3D MAX
Résultat:
![Page 27: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/27.jpg)
Développement et prototypage
1. Importation des modèles dans 3D MAXArchitecture de l’environnement:
![Page 28: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/28.jpg)
Valeurs AjoutéesAnimation des caractères dans 3D MAX
![Page 29: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/29.jpg)
Valeurs AjoutéesAnimation des caractères dans 3D MAX
![Page 30: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/30.jpg)
Valeurs AjoutéesAnimation des caractères dans 3D MAX
Walking:
![Page 31: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/31.jpg)
Valeurs AjoutéesAnimation des caractères dans 3D MAX
Punching
![Page 32: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/32.jpg)
Valeurs AjoutéesAnimation des caractères dans 3D MAX
Kicking
![Page 33: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/33.jpg)
Développement et prototypage
4. Importer les modèles dans XNA
▫ Diviser le caractère en des sous-parties (car XNA supporte au maximum 80 Bones) et les exporter en formats .X en utilisant “Panda DirectX Exporter”.
![Page 34: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/34.jpg)
Développement et prototypage
4. Importer les modèles dans XNA
![Page 35: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/35.jpg)
Développement et prototypage
4. Importer les modèles dans XNA
protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); // TODO: use this.Content to load your game content here //define two fighters, catwoman and batman, and load their models
Fighter catwoman = new Fighter(Content, new string[] { "catwoman/catwoman_left", "catwoman/catwoman_right" }, new string[] { "catwoman/catwoman_diff", "catwoman/catwoman_spec", "catwoman/catwoman_normhqa" }, -100);
catwoman.LoadSkinnedModel();
Fighter batman = new Fighter(Content, new string[] { "batman/batman_left", "batman/batman_right", "batman/batman_cape" }, new string[] { "batman/batman_diff", "batman/batman_spec", "batman/batman_normhqa" }, 100);
batman.LoadSkinnedModel();
//add catwoman and batman to the fighters table fighters = new Fighter[2]; fighters[0] = catwoman; fighters[1] = batman; }
![Page 36: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/36.jpg)
Démonstration
![Page 37: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/37.jpg)
Développement et prototypage
4. Importer les modèles dans XNA
public void drawMesh() { foreach (SkinnedModelMesh modelMesh in skinnedModel.Meshes) { //specify the model position and rotation
modelMesh.Effect.World =
Matrix.Identity * Matrix.CreateRotationY((float)Math.PI * parent.rotation) * Matrix.CreateTranslation(parent.translation, 0, 0);
![Page 38: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/38.jpg)
Développement et prototypage
4. Importer les modèles dans XNA
public void update(GameTime gameTime) {
//add the rotation value rotation += 0.01f;
//update the model parts
foreach (FighterMesh mesh in meshes) { mesh.update(gameTime); } }
![Page 39: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/39.jpg)
DémonstrationImporter les modèles dans XNA
![Page 40: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/40.jpg)
Développement et prototypage
5. Intégration du logique du jeu
public void walkForward() { if (getAnimation("Stand")) { setAnimationLoop("walk", false, 50); } }
public void crouch() { if (getAnimation("Stand") || getAnimation("walk")) { setAnimation("crouch", false, 50); } }
public void HP() { if (getAnimation("Stand") || getAnimation("walk")) { setAnimation("hp", false, 50); } }
![Page 41: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/41.jpg)
DémonstrationIntégration de la logique du jeu
![Page 42: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/42.jpg)
Démonstration6. Module Menu
![Page 43: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/43.jpg)
Démonstration7. Intégration du menu et Ajout de l’environnement
![Page 44: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/44.jpg)
Démonstration8. Support Network
![Page 45: Developing a Multi-Platform Network Game Marie SAADEH – INF1495](https://reader037.vdocuments.site/reader037/viewer/2022102900/551d9d94497959293b8ca600/html5/thumbnails/45.jpg)
Merci pour votre attention