Aaron Stebner's WebLog

Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio

October, 2010

  • Aaron Stebner's WebLog

    Windows Phone Developer Tools October 2010 Update is now available for download

    • 0 Comments

    As announced earlier this week in this post on the Windows Phone Developer Blog, the Windows Phone Developer Tools October 2010 Update is now available for download.  This update is a patch, so you must install the Windows Phone Developer Tools before you will be able to install the update.

    This update includes the following components:

    • The Windows Phone Connect tool – this tool allows the Windows Phone Developer Tools to connect to a Windows Phone device without requiring the Zune software to be running; this allows developers to debug media playback scenarios on a device
    • The Windows Phone capability detection tool – this tool analyzes your Windows Phone game or application project and detects the capabilities that are required; this allows developers to update their WMAppManifest.xml file so they can test their game or application with the same set of capabilities that will be provided by the ingestion process
    • An updated version of the Bing Maps control

    Here are some links to help you get started with the Windows Phone Developer Tools October 2010 Update:

  • Aaron Stebner's WebLog

    XNA Game Studio 4.0 Japanese language pack now available for download

    • 0 Comments

    At the end of last week, the XNA Game Studio team released the XNA Game Studio 4.0 Japanese language pack.  I wanted to provide some more information about this language pack and some download links to help you get started.  My colleague Yuichi Ito has also posted an introduction to the XNA Game Studio 4.0 Japanese language pack in Japanese on his blog at http://blogs.msdn.com/b/ito/archive/2010/10/21/xna-game-studio-4-0-language-pack-released.aspx.

    XNA Game Studio 4.0 Japanese language pack links

    Here are some links to help you get started if you want to use the XNA Game Studio 4.0 Japanese language pack:

    How to install the XNA Game Studio 4.0 Japanese language pack

    You must first install XNA Game Studio 4.0 before installing the Japanese language pack.  You can install XNA Game Studio 4.0 by using one of the following installers:

    • Windows Phone Developer Tools – this will allow you to develop games for Windows, Xbox 360 and Windows Phone 7.  The Windows Phone Developer Tools is currently only available in English, French, Italian, German, and Spanish.
    • XNA Game Studio 4.0 standalone installer – this will allow you to develop games for Windows and Xbox 360.  You must install a compatible version of Visual Studio 2010 (Visual C# 2010 Express or Visual Studio 2010 Professional or better) before installing the standalone version of XNA Game Studio 4.0.

    What is included in the XNA Game Studio 4.0 Japanese language pack

    The XNA Game Studio 4.0 Japanese language pack provides localized versions of the following XNA Game Studio 4.0 components:

    • UI components in the Visual Studio IDE that are installed by XNA Game Studio 4.0 including menu items, toolbars, property pages
    • XNA Game Studio 4.0 project templates and item templates
    • IntelliSense comments for XNA Framework APIs
    • XNA Game Studio 4.0 documentation
    • XNA Game Studio Device Manager
    • MSBuild tasks and targets
  • Aaron Stebner's WebLog

    Mailbag: How to perform a silent install of the Visual C++ 2010 redistributable packages

    • 45 Comments

    Question:

    You previously posted lists of command line switches to perform silent and unattended installations of the Visual C++ 2005 redistributable and the Visual C++ 2008 redistributable.  How can I perform silent and unattended installations of the Visual C++ 2010 redistributable?

    Answer:

    The Visual C++ 2010 redistributable packages (vcredist_x86.exe, vcredist_x64.exe and vcredist_ia64.exe) support the following command line installation options.

    The examples below use the file named vcredist_x86.exe, but you can substitute the x64 or ia64 versions of the EXEs with equivalent command lines to achieve the same behavior for them as well.

    Silent install

    This option will suppress all UI and perform an install.

    <full path>\vcredist_x86.exe /q /norestart

    For example, if you download vcredist_x86.exe to a folder named c:\vc2010redist, then the command line would look like this:

    c:\vc2010redist\vcredist_x86.exe /q /norestart

    Unattended install

    This option will display a progress dialog (but requires no user interaction) and perform an install.

    <full path>\vcredist_x86.exe /passive /norestart

    For example, if you download vcredist_x86.exe to a folder named c:\vc2010redist, then the command line would look like this:

    c:\vc2010redist\vcredist_x86.exe /passive /norestart

    Silent repair

    This option will suppress all UI and perform a repair.

    <full path>\vcredist_x86.exe /q /repair /norestart

    For example, if you download vcredist_x86.exe to a folder named c:\vc2010redist, then the command line would look like this:

    c:\vc2010redist\vcredist_x86.exe /q /repair /norestart

    Silent uninstall

    This option will suppress all UI and perform an uninstall.

    <full path>\vcredist_x86.exe /q /uninstall /norestart

    For example, if you download vcredist_x86.exe to a folder named c:\vc2010redist, then the command line would look like this:

    c:\vc2010redist\vcredist_x86.exe /q /uninstall /norestart

    A note about reboots

    All of the examples above use the /norestart switch to suppress reboots after the setup process completes.  The /norestart switch does not eliminate the need to reboot entirely – it just gives the calling process control over when to schedule the reboot if one is needed due to files being in use during setup.  If you run the Visual C++ 2010 redistributable setup and use the /norestart switch, you must check the exit code returned by the setup process and handle it accordingly in the calling process.  Here are the possible exit codes:

    • Exit code 0 means that setup succeeded and no reboot is needed.
    • Exit code 3010 means that setup succeeded and a reboot is needed to complete installation.
    • Any other exit code means that setup failed.

    Related link

  • Aaron Stebner's WebLog

    French, German, Italian and Spanish versions of Windows Phone Developer Tools now available for download

    • 0 Comments

    At the end of last week, the French, German, Italian and Spanish versions of the Windows Phone Developer Tools were released.  These versions of WPDT contain localized versions of the developer tools (including XNA Game Studio 4.0 components) and the Windows Phone Emulator.  You can only install one language of the Windows Phone Developer Tools on a computer at a time, so if you already have the English version installed and want to use one of these localized versions, you will need to uninstall the English version first.

    Here are links that you can use to download and get started using each language version of the Windows Phone Developer Tools.

    French Windows Phone Developer Tools links

    German Windows Phone Developer Tools links

    Italian Windows Phone Developer Tools links

    Spanish Windows Phone Developer Tools links

  • Aaron Stebner's WebLog

    Link to more information about support for XNA Game Studio 4.0 in the Xbox LIVE Indie Games publishing pipeline

    • 0 Comments

    There was an item posted on the XNA Game Studio team blog today that I wanted to link to in order to raise visibility because it helps answer some questions that have been asked frequently since XNA Game Studio 4.0 shipped last month.  The post is located at http://blogs.msdn.com/b/xna/archive/2010/10/12/xna-game-studio-4-0-submissions-for-xbox-live-indie-games.aspx, and it provides more detail about the timeframe when the Xbox LIVE Indie Games submission pipeline will start accepting games created with XNA Game Studio 4.0 and when it will stop accepting games created with XNA Game Studio 3.1.

    Here is a summary of the information in that post:

    • Today, the Xbox LIVE Indie Games pipeline only accepts XNA Game Studio 3.1 games for play-testing, peer review and publishing.
    • The final version of XNA Game Studio Connect for XNA Game Studio 4.0 will be released later this year.
    • When it is released, the Xbox LIVE Indie Games pipeline will start accepting XNA Game Studio 4.0 games.
    • There will be a 90 day window where the Xbox LIVE Indie Games pipeline will accept both XNA Game Studio 3.1 and 4.0 games.
    • After the 90 days are up, the Xbox LIVE Indie Games pipeline will only accept XNA Game Studio 4.0 games.

    If you are just getting started with an Xbox 360 game using XNA Game Studio or have a game in progress that you do not plan to be ready to publish on Xbox LIVE Indie Games by the end of this year, then we recommend starting with XNA Game Studio 4.0 or porting your game to XNA Game Studio 4.0 to prepare for the above changes to the Xbox LIVE Indie Game pipeline.

    As always, stay tuned to the XNA Game Studio team blog and the App Hub site for future announcements about the final release date for XNA Game Studio Connect for XNA Game Studio 4.0 and the opening of the Xbox LIVE Indie Games pipeline for XNA Game Studio 4.0 games.

  • Aaron Stebner's WebLog

    How to localize the title of a Windows Phone game created with XNA Game Studio 4.0

    • 0 Comments

    Note - there is now a simpler set of steps to create a game with a localized title, and I have written a newer blog post with updated steps.  Please refer to http://blogs.msdn.com/b/astebner/archive/2010/12/10/10103522.aspx for more details.

    Recently, a user posted a question on the XNA forums asking how to localize the name of their Windows Phone game.  They were attempting to follow the How to: Localize an Application Title for Windows Phone tutorial in the Windows Phone documentation, but were running into some issues.  That tutorial contains instructions for localizing the title of a Silverlight application, but the steps are a bit different for XNA games.  I also found some of the steps to be vague and/or confusing while I tried to work through them on my own.

    I’ve created an updated set of steps that can be used to localize the name of a Windows Phone game created with XNA Game Studio 4.0.  I also uploaded a sample solution that implements these steps.

    The steps below and the sample solution that I have created both require that you use Visual Studio 2010 Professional, Premium or Ultimate because the steps require a version of Visual Studio that supports creating a solution that contains both C++ and C# projects.  The VS 2010 Express Editions do not support this.

    Step 0 – Create a Windows Phone game project

    1. Start Visual Studio 2010.
    2. Click on File | New | Project..., select Visual C# | XNA Game Studio 4.0 and choose Windows Phone Game (4.0).

    Step 1 – Create a language-neutral native resource DLL

    Note - the name of the native resource DLL is important in this scenario.  It must be named AppResLib.dll, and the localized versions must be named AppResLib.dll.*.mui.  If they are named differently, your game will be rejected by the Windows Phone Marketplace certification process. 

    1. Right-click on the solution that contains your Windows Phone Game project and choose Add | New Project...
    2. Select Visual C++ | Win32 | Win32 Project and name it AppResLib.
    3. In the Win32 Application Wizard, select DLL and check the Empty Project check box, then click Finish.
    4. Right-click on the AppResLib project in the Visual Studio solution explorer and choose Properties.
    5. Change the Configuration drop-down from Active (Debug) to All Configurations.
    6. Expand Configuration Options | Linker and click on Advanced.
    7. Set the No Entry Point value to Yes (/NOENTRY) and click OK.
    8. Right-click on the AppResLib project in the Visual Studio solution explorer and choose Add | Resource...
    9. Click on String Table and then click New.
    10. Add two strings to the string table with the following IDs:

      AppTitle
      AppTileString

    11. Set the AppTitle value to 100 and set the caption to the language-neutral name of your game that will be displayed in the Games Hub or the Application List.
    12. Set the AppTileString value to 200 and set the caption to the language-neutral name of your game that will be displayed when the game is pinned to the Windows Phone start menu.
    13. Build the AppResLib project.

    Step 2 – Create an English (US) native resource DLL

    1. Right-click on the solution that contains your Windows Phone Game project and choose Add | New Project...
    2. Select Visual C++ | Win32 | Win32 Project and name it AppRes0409.
    3. In the Win32 Application Wizard, select DLL and check the Empty Project check box, then click Finish.
    4. Right-click on the AppRes0409 project in the Visual Studio solution explorer and choose Properties.
    5. Change the Configuration drop-down from Active (Debug) to All Configurations.
    6. Expand Configuration Options | Linker and click on Advanced.
    7. Set the No Entry Point value to Yes (/NOENTRY).
    8. Expand Configuration Options | Resources and click on General.
    9. Set the Culture value to English (United States) (0x409) (/l 0x0409).
    10. Expand Configuration Options | Build Events and click on Post-Build Event.
    11. Set the Command Line value to the following:

      copy "$(OutputPath)$(ProjectName).dll" "$(OutputPath)\AppResLib.dll.0409.mui"

    12. Right-click on the AppRes0409 project in the Visual Studio solution explorer and choose Add | Resource...
    13. Click on String Table and then click New.
    14. Add two strings to the string table with the following IDs:

      AppTitle
      AppTileString

    15. Set the AppTitle value to 100 and set the caption to the English (United States) name of your game that will be displayed in the Games Hub or the Application List.
    16. Set the AppTileString value to 200 and set the caption to the English (United States) name of your game that will be displayed when the game is pinned to the Windows Phone start menu.
    17. Build the AppRes0409 project.

    Step 3 – Create native resource DLLs for other supported languages

    1. Repeat Step 2 and create the resource-only DLL for English (United Kingdom). Set the Resource Culture to English (United Kingdom) (0x809) (/l 0x0809) and update the post-build event command line to rename the DLL file to AppResLib.dll.0809.mui.
    2. Repeat Step 2 and create the resource-only DLL for French (France). Set the Resource Culture to French (France) (0x40c) (/l 0x040c) and update the post-build event command line to rename the DLL file to AppResLib.dll.040c.mui.
    3. Repeat Step 2 and create the resource-only DLL for Italian (Italy). Set the Resource Culture to Italian (Italy) (0x410) (/l 0x0410) and update the post-build event command line to rename the DLL file to AppResLib.dll.0410.mui.
    4. Repeat Step 2 and create the resource-only DLL for German (Germany). Set the Resource Culture to German (Germany) (0x407) (/l 0x0407) and update the post-build event command line to rename the DLL file to AppResLib.dll.0407.mui.
    5. Repeat Step 2 and create the resource-only DLL for Spanish (Spain). Set the Resource Culture to Spanish (Spain) (0xc0a) (/l 0x0c0a) and update the post-build event command line to rename the DLL file to AppResLib.dll.0c0a.mui.

    Step 4 – Add native resource DLLs to your Windows Phone game project

    1. Right-click on your Windows Phone game project in the Visual Studio solution explorer, click Add | Existing Item...
    2. Browse to the file named AppResLib.dll that you built in step 2 above, click the down arrow next to the Add button, and then select Add as Link.
    3. Browse to each of the files named AppResLib.dll.*.mui that you built in steps 3 and 4 above, click the down arrow next to the Add button, and then select Add as Link.
    4. For each of the AppResLib.dll* files added as links, set the Build Action property to None and the Copy to Output Directory property to Copy if newer.  This will make sure that each of these files gets packaged into the XAP file that is created when you build your Windows Phone Game project.

    Step 5 – Make your Windows Phone game project dependent on the native resource DLL projects

    1. Right-click on the solution that contains your Windows Phone Game project and your resource DLL projects in the Visual Studio solution explorer and choose Project Dependencies...
    2. Select your Windows Phone Game project in the Projects drop-down.
    3. Check all of the check boxes next to your resource DLL projects and click OK.

    Step 6 – Update your Windows Phone game to load title strings from the resource DLLs

    Update the application title by doing the following:

    1. In your Windows Phone Game project, open the file Properties\AssemblyInfo.cs.
    2. Remove the AssemblyTitle entry.
    3. Add an AssemblyTitleAttribute entry that looks like this:

      [assembly: AssemblyTitleAttribute("@AppResLib.dll,-100")]

    Update the tile title by doing the following:

    1. Right-click on your Windows Phone Game project in the Visual Studio solution explorer and choose Properties.
    2. Click on the XNA Game Studio tab.
    3. Change the Tile title value to look like this:

      @AppResLib.dll,-200

    The tile title is the name that is displayed if you click and hold on your application/game in the Windows Phone OS and choose to pin it to the start menu.  There is some additional information about these properties and how to configure them in XNA Game Studio games in this documentation topic.  Depending on the scenarios you want to support for your game, it may not be necessary to create separate strings for your application title and tile title.  If you plan to use the same string for both, you do not need to create separate entries in the string table in each of your native resource DLLs in the instructions above.

    Step 7 – Rebuild your Windows Phone game solution

    Rebuild the solution that contains your Windows Phone Game project and your resource DLL projects.  When doing so, make sure that the Windows Phone Game project is set as the startup project (as opposed to one of the resource DLL projects or your content project).

    <update date="10/15/2010"> I found out today that the ingestion process requires that the resource DLL be named AppResLib.dll, so I've updated the steps in this post to reflect that, and I've posted an updated sample solution.  </update>

    <update date="1/18/2011"> Added a stronger warning about the naming of the DLL needing to exactly match what is listed in the documentation. </update>

     

  • Aaron Stebner's WebLog

    Be careful about how you use Guide.IsTrialMode in an XNA Game Studio 4.0 game for Windows Phone

    • 0 Comments

    My colleague Michael Klucher posted an item on his blog earlier this week that I wanted to link to in order to hopefully help raise visibility for it.  In his post at http://klucher.com/blog/trials-and-tribulations/, he describes a performance issue to be aware of when developing Windows Phone games using XNA Game Studio 4.0 and the Windows Phone Developer Tools.

    Here is a quick summary of the key points in his post:

    • On Windows Phone, calling Guide.IsTrialMode can be expensive (~60 milliseconds per call), so it should not be called every frame in your game code.
    • This performance problem only manifests itself when a game is downloaded from the Windows Phone Marketplace – you will not see it when running your game in the emulator or when using Guide.SimulateTrialMode on a device during development.
    • This performance problem does not occur on Xbox 360, so pay particular attention to how you are using Guide.IsTrialMode if you are porting a game from the Xbox 360 to Windows Phone.
    • You should consider checking the trial mode state at startup and at key intervals during your game instead of every frame.  For example, if you have a functionality-limited trial mode, you could check the state at the end of the last level that is a part of your trial experience and determine whether or not to unlock subsequent levels.
  • Aaron Stebner's WebLog

    XNA Game Studio 4.0 sample content is now available directly within Visual Studio 2010

    • 3 Comments

    In past releases, we have published XNA Game Studio developer education content on the Creators Club site, and we have continued to do so as new XNA Game Studio 4.0 content is published.  The recently released XNA Game Studio 4.0 integrates into the Visual Studio 2010 family of products.  Visual Studio 2010 has some new features to provide direct access from the VS IDE to tools and developer education content hosted on the Visual Studio Gallery web site.

    XNA Game Studio 4.0 sample content on the VS Gallery

    We’ve started converting some of the XNA Game Studio 4.0 samples into project templates and publishing them on the Visual Studio Gallery in addition to posting them on the Creators Club site.  We created an account named XNA GS Education on the VS Gallery web site and have posted an initial set of project templates for XNA Game Studio 4.0 content using that account.  You can see a full list of available content on the VS Gallery web site, and you can find XNA Game Studio 4.0 sample content in the Visual Studio 2010 New Project dialog and in the Extension Manager.

    In addition, anyone inside or outside of Microsoft can post their own sample content on the VS Gallery web site and it will show up in the same locations in the VS IDE as the content that we are uploading.  The packaging process is a little tricky – it requires creating a VS 2010 project template and then creating a .vsix file with some specific settings.  We are thinking about ways that we can make the VS Gallery publishing process easier for the XNA Game Studio team and the community.  For now, this is a somewhat manual process, and that is why there is currently only a small amount of XNA Game Studio content aside from the entries that our team has published.

    Accessing online templates via the Visual Studio 2010 New Project dialog

    XNA Game Studio sample content is available within the New Project dialog in Visual Studio 2010, Visual C# 2010 Express and Visual Studio 2010 Express for Windows Phone.  To access this content via the New Project dialog, you can do the following:

    1. Click on File | New | Project...
    2. Click on the Online Templates link on the left side of the New Project dialog
    3. Click on the XNA Game Studio node, and you will see a list of available XNA Game Studio sample project templates that looks like the following:

    4. Click on one of the templates, enter a name and location and click OK
    5. Visual Studio will download the template, install it for you and open a new instance of the template that you can start coding in
    6. After you have installed the template, it will appear in the Installed Templates list in the New Project dialog.  In the screenshot above, you can see green check marks next to the Windows Game State Management and the Windows Phone Game State Management items – those are templates that I have already installed on my computer

    Accessing online templates, controls and tools via the Visual Studio 2010 Extension Manager

    XNA Game Studio sample content is available in Extension Manager in Visual Studio 2010.  The Extension Manager is not available in Visual C# 2010 Express or Visual Studio 2010 Express for Windows Phone.  To access this content via Extension Manager, you can do the following:

    1. Click on Tools | Extension Manager...
    2. Click on the Online Gallery link on the left side of the Extension Manager
    3. Expand the Templates node
    4. Click on the XNA Game Studio node, and you will see a list of available XNA Game Studio sample project templates.  The list of items in this UI is the same as you will see in the New Project dialog.
    5. You can install and uninstall tools and templates from the Extension Manager
    6. After installing one of the XNA Game Studio project templates, you can go to the New Project dialog, find it in the Installed Templates list and create a new instance of the template from there

    In general, I tend to use the New Project dialog to access this XNA Game Studio sample content, even if I’m using an edition of VS 2010 that supports Extension Manager because I prefer the simpler experience of installing + instantiating the template in a single step that is the same as the step I use to instantiate one of the in-box project templates.

    If you are an XNA Game Studio developer, I encourage you to install a VS 2010 edition and XNA Game Studio 4.0 if you haven’t yet and check out some of the great sample content available directly from the VS 2010 IDE.

  • Aaron Stebner's WebLog

    What XNA Game Studio 4.0 functionality works in what version of Visual Studio and on what version of Windows

    • 2 Comments

    Since XNA Game Studio 4.0 and the Windows Phone Developer Tools shipped a couple of weeks ago, I’ve run into some common questions about the supported OS and Visual Studio matrix, so I decided to try to create a couple of tables to better illustrate what XNA Game Studio 4.0 functionality you can use where and provide a little more detail about the install scenarios.

    XNA Game Studio 4.0 – how to install

    You can download and install XNA Game Studio 4.0 two different ways:

    1.  As an integrated part of the Windows Phone Developer Tools

    • This installer works on Windows Vista and Windows 7
    • It includes an edition of Visual Studio
    • It provides the ability to develop games for Windows, Xbox 360 and Windows Phone

    2.  As a standalone XNA Game Studio 4.0 package

    • This installer works on Windows XP, Windows Vista and Windows 7
    • It does not include an edition of Visual Studio – you must install Visual Studio 2010 yourself before being allowed to install the standalone package
    • It provides the ability to develop games for Windows and Xbox 360

    The following tables provide different views into what functionality is supported where.

    XNA Game Studio 4.0 – Supported Visual Studio editions

    The following table shows what type of games you can develop with XNA Game Studio 4.0 in what editions of Visual Studio 2010.

      Windows games Xbox 360 games Windows Phone games
    Visual Studio 2010 Pro/Premium/Ultimate (devenv.exe) Yes Yes Yes*
    Visual C# 2010 Express (vcsexpress.exe) Yes Yes No
    Visual Studio 2010 Express for Windows Phone (vpdexpress.exe) Yes* Yes* Yes*

    In the table above, Yes* means that the scenario is supported, but only if you install the Windows Phone Developer Tools.  It is not supported if you only install the standalone XNA Game Studio 4.0 product.

    XNA Game Studio 4.0 – Supported operating systems

    The following table shows what type of games you can develop with XNA Game Studio 4.0 on what versions of Windows.

      Windows games Xbox 360 games Windows Phone games
    Windows XP Yes Yes No
    Windows Vista Yes Yes Yes*
    Windows 7 Yes Yes Yes*

    In the table above, Yes* means that the scenario is supported, but only if you install the Windows Phone Developer Tools.  It is not supported if you only install the standalone XNA Game Studio 4.0 product.

    Windows Phone Developer Tools and Visual Studio editions

    Windows Phone Developer Tools setup will always install Visual Studio 2010 Express for Windows Phone (vpdexpress.exe), even if you already have another edition of Visual Studio 2010 installed.  If you have Visual Studio 2010 Professional, Premium or Ultimate installed, WPDT setup will add Windows Phone development features to those editions of Visual Studio 2010 as well.

    WPDT setup has somewhat confusing logic about what shortcuts it creates for Visual Studio 2010 editions.  If it detects that you to not have Visual Studio 2010 Professional, Premium or Ultimate installed, it will create a shortcut to Visual Studio 2010 Express for Windows Phone (vpdexpress.exe).  If it detects that you do have Visual Studio 2010 Professional, Premium or Ultimate installed, it will not create a shortcut to Visual Studio 2010 Express for Windows Phone (vpdexpress.exe), but it is still installed behind the scenes in case you want to use it.  Regardless of what start menu shortcuts appear after installation, you can launch the supported Visual Studio 2010 editions for XNA Game Studio 4.0 development directly from the following locations (these locations assume that you have installed Visual Studio 2010 to the default location):

    • %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe
    • %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\vcsexpress.exe
    • %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\vpdexpress.exe

    Note – in the paths above, you should substitute %ProgramFiles(x86)% for %ProgramFiles% if you are running a 64-bit version of Windows.

  • Aaron Stebner's WebLog

    Configuring and testing icon images in XNA Game Studio 4.0 Windows Phone games

    • 1 Comments

    Michael Klucher wrote a blog post earlier this week that included some information about Windows Phone icon sizes for games and applications.  I wanted to provide a little more information about where each icon image is used and also give some suggestions for how to test your game icons in the emulator.  Here is a summary of what this blog post covers:

    • Windows Phone 7 icon types
    • Windows Phone 7 icon sizes
    • Configuring your project as an application or a game
    • Deployment details for games
    • Deployment details for applications
    • Updating icons in an XNA Game Studio 4.0 Windows Phone game project
    • How to test a game’s application icon in the emulator

    Windows Phone 7 icon types

    The Windows Phone Developer Tools allows you to configure 2 different types of application icons:

    1. The application icon – this is the icon used in the location that your application is deployed to on the phone OS (Games Hub for games, the Application List for applications)

      In a Silverlight for Windows Phone project, this is named ApplicationIcon.png by default.  In an XNA Game Studio 4.0 Windows Phone project, this is named GameThumbnail.png by default. 
       
    2. The pinned icon – this is the icon used in the Windows Phone 7 start menu if you click and hold on your application icon in Games Hub or the Application List and choose “pin to start”

      In both Silverlight for Windows Phone projects and XNA Game Studio 4.0 Windows Phone projects, this is named Background.png by default.

    Windows Phone 7 icon sizes

    The Windows Phone 7 OS displays application icons in 2 different sizes, depending on where they appear:

    1. 62x62 – this is the size used in the Application List (the list that appears when you click the right arrow on the top right side of the Windows Phone 7 start menu).
    2. 173x173 – this is the size used in the Games Hub and in the start menu

    Configuring your project as an application or a game

    The location that your application appears in the Windows Phone 7 OS depends on whether you have configured it to be an application or a game.  During development, this setting is controlled by the Genre value in the file \Properties\WMAppManifest.xml.  When you get ready to submit your application or game to the Windows Phone Marketplace, you will be asked in a web form whether it is an application or a game.  The ingestion process will take the value that you select there and overwrite whatever you list in the file \Properties\WMAppManifest.xml in the project you submit.

    The technology used to create the application or game does not matter.  In other words, although the default experience is to create games with XNA Game Studio and applications with Silverlight, you can also create applications with XNA Game Studio and games with Silverlight if you want to.

    Deployment details for games

    1. To configure your application as a game, set the Genre value in \Properties\WMAppManifest.xml to “Apps.Games”. 
    2. Games will deploy to the Games Hub in the Windows Phone 7 OS
    3. Games should use 173x173 icons for both the application icon and the pinned icon (ideally, the same icon)

    Deployment details for applications

    1. To configure your application as an application, set the Genre value in \Properties\WMAppManifest.xml to “Apps.Normal”.
    2. Applications will deploy to the Application List in the Windows Phone 7 OS
    3. Applications should use a 62x62 icon for the application icon and a 173x173 icon for the pinned icon

    Updating icons in an XNA Game Studio 4.0 Windows Phone game project

    The default project templates for both Silverlight for Windows Phone and XNA Game Studio 4.0 Windows Phone projects in the Windows Phone Developer Tools use the settings for applications, not games.  When you are ready to configure your XNA Game Studio 4.0 project as a game and update the icons, there are a couple of options.  What I typically do is the following:

    1. Right-click on the XNA Game Studio 4.0 Windows Phone game project in the Visual Studio solution explorer and choose Properties
    2. Click on the XNA Game Studio property page
    3. Change the Game thumbnail drop-down to use Background.png instead of GameThumbnail.png
    4. Create a 173x173 .png file for your game and overwrite the default Background.png in your project
    5. Set the Genre value in \Properties\WMAppManifest.xml to “Apps.Games”

    Alternatively, you can create a 173x173 .png file and overwrite the default GameThumbnail.png in your project.  However, if you do that, you also have to remember to overwrite Background.png in your project as well.  For a Windows Phone game, there isn’t any real reason to need 2 different icons because Games Hub and the start menu both use the same icon size.

    How to test a game’s application icon in the emulator

    The Windows Phone emulator does not have the Games Hub in it, so you cannot directly test how your application icon will look when it is displayed in Games Hub.  However, the icon size in Games Hub matches the icon size when an application is pinned to the start menu.  That means that you can use steps like the following to test the appearance of your game’s application icon in the emulator:

    1. Set the Genre value in \Properties\WMAppManifest.xml to “Apps.Normal” – this is the default value for new projects but if you have changed it for some reason, you’ll need to change it back
    2. Deploy your game to the emulator using Visual Studio, XnaPack or the Application Deployment tool
    3. Click the back button in the emulator to exit your game
    4. Click the right arrow in the emulator start menu to go to the Application List
    5. Click and hold on your game icon in the Application List, then choose pin to start
    6. Click the back button or the Windows button in the emulator to return to the start menu, and look at the appearance of your game icon in the start menu

    Additional information

    There are a few follow-up questions that folks usually ask when I explain the above information to them:

    1. Why do XNA Game Studio 4.0 Windows Phone game projects include default settings for applications instead of default settings for games?  The primary reason we decided to use these settings for XNA Game Studio 4.0 projects is that the Games Hub is not available in the Windows Phone emulator, and some testing scenarios are not possible in the emulator unless you use the application configuration settings.
    2. Why are there 2 different icon sizes for phone applications?  The Application List displays smaller icons than the start menu, and scaling a 62x62 image up to 173x173 can cause the images to look grainy/blurry, so developers can provide 2 different resolutions for their icons that will look good in both scenarios.
    3. Why doesn’t the XNA Game Studio 4.0 Windows Phone project template just include a 173x173 version of GameThumbnail.png?  We explored this prior to shipping, but it ended up causing problems for cross-platform game development scenarios.  The maximum size of a game thumbnail in an Xbox 360 game is 16 KB, and a 173x173 version of the default GameThumbnail.png went over that size limit.  We wanted to preserve the ability to right-click on a Windows Phone game project and create a working copy for the Xbox 360.
    4. I also see a file named Game.ico in an XNA Game Studio 4.0 Windows Phone project.  What is that used for?  This is used as an icon for the .exe if you build a Windows copy of your game.  It is included in Windows Phone and Xbox 360 projects so you can right-click and create a copy of the project for Windows.
Page 1 of 1 (10 items)