Un peu tard pour la fête, mais voici mon idée.
J'irais avec la 3e possibilité qui n'implique rien de tel que la modification de la base de code déjà existante. Cela fonctionnera si, vous allez valider (et copier) les binaires (le jeu .exe réel et les .dll associés de la compilation) quelque part dans un répertoire de sortie - par exemple avec un script post-construction. À partir de là, je suppose que nous parlons de Visual Studio 2010 et XNA Game Studio 4.0 (la procédure est très similaire pour les autres versions, il suffit de remplacer certains chiffres)
Donc, l'idée est: créer un script (.cmd) à la racine de votre projet, où réside la solution .sln, avec les étapes suivantes:
Appelez l '"invite de commandes Visual Studio 2010":
appeler "C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ vcvarsall.bat" x86
C'est pour que notre script puisse trouver les bibliothèques XNA, et tous les outils et binaires nécessaires.
Appelez la tâche MSBuild sur le projet de contenu (.contentproj):
msbuild / property: XNAContentPipelineTargetPlatform = Windows / property: XNAContentPipelineTargetProfile = Reach mygame.content / projectfile.contentproj
Vous pouvez modifier les propriétés en fonction des différentes plateformes / profils spécifiés. Vous pouvez même aller plus loin pour créer le contenu de plusieurs plateformes à la fois (Windows Phone, Xbox 360 ou Windows). Le profil peut être: Reach ou HiDef (http://msdn.microsoft.com/en-us/library/ff604995.aspx)
Copiez récursivement la sortie dans le dossier où les binaires + le jeu réel sont stockés sur le référentiel:
xcopy / d / y / i / e bin \ x86 \ Debug \ Content * .. \ game_output \ Content
Pour plus de détails sur les drapeaux, vous pouvez invoquer dans l'invite de commande: xcopy /?
. Les plus importants sont:, /d
pour copier uniquement les fichiers modifiés - dans le cas où vous avez de nombreux actifs, il est utile de ne pas copier encore et encore ceux déjà existants et non modifiés; /y
pour remplacer automatiquement les fichiers existants afin qu'ils puissent être mis à jour avec une version plus récente. J'ai utilisé xcopy
parce que la normale copy
ne peut pas copier récursivement les dossiers pour autant que je sache - et probablement vous structurez le contenu dans des dossiers et sous-dossiers. De plus, c'est mieux que la normale copy
(beaucoup de drapeaux différents).
Appelez pause
pour que le script attende l'entrée de l'utilisateur. Ceci est utile pour vérifier si la construction s'est bien passée et qu'aucune erreur n'a été rencontrée.
Désormais, les artistes (ou n'importe qui) qui modifient les fichiers de contenu doivent simplement double-cliquer sur le script .cmd et le nouveau contenu sera construit et copié dans le répertoire de sortie où se trouvent les artefacts validés, prêts à être testés.
Cependant, il y a un petit problème, pour lequel vous devrez revenir au premier point du message de David: si les artistes veulent modifier le projet de contenu en ajoutant / supprimant / déplaçant des fichiers, ils doivent le faire en ouvrant le projet dans Visual Studio (ou modifier le fichier de projet à la main, ce que je doute que quiconque ferait). Comme je l'ai dit, c'est un petit problème, car ils pourraient simplement valider les nouveaux fichiers dans le référentiel, et vous, le codeur les inclura dans le projet de contenu lorsque le code sera fait pour les gérer.
Sur cette idée, Shawn Hargreaveas a publié quelque chose sur msbuild et la construction des projets de contenu à partir de la ligne de commande: http://blogs.msdn.com/b/shawnhar/archive/2006/11/07/build-it-ahead-of-time .aspx Sa solution a été de créer un nouveau fichier, mais je pense qu'il est plus facile et plus facile à utiliser directement le fichier de projet déjà existant.
PS: Désolé pour le long post xD