45
Developing a Multi-Platform Network Game Marie SAADEH – INF1495

Developing a Multi-Platform Network Game Marie SAADEH – INF1495

Embed Size (px)

Citation preview

Page 1: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

Developing a Multi-Platform Network Game

Marie SAADEH – INF1495

Page 2: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

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

Problématique et objectif(s) du projet

Page 4: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

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

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

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

Analyse et conception

Page 8: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

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

Analyse et conception Diagramme de Classes

Page 10: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

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

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

Analyse et conceptionSupport Network

Page 13: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

Valeurs Ajoutées

Page 14: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

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

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

Développement et prototypage

1. Importation des modèles dans 3D MAX

Page 17: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

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

Développement et prototypage

1. Importation des modèles dans 3D MAX

Page 19: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

Développement et prototypage

1. Importation des modèles dans 3D MAX

Page 20: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

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

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

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

Développement et prototypage

1. Importation des modèles dans 3D MAX

Page 24: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

Développement et prototypage1. Importation des modèles dans 3D

MAX

Page 25: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

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

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

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

Valeurs AjoutéesAnimation des caractères dans 3D MAX

Page 29: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

Valeurs AjoutéesAnimation des caractères dans 3D MAX

Page 30: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

Valeurs AjoutéesAnimation des caractères dans 3D MAX

Walking:

Page 31: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

Valeurs AjoutéesAnimation des caractères dans 3D MAX 

Punching

Page 32: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

Valeurs AjoutéesAnimation des caractères dans 3D MAX 

Kicking

Page 33: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

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

Développement et prototypage

4. Importer les modèles dans XNA

Page 35: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

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

Démonstration

Page 37: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

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

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

DémonstrationImporter les modèles dans XNA

Page 40: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

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

DémonstrationIntégration de la logique du jeu

Page 42: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

Démonstration6. Module Menu

Page 43: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

Démonstration7. Intégration du menu et Ajout de l’environnement

Page 44: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

Démonstration8. Support Network

Page 45: Developing a Multi-Platform Network Game Marie SAADEH – INF1495

Merci pour votre attention