Qu'est-ce que XNA?


XNA (pour XNA's Not Acronymed, oui, c'est très recherché) est un ensemble d'outils facilitant le développement d'application cross-plateforme PC/Xbox360/Zune. Sa particularité, en plus d'être proposé gratuitement par Microsoft, est d'être axé communauté. On l'appel parfois "le youtube du jeux vidéo", bien que cela puisse se discuter.
En effet, vous pouvez soumettre vos créations à la communauté qui sera alors en charge de l'évaluer et de lui permettre d'être diffuser sur les Community Games de la 360.

Techniquement, c'est quoi?


Le framework XNA peut être comparé à un API tel que DirectX mais il n'en est pas un. C'est un ensemble d'outils.
Tout d'abord, XNA est une sur-couche au .NET Framework et s'appuie donc sur les langages et les librairies de .NET. Il est donc recommandé de programmer en C#.
Le framework XNA apporte des bibliothèques permettant de gérer le graphisme (sur-couche à DirectX 9), les périhpériques d'entrée (pad 360, guitar, big button pad,...), le son, le contenu et le réseau de vos applications (via Xbox Live / Game for Windows Live).
En dehors des bibliothèques, on a un environnement de développement qui se greffe entièrement à Visual Studio 2008 (Express ou non) et on peut donc profiter de toutes ses fonctions.
Une des forces du XNA (et parfois sa faiblesse), c'est le Content Pipeline. Il s'agit d'une sorte d'importateur automatique de contenu. Il permet d'importer et d'utiliser très facilement des textures, du son, des modèles et autres contenus en passant par les shaders. Le Content Pipeline va également cuisiner votre contenu pour qu'il transportable du PC à la Xbox360 ou au Zune de façon transparente (et optimisée). Le Content Pipeline compresse également vos données à la volée de façon efficace.
XNA, c'est aussi d'autres outils, tels que XACT, qui permet de cuisiner votre contenu sonore afin que celui-ci soit cross-plateforme PC/Xbox360. A noter qu'à l'origine, XACT est un outil qui fait parti du SDK de la 360 et que ce dernier n'est plus indispensable depuis XNA 3.

XNA est l'aboutissement de MDX, l'implémentation .NET de DirectX, dont le développement a été arrêté au profit de XNA.

A qui s'adresse le XNA?


Vous l'aurez peut-être deviné, XNA est principalement destiné aux développeurs. Microsoft vise en premier lieux les étudiants en informatique, les développeurs amateurs et les petits studios de développement indépendants.
Après la GDC 2008, quelques personnes s'attendaient à un outil simple, voir WYSIWYG, à l'image d'un RPG Maker. Autant faire déchanter ces personnes tout de suite. Il est largement préférable d'avoir de bonnes bases en programmation, notamment en C#, Java ou C++. Une connaissance des APIs graphiques OpenGL et/ou DirectX est également très utile à comprendre certains concepts.

De quoi ai-je besoin pour m'y mettre et combien cela coûte?


Concernant les coûts, tout dépend de ce que vous souhaitez en faire, mais de façon générale, le XNA et son utilisation sont gratuits, et un usage commercial est possible sans licence sur PC.

Pour débuter, votre PC devra disposer des logiciels suivants:


Si vous êtes étudiant dans l'enseignement supérieur, il y a de bonne chance que votre établissement soit dans le programme MSDN AA de Microsoft et vous pourrez profiter de logiciels comme les versions professionnelles de Visual Studio qui sont plus pratiques pour utiliser XNA, mais pas du tout indispensables. Dirigez vous vers le précédent lien pour plus d'infos ou aller voir le responsable informatique de votre établissement qui, en théorie, devrait pouvoir vous renseigner.

Côté matériels, il est nécessaire d'avoir une carte graphique DirectX 9.0c supportant au moins les shaders 2.0.
Posséder une manette d'Xbox 360 est un plus non négligeable (beaucoup d'exemples ou de livres n'utilisant pas le clavier). Attention à ne pas avoir des pilotes modifiés comme les XBCD qui rendent les manettes 360 incompatibles avec XNA.

Et pour tester mes applications sur une Xbox 360?


C'est la que les choses peuvent devenir contrariantes. Pour exécuter du code provenant du XNA sur une console, il est nécessaire d'avoir une licence XNA Creator Club, achetable via le Market Place pour la somme de 99€ par an, ou 49€ pour 4 mois.
Encore une fois, si vous êtes étudiants, Microsoft propose via son programme DreamSpark des logiciels de développement et autres, dont une licence Creator Club d'un an gratuite (mais uniquement valide pour débugger une appli sur 360).

Comment tester les applications des autres?


Sur PC, si vous trouvez un jeu développé avec XNA, vous n'aurez besoin que du Runtime XNA (qui est normalement intégré à l'installateur du jeu) et vous pourrez utiliser l'application sans restriction.
Pour tester sur 360, il y a deux options:

  • L'auteur met à disposition les executables Xbox sur le web, vous devrez alors les télécharger, et les transferer sur votre Xbox 360 via le XNA Game Studio.
  • Le jeu est dispo sur les Community Games de la console et vous n'avez plus qu'à le télécharger comme un jeu Xbox Live Arcade.


Depuis les Community Games, la licence Creator Club n'est utile que si vous souhaitez débugger vos créations sur 360 et les vendre.

Et maintenant, on fait des jeux!


Stop! Là, on va y aller tout en douceur, étapes par étapes. Dans les prochains temps, je vous proposerai des tutoriels de base, en commençant pour de la 2D.
Je ne vais pas vous apprendre un langage. Mes articles ne s'adresseront surement pas aux débutants complets et certains seront même d'un niveau avancé.
Je vous invite donc à vous renseigner sur la plate-forme .NET et le C# qui lui est associé.

Mon prochain billet concernera probablement un ensemble de liens et de livres qui vous permettront d'en apprendre plus, voir de commencer.
Pour ceux qui ont un train d'avance, je vous propose de réaliser votre premier jeu.

Et pour distribuer mon jeu sur le Xbox Live et le vendre ?


Direction les Community Games.
Voilà qui boucle mon introduction au XNA. Remarques et questions bienvenues.