Tips, tricks and best practice for building your Windows 8 game26 February 2014
Starting games development for Windows 8 and want to know all the tricks and tips? Here is a handy resource of information that you can keep bookmarked that may just help you out if you find yourself stuck during development.
While developing your game
- Visit the Windows dev centre for documentation, tools and samples for Windows Store Apps Development.
- Register for a store developer account and reserve your app name/s as soon as possible.
- Make use of some key support resources such as Getting Started Guide, Windows App Builder Blog, Windows Developer Forum and the many useful code samples that you can download and build with.
Ensure that you are aware of the key Windows 8.1 features that can really benefit your game. These include:
- Live Tiles and Secondary Tiles
- Device Sensors
- App Contracts such as Share, Settings and Search
More information on these features and more can be found at 'Games for Windows'
- Ensure that your apps tile and splash screen images all look good and comply with Windows Store design guidelines. Check that the tile text is not truncated at any size. We strongly recommend that you support all four tile sizes for your app.
- Your app must support keyboard/mouse. You are advised to also support for touch. If your app does not support touch then you need to state this within the games description metadata field in the store listing (see #6.13.4 of the store cert requirements). If game design permits then adding other forms of supported user interaction such as pen and external game controllers can also benefit playability and is encouraged.
- Your game needs to be designed to work well across a number of different screen widths, screen resolutions and optionally in different orientations. In addition to testing on physical devices, take advantage of the powerful features in the ""Visual Studio Simulator for Windows Apps" to test your game in all screen resolutions and orientations.
- Your game should ideally target both Intel and ARM based devices. This will help to maximise the potential user-base for your game.
- If you have a premium (paid) game then we highly recommend that you consider adding either a time-based or feature-based trial option. This is achieved by using the same game package - you do not need to create a separate trial game package. There is also a useful code sample.
- Create a continuous experience across devices by roaming game state and settings so that a user can pick up a game right where it was left off, regardless of the device they're using. Make it easy for users to use your game everywhere by maintaining settings and states with roaming. See also Guidelines for roaming app data.
- If your game uses In-app-purchases (IAP) then Windows 8.1 offers full support of both consumable and durable IAP. There is a useful code sample that you can view to see how this works. You can simulate the IAP locally using CurrentAppSimulator but ensure that this is replaced with CurrentApp prior to submission to store cert.
- Ensure that you have the correct age/game ratings for your games. Some countries and regions require that you also rate your app through a specific ratings board, so remember to check the list of countries and ensure that these are correct. In addition, see #6.2 of the store cert requirements. If your app provides a user with uncontrolled: (i) access to online social networks, or (ii) sharing of personal information with third parties, including other gamers or online acquaintances, then you must assign it a Windows Store rating of at least 12+. If you're having trouble deciding between two age ratings for your app, choose the higher one- apps never fail certification for having too high a rating.
- Try to ensure that loading time of the game appears linear and fast. Consider adding progress animations/indicators to provide feedback to the user that the game is still responsive. Try to avoid situations where the same splash screen is displayed for 10+ seconds without movement.
- Ensure that your game suspends and resumes as required.
Testing your game
- Ensure that you fully understand the Windows Store Cert Technical requirements and that your application complies with them. Also see the useful article on tips on resolving cert issues.
- The store certification phase consists of both a manual/user driven and an automated test phase. The Windows App Certification Kit (WACK) is the automated phase and Microsoft provide this to you. You should always ensure that your app passes the WACK 100% prior to submitting it to store certification.
- Read the 'Testing Apps on Windows 8' guide to understand what to focus on when testing your game for store cert.
- Try to test your game with a variety of physical devices (both Intel and ARM based) utilising keyboard/mouse and touchscreens (if relevant to your game). For ARM devices, the Nokia 2520 and Microsoft Surface/Surface 2 as examples of a few of the devices in the market.
- Also use the Visual Studio simulator for Windows Apps to test your game - including testing across all screen resolutions and orientations.
- When you submit your app to store, use the app submission checklist to ensure that you have everything covered.
Some Other Useful Links
For Unity-based games:
- Download the Windows 8 porting guides for some great tips on porting your existing project to Windows.
- Read the Unity Windows support forum.
- Ensure that you are using Unity v4.3.1 as a minimum (this is the earliest build to support Windows 8.1).
- If you wish to use pre-made Unity plug-ins to add, for example, Windows 8.1 features, Azure/cloud functionality and advertising functionality then a few providers are: Unity asset store, Prime31 and Bitrave.
For OpenGL-based games:
- Read the guide to 'porting from OpenGL ES2.0 to Direct3D 11'
- Read the guide on 'porting OpenGL Shader Language (GLSL) code to Microsoft High Level Shader Language (HLSL) code'
- Consider using the ANGLE project to reuse existing OpenGL ES 2.0 code, and to apply their current skills to building apps and games for Windows devices.
The goal of ANGLE is to allow Windows users to seamlessly run WebGL and other OpenGL ES 2.0 content by translating OpenGL ES 2.0 API calls to DirectX 9 or DirectX 11 API calls. See: http://code.google.com/p/angleproject/
For DirectX 9/10- based games:
- You will need to support Direct3D 11 as a minimum. Read the guide to migrating to Direct3D11 (and Direct3D 9 to Direct3D 10)
- Ensure that you are familiar with the store cert requirements on minimum feature level (#3.12.2).
- Windows Runtime API reference
- Win32 and COM for Windows store apps
- .NET for Windows Store apps The .NET Framework provides a subset of managed types that you can use to create Windows Store apps using C# or Visual Basic. This guide provides alternative WinRT APIs for .NET namespaces missing in this subset.
- Windows Azure cloud services - IAAS and PAAS - virtual machines and fully scalable and on-demand compute and storage.
- Windows Azure Mobile Services - supports iOS, Android and Windows
- You can use the partner services directory to filter by platform and service type in order to find providers for such services as middleware, advertising, analytics, social plug-ins etc.