Deploying

Eventually, the games should be deployed.

= Making Xbox .ccgame builds =
 * 1) Make sure that the pricing in the code reflects the current price of the game (search for "priceInDollars" in HiveMainMenuScreen.cs).
 * 2) Make sure the game has been tested and built with "Release" selected and the "Xbox 360" target (these are dropdowns at the top of Visual Studio).
 * 3) Right click on the project name of the Xbox 360 project for the game.
 * 4) Select "Package as an XNA Creators Club Game"
 * 5) Look in your project's [project]/bin/Xbox 360/Release directory for a .ccgame file with a timestamp that shows it was just created.
 * 6) Rename the .ccgame file to indicate the date and what the build is (eg: whether it's a test, a gold release, the AI upgrade, etc.). This file-name shows up in the Xbox AppHub dashboard, so it's important for it to be descriptive or you might accidentally re-submit and old version (I did that... and it meant we had to wait for the 7 day waiting period to end before we could submit the actual file!).
 * 7) Upload to AppHub.

= Making PC-Installable Builds = We use the ClickOnce installer features provided by Visual Studio Express to make the builds for the Hive Alpha.


 * 1) Make sure that the definition of "ALLOW_GAMERSERVICES_ON_PC_FOR_TESTING" is commented OUT (so it doesn't get defined) in all places that it is #defined.
 * 2) In the solution explorer, click on the project that you want to build (eg: "Windows Copy of Hive")
 * 3) In the top of the solution explorer, there is a "Properties" button. Click that.
 * 4) In the "Publish" sub-tab:
 * 5) Choose a directory to build to (do NOT change this for different versions of the same app).
 * 6) Choose "The application is available offline as well" radio button
 * 7) Set a reasonable Publish Version
 * 8) Check the "Automatically increment revision with each publish" option.
 * 9) If you want to specify a major/minor version, type that into the appropriate boxes near the bottom.
 * 10) Click "Publish Now" and it will build (this takes several seconds).
 * 11) In the build directory, if this is not your first build, there will be directories inside of "Application Files" from the old versions. To prevent the zip-file/user-download/whatever from being bloated, delete the directories from older versions.
 * 12) Once the package is built and old Application Files directories are deleted, zip up the Hive_alpha directory if desired.

Troubleshooting

 * If you get an error along the lines of this:
 * Error 2 An error occurred while signing: Failed to sign bin\x86\Debug\app.publish\\setup.exe. SignTool Error: The signer's certificate is not valid for signing. SignTool Error: An error occurred while attempting to sign: bin\x86\Debug\app.publish\\setup.exe
 * The actual cause is that the signing certificate may have expired. Go to the 'Signing' tab in the project properties and look at the expiration date. If it is expired, click the "Create Test Certificate" button to make a new certificate.

Additional Steps for the Alpha

 * Update the "Known Bugs" thread on the forum.
 * Upload the new .zip file to production (bluelinegamestudios.com/hive/alpha/builds)
 * In bluelinegamestudios.com/hive/alpha/index.php:
 * Write the changes in the table.
 * Remove the 'active' class from the previous top-entry and put a strike-through (&lt;s>&lt;/s>) around its download link.
 * Add (and test) the new download link.
 * Make sure the link to the current sprint (in the instructions) is up-to-date and public (test in an incognito window to make sure that your trello session isn't the only reason you can view the sprint).
 * After downloading the new build to a test computer, make sure it installs & runs smoothly. The build will almost never work the first time (especially if it's been a while since you made a PC installer version of it).
 * Email all of the Alpha testers with a link to the alpha download-page.

NOTE:
 * The installer will only update to new versions if the directory name is the same, this is why you should not change the build directory name for different versions.