Le point sur le Framework XNA en 2012

XNA est Framework de développement de jeu très populaire chez les développeurs indépendants car il permet de créer des jeux pour plusieurs plateformes et en plus il utilise un langage et une plateforme agréable. A l’origine XNA était prévue pour déployer ses jeux sur PC et Xbox 360 via le Xbox Live Indie Game, puis il a aussi été utilisé pour créer des jeux sur Windows Phone 7, enfin son support à été partiellement ajouté à Silverlight 4. Cependant Microsoft n’a fait aucune mise à jour du Framework depuis un moment, de plus il y a plusieurs signes qui laissent croire qu’il est mort. Alors est-il vraiment mort ? Est ce que ça vaut toujours le coup de développer avec ce fantastique Framwork ?

Le constat à mi 2012

Du côté Microsoft

Microsoft a récemment annoncé que Windows 8 ne prendrait pas en charge un jeu créé avec XNA au sein de Metro, il sera donc impossible pour un développeur de vendre un jeu créé avec Xna sur le nouveau market place. Silverlight va aussi être abandonné peut à peut, au profit des technologies Web et de WinRT (la nouvelle API proposée dans Windows 8). Enfin et pour enfoncer le clou un peu plus, la Xbox 360 arrive en fin de vie et c’est en 2013, voir 2014 que devrait arriver la nouvelle console de Microsoft, avec un nouveau kit de développement et de nouvelles régles.

Du côté des développeurs indépendants

Là c’est une tout autre affaire car on trouve énormément de jeux créés avec le Framework sur un tas de plateformes de téléchargement différentes, que ce soit sur Desura, Steam et même sur l’AppStore, les jeux ne manquent pas ! Je vous avait bien dit que ce Framework était très populaire ! Dernier fait en date avec la sortie de Bastion sur Mac (avec MonoGame).

Oui mais la question pour les années suivante se pose alors, car si aujourd’hui XNA ou ses dérivés sont effectivement largement utilisés un peu partout, c’est aussi et surtout pour les facilités de déploiement ! Un jeu créé à la base pour Windows Phone 7 peut en théorie et avec un peu d’effort être porté presque partout ! Demain ça ne sera peut être plus le cas ?

 

Du côté des Framework

Grâce au projet Mono nous avons pu voir naître des projets comme MonoGame, ExEn et plus récemment ANX qui ont apportés une compatibilité XNA sur d’autres plateformes. Aujourd’hui on compte pas moins de 3 réécritures de XNA qui sont presque toutes multiplateformes et qui proposent toutes des nouveautés très intéressentes, voir même terriblement excitantes !

MonoGame

MonoGame est le Framework XNA de référence après la version de Microsoft, en effet depuis la dernière révision il supporte la 3D ce qui a permet à des jeux comme Infinity Fly de voir le jour sur iOS ! Mais ce n’est pas tout car l’équipe travail sur le support de Metro (Windows 8). Et oui comme MonoGame est une réécriture de XNA il est facile pour les développeurs d’ajouter une nouvelle couche pour le rendu graphique et ainsi utiliser DirectX.

Pour rappel, MonoGame utilise OpenTK (donc OpenGL) pour le rendu et fonctionne avec Windows, Linux, Mac, iOS (Il faut MonoTouch) et Android (il faut MonoDroid).

ExEn

ExEn continu son petit bonhomme de chemin avec un meilleur support pour Android et surtout iOS. C’est un Framework à suivre si vous voulez faire du multiplateforme sur mobile surtout. Récemment le projet est passé sur Github (enfin ce n’est pas encore officiel). Comme pour MonoGame il vous faudra MonoTouch ou MonoDroid pour déployer vos jeux sur mobile. La version Silverlight quant-à elle fonctionne sous Windows (je n’ai aucune information sur son fonctionnement sur Mac, ni avec le plugin Moonlight).

ANX

Et voilà le monstre ! Vous savez sans doute que XNA utilise DirectX 9.0c et que cette version est dépassée depuis un moment. Vous savez aussi peut être que les performances 3D du Framework sont très mauvaises comparé à des librairies DirectX comme SlimDX mais surtout SharpDX.

XNA vs DirectX

Mais c’est là qu’entre en scène le tout nouveau et tout beau ANX (ANX Not XNA) avec un système de rendu DirectX 10, DirectX 11 (oui madame !) et OpenGL. De quoi booster considérablement les performances de nos jeux. Ce qui est très bien là aussi c’est qu’il fonctionne aussi bien sous Windows que sous Linux, bien que sur ce dernier le support soit encore expérimental (encore une fois merci Mono !).

Conversion d'un projet XNA vers ANX
Conversion d'un projet XNA vers ANX

ANX est compatible avec n’importe quelle source XNA, il faut seulement changer l’espace de nom et changer les références du projet. Il y a quelques petites subtilités encore car le projet est encore tout jeune (il a démarré en septembre 2011). Il est encore trop tôt pour se faire une idée et pour le comparer aux autres, cependant il y a des nouvelles fonctionnalités qui sont très intéressantes comme le support du capteur de mouvement Kinect et le support de Metro dans Windows 8 !

Pour finir

Nous avons vue que le Framework XNA n’est vraiment pas mort et que même si Microsoft arrête de la maintenir et passe à autre chose, la communauté Open Source sera toujours là pour continuer le travail et proposer des Framework de qualité pour les développeurs.

Il ne faut pas non plus oublier le travail qui a été fait par l’équipe du projet Mono car c’est grâce à ce travail que nous pouvons vraiment parler aujourd’hui de : Création de jeux Multiplateformes en C#

Je sais que cette dernière phrase en fera rougir certains, mais c’est un constat aujourd’hui, C# et XNA sont 2 outils incontournables pour tout développeur indépendant voulant cibler plusieurs plateformes.