Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme...
Transcript of Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme...
![Page 1: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/1.jpg)
Tahsin Rossanaly - IR3
![Page 2: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/2.jpg)
Plan de la présentation
● Présentation de XNA● Architecture et fonctionnement de XNA● Éléments d'architecture d'un jeu● Interaction avec l'environnement● Gestion de la 3D● Informations pratiques
![Page 3: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/3.jpg)
Présentation de XNA
● XNA = XNA 's Not Acronymed :-)
● Ensemble d'outils facilitant le développement de jeux vidéo pour :
![Page 4: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/4.jpg)
Présentation de XNA
● XNA fournit :● Un framework .net● Des outils d'intégration de contenu● De la documentation
● XNA nécessite Visual C#
![Page 5: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/5.jpg)
Présentation de XNA
● Les avantages de XNA● Multi-plateforme (au sens Microsoft)● Facilite le développement des jeux vidéo● Accessibilité● Visibilité
● Les inconvénients de XNA● Uniquement en C#● Que du Microsoft!● Actuellement, pas de Kinect.● Visibilité
![Page 6: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/6.jpg)
Architecture et fonctionnement de XNA
![Page 7: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/7.jpg)
Architecture et fonctionnement de XNA
Program.cs Game1.cs
DrawableGameComponents ServicesGameComponents
![Page 8: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/8.jpg)
Architecture et fonctionnement de XNA
Initialize
LoadContent
Update
Draw
UnloadContent
Effectue les réglages de bases(instanciations, chargement des paramètres)
![Page 9: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/9.jpg)
Architecture et fonctionnement de XNA
Initialize
LoadContent
Update
Draw
UnloadContent
Charge les ressources(textures, fichier sons etc...)
![Page 10: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/10.jpg)
Architecture et fonctionnement de XNA
Initialize
LoadContent
Update
Draw
UnloadContent
Effectue les opérations logiques(recalcul des positions, collisions etc...)
![Page 11: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/11.jpg)
Architecture et fonctionnement de XNA
Initialize
LoadContent
Update
Draw
UnloadContent
Affichage des éléments du jeu
![Page 12: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/12.jpg)
Architecture et fonctionnement de XNA
Initialize
LoadContent
Update
Draw
UnloadContent Décharge les ressources(textures, fichier son etc... )
![Page 13: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/13.jpg)
Architecture et fonctionnement de XNA
● Structure commune aux différents composants● Automatisation des traitements des composants
● Instancier le composant dans Game1 suffit
![Page 14: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/14.jpg)
Architecture et fonctionnement de XNA
● Exemple : affichage du logo de XNA qui se déplace.
● Création d'une classe qui dérive de DrawableGameComponent
● On l'instancie au niveau de Game1, dans la méthode initialize()
● DGC logo = new logo_xna(10,10,this);
● C'est le logo qui s'ajoute lui même.
![Page 15: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/15.jpg)
Architecture et fonctionnement de XNA
Initialize
LoadContent
Update
Draw
UnloadContent
On récupère le chemin de la texture
On charge la textureTexture = Game.Content.Load<Texture2D>(@chemin_texture)
On met à jour la position du logoposition+=deplacement
On dessine le logospriteBatch.begin()
spriteBatch.draw(texture, position, Color.white)spriteBatch.end()
On décharge la textureC'est fait automatiquement
![Page 16: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/16.jpg)
Architecture et fonctionnement de XNA
● Garder à l'esprit la diversité des machines● Utilisation d'un gametime pour un fonctionnement uniforme
● Diverses opérations possibles● N'afficher qu'une partie de la texture● Redimensionner la texture● Ajouter une teinte● Afficher du texte● ...
![Page 17: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/17.jpg)
Architecture et fonctionnement de XNA
● Pour gérer le son, il existe deux méthodes : ● Utiliser l'API SoundEffect (similaire au fonctionnement des
images)● Utiliser l'API XACT
![Page 18: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/18.jpg)
Architecture et fonctionnement de XNA
● XACT est un framework permettant de créer des projets audio.
● Possibilité de compresser, de modifier la vitesse du son, d'ajouter des effets de réverbération
![Page 19: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/19.jpg)
Architecture et fonctionnement de XNA● Un aperçu des possibilités
![Page 20: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/20.jpg)
Architecture et fonctionnement de XNA
● Pour utiliser notre projet Audio :
![Page 21: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/21.jpg)
Éléments d'architecture d'un jeu
● XNA fournit un jeu déjà complet : Platformer● Aucune architecture imposée
● Possibilité d'automatiser les différents traitements● Ou les gérer manuellement
● Une petite démonstration du jeu
![Page 22: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/22.jpg)
Éléments d'architecture d'un jeu
● Automatisation des traitementsGame1.cs
ServicesGameComponentsDrawableGameComponents
![Page 23: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/23.jpg)
Éléments d'architecture d'un jeu
● Utilisation des services pour le contrôle du jeu● Nécessité de séparer les contrôles
Update()
Je cherche un service me permettant de voir quelle action a été commandé par le joueur
![Page 24: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/24.jpg)
Éléments d'architecture d'un jeu
● Avantages des services :● On n'utilise pas de méthodes statiques● Une seule instanciation● On ne passe plus les contrôles en paramètres
![Page 25: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/25.jpg)
Eléments d'architecture d'un jeu
● XNA ne possède pas de méthodes pour gérer la physique (collisions, gravité etc...)
● Il faut la développer soit même ● Utiliser un des nombreux moteurs existants(JiggleX,
BulletX, FarseerPhysics...)
![Page 26: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/26.jpg)
Éléments d'architecture d'un jeu
● Exemple d'utilisation du moteur physique FarseerPhysics
● Création d'un PhysicsSimulator● On le passe aux éléments graphiques de notre jeu● Ceux-ci auront chacun un corps (body) qui leur permettra
de les gérer suivant la gravité, les éléments qui appliquent une force dessus
![Page 27: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/27.jpg)
Éléments d'architecture d'un jeu
● Exemple de code
![Page 28: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/28.jpg)
Interaction avec l'environnement
Support Jeu en réseau
Périphérique de stockage
Compte Xbox Live ou Windows Live
JEU
![Page 29: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/29.jpg)
Interaction avec l'environnement
● Afficher sa GamerCard
![Page 30: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/30.jpg)
Interaction avec l'environnement
● Pour afficher la gamer Card :
![Page 31: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/31.jpg)
Interaction avec l'environnement
● Gestion du jeu en réseau (local ou en ligne)
Initialize
Update (envoi)
Update(réception)
NetworkSession.Create(NetworkSessionType.SystemLink,2,2)NetworkSession.Find(NetworkSessionType.SystemLink,2,null)
Envoi des données via packetWriter.write(...) et session.gamer.sendData(...)
Réception des données via gamer.receiveData(...)Et packetReader.read(...)
![Page 32: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/32.jpg)
Interaction avec l'environnement
● Aucun besoin de synchronisation, ni de threads● Choix de la politique d'envoi (fiable, non fiable,
ordonné, désordonné...)
![Page 33: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/33.jpg)
Gestion de la 3D
● Diverses possibilités : ● Gestion de la caméra● Rotation des objets● Divers effet(brouillard, lumière...)● Personnaliser les effets grâce à HLSL (High Level Shader
Language)
![Page 34: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/34.jpg)
Gestion de la 3D
Initialize
LoadContent
Update
Draw
On récupère le chemin du modèle 3D
On charge le modèleTexture = Game.Content.Load<Model>(@chemin_modèle)
On fait tourner notre modèlerotation+=0.1f
On dessine le modèle : Pour chaque modèle, on parcourt les Meshes
(objet 3D faisant partie de l'objet)Et pour chaque Meshes, on applique divers effets.
![Page 35: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/35.jpg)
Gestion de la 3D
● HLSL permet de programmer des shaders.● Les shaders sont des instructions envoyées à la
carte graphique pour gérer divers effets 2D et 3D (lumière, ombre, brouillard etc...)
● XNA fournit déjà des shaders basiques (que nous utilisons sans nous en rendre compte)
![Page 36: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/36.jpg)
Informations pratiques
● Quelques astuces pour la conception du jeu : ● Développer d'abord pour PC (plus simple et de toute façon
on peut réadapter pour les autres plateformes)● Une architecture suffisamment souple pour pouvoir
facilement adapter le jeu à chaque plateforme.● Une architecture suffisamment souple pour pour pouvoir le
faire évoluer facilement (version Noel, version Halloween etc...)
● Un nom bien pensé
![Page 37: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/37.jpg)
Informations pratiques● Test sur Xbox 360
● Téléchargement de XNA Game Studio Connect à partir de la console
● Génération d'une clé de connexion● Ajout de la console Dans XNA Game Studio Device Center● Compilation● Exécution
![Page 38: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/38.jpg)
Informations pratiques
● Mise en ligne pour Xbox 360 et Windows phone● Nécessite un abonnement payant au XNA Creators Club● Soumission du jeu● Phase de Peer Review● Mise à disposition du jeu● Recueil du bénéfice (70% du prix du jeu)
![Page 39: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/39.jpg)
Conclusion
● XNA permet de faciliter le développement de jeux vidéo pour les plateformes Microsoft
● XNA possède une architecture modulaire.● Une stratégie différente de celles de ses
concurrents
![Page 40: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/40.jpg)
Des questions?
![Page 41: Plan de la présentation - dr/XPOSE2010/XNA/expose_IR3... · Les avantages de XNA Multi-plateforme (au sens Microsoft) Facilite le développement des jeux vidéo](https://reader030.fdocument.pub/reader030/viewer/2022021712/5b9dd36a09d3f2ed218ced62/html5/thumbnails/41.jpg)
Merci de votre attention!