XNA

Présentation de XNA

Introduction à XNA

XNA est un ensemble d'outils permettant de faciliter le développement de jeux vidéo pour :


XNA est un outil contenant :


Pour pouvoir créer un jeu vidéo avec XNA, il est nécessaire de connaitre les bases du langage C#, car le framework n'est disponible que pour ce langage. En outre, il est aussi nécessaire d'utiliser l'IDE Visual C# ou Visual Studio. Voici les différents liens permettant de les télécharger :


XNA comporte plusieurs avantages :


Malheureusement, XNA n'est pas exempt de défaut :


Architecture

Le schéma ci-dessous montre l'architecture du framework de XNA.

Nous avons ici une architecture sous forme de "couches".

La couche " Plateforme " est la couche de bas niveau de XNA. Elle constitue l'un des points forts de XNA, puisque le développeur n'a pas besoin d'écrire du code " bas niveau ".
Cette couche permet d'accéder aux ressources de la machine notamment :


La couche " Coeur du framework " représente, comme son nom l'indique, le noyau central de XNA. Elle contient l'ensemble des classes qui seront utilisées par le développeur. Ces classes constituent donc un intermédiaire entre le développeur et la couche " bas niveau " :


La couche framework étendu est constitué de deux composants importants :

La couche de plus haut niveau, "Jeux", contient votre code et vos ressources multimédia (contenu). Elle contient aussi les différentes librairies fournies par la communauté et des starters kits. Les starter kits sont des mini-jeux que les débutants peuvent manipuler afin de comprendre le fonctionnement de XNA.

Les différentes phases d'un jeu

Le schéma ci-dessous explique les différentes étapes lors de l'exécution d'un jeu XNA. Il faut noter que les éléments de votre jeu possèdent elles aussi ces différentes phases.

La phase Initialize permet d'initialiser les paramètres du jeu, de créer les composants du jeu et de récupérer des informations sur la plateforme d'exécution.


La phase LoadContent permet de charger les différentes ressources de votre jeu (textures, fichiers son etc.).


La phase Update permet de mettre à jour le modèle. Cela signifie que c'est ici que nous effectuerons les opérations logique du jeu. Cette phase permet par exemple de :


La phase Draw permet d'afficher les éléments graphiques à l'écran.


La phase UnloadContent permet de décharger les ressources qui ont été préalablement chargé par LoadContent.

Les différents types de composants

Un jeu XNA manipule trois types de composants :

Pour chaque type de composants, nous avons un container. Si un composant est ajouté à un des containers, alors les différents traitements que nous avons vu précédemment seront automatisés. Pour utiliser des composants dans votre jeu, il n'est pas nécessaire de les ajouter à ces containers ; vous pouvez donc décider de les gérer manuellement.

Les DrawableGameComponents permettent d'afficher à l'écran les différents éléments graphiques (2D et 3D) de votre jeu.

Les GameComponents permettent la gestion des éléments non graphiques de votre jeu comme les musiques et les bruitages.

Les Services permettent de décrire et de fournir au jeu les éléments nécessaires à son fonctionnement. Ils servent notamment à gérer les données. Les Services peut ainsi fournir plusieurs types d'informations :

L'utilisation des Services n'est nullement obligatoire mais permet d'avoir un code plus modulaire et plus propre. Leur fonctionnement sera détaillé par la suite.