Building a App/Game for specific Windows Phone 8 device - To support >1GB or 512mb memory

This week I was having a discussion with Jon Wetherall  from coolgamearcade.com. Jon is one of our Greenshoot teams and wanted to ask how they could target specific windows phone devices for their next title.

So in respect of Windows Phone the two options of devices are

· >1GB or higher RAM based devices

· 512MB RAM (Low memory Windows Phone 8 devices)

Building Specific optimized version for 1Gb & 512mb

You actually have the ability within the Windows Store to build a app specifically tailored for each version Windows Phone and have them displayed in the Windows Phone Store under same app name.

To achieve this you need to follow the guidance below

1. Each Store release will need the same Product ID.

a. To get the product id login to Windows Phone store https://dev.windowsphone.com

b. Click on Dashboard

c. Select the app and then click on details tab

d. Scroll down to get App ID, copy this App ID

e. Replace your product id in WMAppmanifest.xml simply open up your project solution in Visual Studio edit the WMAppManidest.xml and under the file under Packaging Tab replace the Product ID with the copied on from the dashboard.

Once you have both the builds, add these two XAPs you need to submit each to the store for certification and publishing.

The store certification team will test both the XAPs and app will be available on store.

The advantage with this approach is that you can target both low end and 1GB RAM based devices with appropriate quality of graphics content. While the disadvantage is that you will have to maintain two builds.

In this case your app customers will get the appropriate quality of graphics content based on their devices.

Optimising your app/game for support on 512mb devices

To get the maximum performance out of the 512MB RAM based device you can increase the peek memory usage cap from 150MB to 180MB by adding Functional Capability to the WMAppMainfest.xml file

Add the following tag by editing WMAppManifest.xml in Visual Studio

ID_FUNCCAP_EXTEND_MEM

This increases the usage cap from 15mb to 180mb.

Example

    1: <FunctionalCapabilities>
    2:  
    3: <FunctionalCapability Name="ID_FUNCCAP_EXTEND_MEM"/>
    4:  
    5: </FunctionalCapabilities>

You can refer to How to modify the app manifest file for Windows Phone 8 for further information.

Supporting only 1GB devices

If your game is pretty intensive on memory you can choose to simply target  >1G devices (remember this will limit your downloads as your targeting a specific set of devices which are generally premium in terms of costs to consumers)

2. To build app targeting only 1GB RAM based device, you will need to opt out low memory device

This can be achieved by forcing memory cap requirements in WMAppManifest.xml

Add the following tag by editing WMAppManifest.xml in Visual Studio

ID_REQ_MEMORY_300

This completely opts out of availability for lower-memory phones.

The app won’t appear in the Windows Phone Store for lower-memory phones and it can’t be installed on lower-memory phones.

Example

    1: <App>
    2:  
    3: … 
    4:  
    5:   <Requirements>
    6:  
    7: <Requirement Name="ID_REQ_MEMORY_300" />
    8:  
    9:   </Requirements>
   10:  
   11: </App>

You can refer to How to modify the app manifest file for Windows Phone 8 for further information.

You can now publish the complied  .XAP file to the Windows Phone Store. When users visit the store and search for your game or app it will not be visible to consumers with low memory 512MB RAM based devices.

Some Useful Links

App capabilities and hardware requirements for Windows Phone 8 https://msdn.microsoft.com/en-US/library/windows/apps/jj206936(v=vs.105).aspx

App memory limits for Windows Phone 8 https://msdn.microsoft.com/en-us/library/windowsphone/develop/jj681682(v=vs.105).aspx

Developing apps for lower-memory phones for Windows Phone 8 https://msdn.microsoft.com/en-us/library/windowsphone/develop/hh855081(v=vs.105).aspx