Latest article: Exporter des données depuis Excel

XNA : un premier programme

Attention: cet article est désormais obsolète

Voici le premier article de ce qui, j’espère, sera une longue série dédiée à XNA.

Pour rappel, XNA est une surcouche à l’API graphique DirectX développée par Microsoft. Elle sert d’interface commune au développement de jeux vidéo sur PC Windows, XBox 360 et Zune (pour la version 3 à venir).

Ainsi XNA permet de créer ses propres jeux en C# et en un temps record, et ce avec beaucoup de facilité.

Nous allons donc voir dans un premier temps, comment mettre en place XNA 2.0 avec Visual Studio 2008.

A propos du Content Pipeline

Ceux qui connaissent déjà XNA ont dû s’arrêter sur ma phrase précédente. En effet, XNA Game Studio 2.0 n’est pas sensé être compatible avec Visual Studio 2008.
Il convient en réalité de différencier XNA et XNA Game Studio.

XNA Game Studio est une extension de l’IDE Visual Studio, fait pour faciliter le développement. Il offre notamment le Content Pipeline, mécanisme sensé vous aider à gérer vos ressources.

Or si le Game Studio n’est pas compatible avec Visual Studio 2008, XNA l’est. Après tout, XNA n’est rien de plus qu’un ensemble d’assemblies.

Dans cette série d’articles, nous nous passeront entièrement du Content Pipeline pour trois raisons :

  1. Si le Content Pipeline est très pratique pour développer rapidement des petits jeux, il se révèle n’être pas adapté à des jeux plus complexes ou chargeant les ressources dynamiquement.
  2. Le Content Pipeline masque une bonne partie du travail, travail qu’il est important de voir au moins une fois pour bien tout comprendre à la création de jeux.
  3. J’ai Visual Studio 2008, pas le 2005

Je vous l’accorde, la troisième raison est tout sauf bonne.

Télécharger et installer XNA

La première chose à faire est bien entendu de se procurer XNA.

Comme nous n’utiliserons pas le Content Pipeline, nous pouvons nous passer de Visual Studio 2005 et de XNA Game Studio 2.0.

Mais soyons clair : il est bien plus simple (quoique bien plus long) d’installer Visual C# Express 2005 et XNA Game Studio 2.0, quitte à tout désinstaller une fois les assemblies récupérées, que de les récupérer à partir du XNA Redistributable.

Toutefois, il contient toutes les assemblies nécessaires pour créer un projet XNA 2.0.

Notez que tous ceux qui voudront jouer à votre jeu devront installer ce package (sauf si ils ont Game Studio 2.0). En plus bien entendu de DirectX 9.0c et le .NET Framework (2 ou plus).

Donc rendez vous sur la page de téléchargement de XNA Framework Redistributable 2.0

Après l’installation, les assemblies seront trouvables dans le GAC :

Les assemblies que nous cherchons

Microsoft.Xna.Framework et Microsoft.Xna.Framework.Game sont les seules assemblies dont nous ayons besoin.

Les autres n’apparaitront surement pas chez vous si vous n’avez pas installé Game Studio 2.0.

Référencer les assemblies XNA

Première étape : la création d’un nouveau projet C#.

Je pense que vous savez faire, cet article s’adressant à ceux connaissant déjà la mécanisme du C# et de la programmation orientée objet.

Une fois votre projet créer, il faut ajouter les assemblies.

Là, deux solutions s’offrent à vous :

  • Ou bien elles apparaissent dans le GAC depuis Visual Studio
  • Ou bien elles n’y sont pas et il faudra aller les chercher à la main

Je vais illustrer les deux cas :

Les assemblies sont dans le GAC : tout va bien

Dans l’autre cas, il faudra d’abord les copier/coller dans un autre dossier.

Ce qui n’est pas si simple, puisque impossible avec l’explorateur Windows. Il faudra pour cela utiliser la console.

Je ne vais pas faire un cour de Batch, sachez juste que les DLL recherchées sont dans les dossiers :

C:\WINDOWS\assembly\GAC_32\Microsoft.Xna.Framework\2.0.0.0__6d5c3888ef60e27d\Microsoft.Xna.Framework.dll

C:\WINDOWS\assembly\GAC_MSIL\Microsoft.Xna.Framework.Game\2.0.0.0__6d5c3888ef60e27d\Microsoft.Xna.Framework.Game.dll

Attention, la partie “2.0.0.0__6d5c3888ef60e27d” peut changer, elle m’a tout l’air de contenir un hash. Le mieux est que vous naviguiez manuellement avec cd et dir.

Une fois dans les bons dossiers :

copy Microsoft.Xna.Framework.dll “C:\Xna assemblies”

Et voilà ! Vous avez enfin vos DLL :

Les DLL dans un dossier (facilement) accessible

Avouez que cela aurait été plus simple pour moi de les mettre en téléchargement. Mais le contrat EULA de Microsoft est ce qu’il est, et il interdit ce genre de pratiques.

De retour dans Visual Studio, il faudra choisir l’onglet Browse :

Ajout des assemblies dans Visual Studio

Enfin, nous y voilà.

On va pouvoir commencer à programmer un peu.

La classe Game

Bien qu’il soit possible d’embarquer XNA dans une WinForm, ce n’est pas notre but ici. Finit les manipulations hasardeuses et délicates : on va implémenter la classe Game de XNA.

Pour cela, ajoutez une classe GameManager à votre projet.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

namespace ArticleXNA
{
	class GameManager : Game
	{

		protected override void Initialize ()
		{
			base.Initialize ();
		}

		protected override void Update ( GameTime gameTime )
		{
			base.Update ( gameTime );
		}

		protected override void Draw ( GameTime gameTime )
		{
			base.Draw ( gameTime );
		}

	}
}

Et dans Main :

        static void Main ( string[] args )
        {
            GameManager game = new GameManager ();
            game.Run ();
        }

A ce stade vous devriez déjà avoir une fenêtre vide :

Notre première application

Ce sera tout pour ce premier article. Nous verrons l’affichage au travers de la 2D dans le prochain chapitre.

En attendant, si vous avez des soucis pour installer XNA, les commentaires sont grand ouverts et accueillent toute question / remarque.

Mentions

Discussion

    Reply