Ein bisschen zu spät zur Party, aber hier ist meine Idee.
Ich würde mit der 3. Möglichkeit gehen, die nichts anderes beinhaltet, als die bereits vorhandene Codebasis zu modifizieren. Dies funktioniert, wenn Sie die Binärdateien (die eigentliche Spiel-EXE-Datei und die zugehörigen DLL-Dateien aus der Kompilierung) irgendwo in einem Ausgabeverzeichnis festschreiben (und kopieren) - beispielsweise mit einem Post-Build-Skript. Ab jetzt gehe ich davon aus, dass es sich um Visual Studio 2010 und XNA Game Studio 4.0 handelt. (Die Vorgehensweise ist für andere Versionen sehr ähnlich. Es müssen nur einige Nummern ersetzt werden.)
Die Idee ist also: Erstellen Sie ein Skript (.cmd) im Stammverzeichnis Ihres Projekts, in dem sich die .sln-Lösung befindet, mit den folgenden Schritten:
Rufen Sie die "Visual Studio 2010-Eingabeaufforderung" auf:
Rufen Sie "C: \ Programme (x86) \ Microsoft Visual Studio 10.0 \ VC \ vcvarsall.bat" x86 auf
Dies ist erforderlich, damit unser Skript die XNA-Bibliotheken sowie alle erforderlichen Tools und Binärdateien finden kann.
Rufen Sie die MSBuild-Aufgabe für das Inhaltsprojekt (.contentproj) auf:
msbuild / property: XNAContentPipelineTargetPlatform = Windows / property: XNAContentPipelineTargetProfile = mygame.content / projectfile.contentproj erreichen
Sie können die Eigenschaften durch Angabe verschiedener Plattformen / Profile ändern. Sie können sogar noch weiter gehen, um den Inhalt für mehrere Plattformen gleichzeitig zu erstellen (Windows Phone, Xbox 360 oder Windows). Das Profil kann sein: Reach oder HiDef (http://msdn.microsoft.com/en-us/library/ff604995.aspx)
Kopieren Sie die Ausgabe rekursiv in den Ordner, in dem die Binärdateien + das aktuelle Spiel im Repository gespeichert sind:
xcopy / d / y / i / e bin \ x86 \ Debug \ Content * .. \ game_output \ Content
Ausführliche Informationen zu den Fahnen, können Sie in der Eingabeaufforderung aufrufen: xcopy /?
. Die wichtigsten sind: /d
Nur geänderte Dateien kopieren - wenn Sie viele Assets haben, ist es nützlich, die bereits vorhandenen und nicht geänderten nicht immer wieder zu kopieren. /y
zum automatischen Überschreiben vorhandener Dateien, damit diese mit einer neueren Version aktualisiert werden können. Ich habe verwendet, xcopy
weil der normale copy
Ordner meines Wissens nicht rekursiv kopieren kann - und wahrscheinlich strukturieren Sie den Inhalt in Ordnern und Unterordnern. Außerdem ist es besser als normal copy
(viele verschiedene Flaggen).
Rufen Sie auf, pause
damit das Skript auf Benutzereingaben wartet. Dies ist nützlich, um zu überprüfen, ob der Build in Ordnung war und keine Fehler aufgetreten sind.
Jetzt müssen die Künstler (oder alle anderen), die die Inhaltsdateien ändern, nur auf das .cmd-Skript doppelklicken. Der neue Inhalt wird erstellt und in das Ausgabeverzeichnis kopiert, in dem die festgeschriebenen Artefakte zum Testen bereitstehen.
Es gibt jedoch ein kleines Problem, für das Sie auf den ersten Punkt von Davids Beitrag zurückgreifen müssen: Wenn die Künstler das Inhaltsprojekt durch Hinzufügen / Entfernen / Verschieben von Dateien ändern möchten, müssen sie dies tun, indem sie das öffnen Projekt in Visual Studio (oder Bearbeiten der Projektdatei von Hand, was ich bezweifle, dass jemand tun würde). Wie ich bereits sagte, ist dies ein kleines Problem, da sie einfach die neuen Dateien im Repository festschreiben können, und Sie, der Codierer, werden sie in das Inhaltsprojekt aufnehmen, wenn der Code für diese fertig ist.
Auf dieser Idee veröffentlichte Shawn Hargreaveas etwas über msbuild und das Erstellen der Inhaltsprojekte über die Befehlszeile: http://blogs.msdn.com/b/shawnhar/archive/2006/11/07/build-it-ahead-of-time .aspx Seine Lösung bestand darin, eine neue Datei zu erstellen, aber ich denke, es ist einfacher und einfacher, die bereits vorhandene Projektdatei direkt zu verwenden.
PS: Sorry für den langen Beitrag xD