10 mar. 2008

Exploration de XNA : vers XNA Game Studio 2.0

Jusqu'ici, les projets de cette série étaient compilés avec XNA Game Studio 1.0, puis avec la version refresh. Si vous avez installé la dernière mouture de XNAGS, vous vous êtes certainement rendu compte qu'il vous était impossible de les charger. Petites explications...

Logo XNA [Télécharger Visual C# 2005 Express Edition] [Télécharger XNA Game Studio 2.0] [Télécharger le Service Pack 1 pour VC# 2005 EE] [TorqueX, de GarageGames.com] [XNA Creators Club] [Forum MSDN XNA Game Studio] [GameDev.Net - Plenty of 1s and 0s]

Un nouveau format de projet

La structure d'un projet XNA a changé entre les version 1.0 de XNA GS et la version 2.0. For heureusement, Microsoft a crée un utilitaire qui permet de modifier les projets directement dans Visual C# 2005 - le Project Upgrade Wizard. Utiliser cet assistant demande de suivre quelques étapes un peu laborieuses, mais globalement, il permet de simplifier le travail. Le gros point noir vient du fait qu'il faut traiter un projet à la fois - alors qu'il eut été préférable de traiter tous les projets d'une solution en même temps (ce qui aurait d'ailleurs permit à l'assistant de gérer les dépendances intra-solution). Mais ne boudons pas l'outil - il s'est révélé extrêmement pratique, et l'ensemble des projets de SpriteLib ont été importé en quelques minutes.

Suite à cet import (et sans aucune autre modification), un Rebuild de la solution complète a généré quelques erreurs attendues :

  • les dépendances intra-solution ayant été supprimées, un bon nombre d'erreurs étaient liées à ce problème (rapidement corrigé).
  • plusieurs warning de type deprecated ... ont été générés.

Un nouveau framework

... implique un certain nombre de changement. L'un des plus important a trait à la classe Game, puisque les méthodes Game.LoadGraphicContent() et Game.UnloadGraphicContent() ont changé de nom : elles sont devenues Game.LoadContent() et Game.UnloadContent(). Bien sûr, la liste des changements ne s'arrête pas là - quoi qu'on notera que la plupart des changements sont en fait des additions au framework, de telle sorte que le code écrit précédemment reste valide. Vous pouvez trouver la liste complète des changements sur le site web de Microsoft.

En fait, seuls quelques changements vous empêcherons de compiler votre code :

  • quelques énumérations ont été supprimée (par exemple, ResourceUsage - qui est remplacée par de nouvelles énumérations : TextureUsage, BufferUsage, ...)
  • de fait, certains constructeurs se sont vu modifiées. C'est notamment le cas de Texture2D, Texture3D et TextureCube.
  • certaines méthodes ont été déplacées - BeginShowStorageDeviceGuide et EndShowStorageDeviceGuide sont maintenant dans GamerServices.

Si votre projet n'est pas touché par ces modifications, il compilera et sera lié sans aucun problème avec le framework XNA 2.0 - y compris si le compileur signale des warning.

Conclusion

Ce fut un billet court, mais bref, dont l'unique but était de vous donner une archive projet compatible avec XNA GS 2.0. Si vous êtes resté a l'ancienne version de XNA GS, je vous conseille vivement de changer et d'opter pour la nouvelle version - plus complète, et supportant les communications réseau via une toute nouvelle API.

Notes

Ce code représente un work in progress. Il est en cours de modification afin de supporter le prochain article de la série, qui sortira dans quelques temps (plus ou moins quelques jours).

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Fil des commentaires de ce billet