Computer games are a key entertainment experience on Windows, but ease-of-use concerns have caused customer frustration over the years. Traditionally, games are installed like applications, but they are utilized more like entertainment media (movies or songs, for example). Innovations, such as Games Explorer, expose games in a consistent manner that is different from standard applications. These innovations also and give games first-class citizen status in Windows, together with Music and Pictures. The following requirements help ensure that Windows Vista and Windows 7 provide an improved, more accessible, and unified gaming experience. At the same time, they ensure compatibility with Windows XP.
Requirement
The game must be visible within Games Explorer (the Games folder) on Windows Vista and Windows 7. When selected, the game must also display correct meta data, which includes publisher, developer, release date, version, Windows Experience Index scores, rating (if applicable), and associated hyperlinks.
If the game is digitally distributed through an online game service, then the service provider should also appear in Games Explorer. To ensure proper handling of the provider and to enable use of RSS feeds, version 2 of the schema for game definition files (GDFs) should be used. (For more information about GDFs, see Additional Information.)
In addition, game installers must observe the following rules when they run on Windows Vista and Windows 7:
-
The installation must not create a shortcut to launch the game on the desktop, in the Start menu, or in any other location.
-
Tasks and shortcuts for removal must not be created.
-
Users must be able to remove the game by using Programs and Features in Control Panel on Windows Vista and Windows 7, or Add or Remove Programs in Control Panel on Windows XP.
On Windows XP, and on previous versions of Windows, the game installer is free to create program groups, desktop icons, or shortcuts as needed.
Rationale
Windows Games Explorer is similar in concept to the Windows XP folders My Documents or My Pictures. The idea is to
centralize similar content in one place and allow for easier organization and context-sensitive activities. Games Explorer extends the My Documents or My Pictures concept by allowing richer organization and control over games. Games Explorer allows gamers to view, organize, and interact with all the games installed on their systems. It also allows game publishers to communicate important game information more effectively. The system is data-driven, making it easy for a game publisher to update game
information over the life of the product.
Additional Information
Integration with Games Explorer requires that you author a game definition file (GDF), which is an XML text file that is embedded within a binary file (an executable file or a DLL) as a resource, along with a Windows icon. The game must then be registered with Games Explorer. The GDF also enables the exposure of supplied information such as the game title, publisher, developer, links to websites and optional tasks. Note that support tasks can be only links to Web sites, but play tasks can be used for optional support tasks as well.
Games Explorer can make use of a thumbnail bitmap image, but it is recommended that, instead, you
provide a Windows icon resource with large icons (256×256). The icon resource should include
image sizes of 256×256 48×48, 32×32, and 16×16 in both 24-bit (True Color)
and 8-bit (256) color depths. The icon editor provided in Visual Studio 2008 and 2010 supports these
large icon formats, as does IconWorkshop Lite.
Details on integrating with
Windows Games Explorer are
provided in the DirectX SDK. The DirectX SDK includes a game definition file (GDF) editor, as well as an example GDF that is
included in GDFExampleBinary, a sample.
Another sample, GameUxInstallHelper,
provides routines for integrating the required functionality into existing installation systems. The
Game Definition File Validator
(gdftrace.exe) provides debugging support for evaluating a GDF. Also see
"Windows Games Explorer Integration"
in the DirectX SDK Documentation for C++.
Windows 7 introduces support for the second version of a schema for GDF files. The new version includes
a simplified method for creating play tasks and support for update notifications, game service providers,
game statistics, and RSS feeds for game service providers. The latest version of GameUxInstallHelper
handles all of the registration and legacy support needed to use a version 2 GDF file with Windows Vista.
Use the tools and sample code from the DirectX SDK from August 2009 or later. Using a version 2 GDF file
is recommended to enable support for RSS feeds, game statistics, and update notifications. Also, see the
samples ProviderGDFExampleBinary and GameStatisticsExample.
On Windows Vista Business Edition, Windows 7 Professional Edition, and Enterprise Edition of both
Windows Vista and Windows 7, the Games link on the Start menu is hidden. Games Explorer is still
available on the Start menu by clicking All Programs, and then clicking Games.
For associated applications that are installed with your game, but not themselves games,
you are free to create Start menu program groups, shortcuts, and desktop icons on all versions of Windows,
including Windows Vista and Windows 7. Such associated applications should pass applicable
Games for Windows requirements; for details, see
Guidelines for Game Middleware Products.
Game services are encouraged to register with Games Explorer as a Game Provider for Windows 7.
Requirement
Games must fully support Windows Family Safety by adhering to the following rules:
-
Games must not require that the user have administrative credentials to play.
Installation, patching, and removal can require administrative credentials, subject to the requirements in section
3.
(Related to this is requirement 2.1,
Follow User Account Control Guidelines.)
-
Games rated by Windows-supported ratings boards, such as ESRB and PEGI, must include their assigned ratings information in their game definition file (GDF). All available ratings data must be included in every localized version of the GDF, as well as in the language-neutral version.
-
Games must list their executables in the GDF to provide a good user experience for General Application Restrictions, unless the game uses an anti-piracy technology that creates randomly named executables at runtime.
-
Games must call the VerifyAccess method of the Games Explorer interface
during startup, if available, and exit if it returns *pfHasAccess as FALSE.
Rationale
All games must execute within the context of a Standard User account to allow accounts that are controlled by Windows Parental Controls to play the game. Parents want the ability to monitor and control their children's access to games. Moreover, numerous industry, government and advocacy groups desire better ways to allow parents to monitor and control the games to which their children are exposed. In conjunction with the architecture offered by Games Explorer, Microsoft provides parents this ability through Windows Parental Controls.
Even for games that do not participate in a ratings board program, requiring elevated privileges creates a poor play experience for the majority of user accounts. This is particularly the case if Parental Controls are enabled, which would require the parent to enter the administrator password every time the game is launched.
The Windows Parental Controls system allows parents to select the ratings that they believe are appropriate for their children. Parental Controls support many of the worldwide ratings systems. Parental Controls also allow parents to restrict access to games based on Content Descriptors (if the applicable rating system supports them) and to allow or disallow access to individual games.
The default choice of rating system for Windows Parental Controls is based on the system's locale setting, but can be modified by the user in Regional and Language Options in Control Panel. Therefore, every supported language should provide all available ratings data so that the user has the freedom to select whatever ratings board they desire.
Additional Information
Games without a rating must still meet the requirements to support play as a Standard
User and to call VerifyAccess. Such games default to the Unrated category, display
the text "No Rating Provided" in Games Explorer, and are subject to the Game Restrictions setting in Parental Controls for unrated games. The default Restrictions setting is Allow.
Rating information in the GDF will be ignored if the containing binary is not properly Authenticode signed. See requirement 2.3.
The Game Definition File Editor in the DirectX SDK includes all supported ratings systems and will correctly replicate this information to all localized versions of the GDF, as well as a language neutral version. The GDFTrace tool will decode and verify all ratings information present. Use the August 2009 version or later of these tools.
The GDF for a game provider typically contains no rating information, and it is subject to the
settings for unrated content.
| Operating System | Supported rating systems |
|
Windows Vista
|
- CERO (Japan)
- ESRB (USA)
- OFLC (Australia)
- PEGI (Europe)
- PEGI Finland (deprecated)
- PEGI Portugal
- PEGI/BBFC (United Kingdom)
- USK (Germany)
|
|
Windows Vista with a service pack
|
Service packs for Windows Vista add support for the following:
- GRB (South Korea)
- ESRB "Mild" variant content descriptors
|
|
Windows 7
|
Windows 7 supports the ratings systems supported by Windows Vista and adds support
for the following:
|
Note |
|---|
| Any title that includes new ESRB Windows Vista Service Pack 1 (SP1) content descriptors will show as “Unrated” on Windows Vista without a service pack. |
GRB and CSRR ratings data are ignored on versions of operating systems without support for them. The PEGI (Finland) variant is now deprecated in favor of the standard PEGI (Europe) rating system.
For more information about making a game compatible with standard user privileges, see the DirectX SDK article User Account Control for Game Developers.
See requirement 1.1 for more details on the game definition file (GDF).
Requirement
Games that support gamepad controllers must support the Xbox 360 Controller for Windows using the XInput API. If DirectInput peripherals are also supported, then DirectInput can also be used. However, XInput must be the default API if an Xbox 360 compatible device is used.
All references to common controller triggers and buttons must use the Xbox 360
names. See the Xbox 360 Common Controller for Windows Terminology list for details.
Controller vibration must be turned off when the game is in a paused or suspended state.
Mouse/keyboard control cannot be fully disabled at any time. At a minimum, an option to return
to game menus must be available.
Rationale
This requirement gives gamers freedom of choice to use either the Xbox 360 controller or the keyboard and mouse, depending on which input method is more natural and intuitive interface.
Additional Information
This requirement does not apply to games that use only the mouse and/or the keyboard.
We recommend that menu navigation be implemented to use the widely accepted standard controller buttons:
See the DirectX SDK Documentation on XInput for details.
The topic XInput and DirectInput discusses issues with using both APIs at the same time.
It is recommended that DirectInput not be used to implement keyboard or mouse controls.
Keyboard and mouse controls should only be implemented using Windows messages and Win32
APIs. For details on getting high-resolution mouse movement information without using
DirectInput, see Taking Advantage of High-Definition Mouse Movement.
Requirement
The game must support at least the following aspect ratios and associated screen resolutions:
-
4:3 normal (800×600 or 1024×768)
-
16:9 widescreen (1280×720)
-
16:10 widescreen (1152×720 or 1680×1050 or 800×480)
For screen resolution configuration and detection, the game must adhere to the following rules:
-
The game uses the desktop resolution of the display device by default if it is a supported resolution. The desktop aspect ratio must be used as a search criterion if the game chooses a different default resolution.
-
The game must prompt the user to confirm new display settings when a change is made. If the user
does not accept within 15 seconds, the display must revert to the previous setting.
-
The game must not stretch pixels or center a 4:3 render window to support widescreen aspect
ratios. However, letterboxing is acceptable.
Rationale
With the Windows 3D desktop, a particular aspect ratio or resolution cannot be assumed, because of the following factors:
-
Support for high-detail displays.
-
Increased market share of widescreen monitors.
-
HDTV deployments for Windows Media Center.
-
Accessibility requirements.
Additional Information
Ideally, the game defaults to the native aspect ratio of the display. However, obtaining this information reliably can be a challenge, so as a more general solution the game can assume that the desktop is running at the native aspect ratio. The desktop resolution can be obtained by calling EnumDisplaySettings with ENUM_REGISTRY_SETTINGS.
For more details, see the Aspect Ratio and Widescreen sections of the DirectX SDK article
Introduction to the 10-Foot Experience for Windows Game Developers.
Requirement
If the game uses Direct3D, then the minimum version supported must be Direct3D 9, and Direct3D
must be the default renderer selected.
Rationale
The Windows Vista and Windows 7 core graphics architecture is designed around Direct3D.
Direct3D 8 and earlier versions are supported by remapping legacy interfaces.
Use of versions of Direct3D newer than Direct3D 9 is strongly encouraged. See the
Games for Windows Showcase S.1. Requiring Direct3D 10 or Direct3D 11 is fully
compliant with requirement 1.7.
Requirement
Games and their installers must run correctly without visual problems when
dots-per-inch (DPI) scaling is enabled (tested with 144 DPI for 150% scaling at
display resolution of 1600×1200) on Windows Vista and Windows 7.
This typically requires the game executable to declare being DPI-aware. This is
accomplished by embedding a manifest element:
<dpiAware>true<dpiAware>
.
Rationale
High-quality LCD monitors are commonplace as computer displays, and they look
best when driven at their native resolutions (typically 1280×1024,
1600×1200, and so on). Customers who have difficulty reading text and
seeing images at this resolution often set their computer desktops to a lower
resolution and suffer visual artifacts from LCD scaling. Instead, customers
can leave the resolution at the native size and change the DPI of the Windows
display, thus making item and text appearance larger without sacrificing
image quality.
While this feature has been available in some form since Windows XP,
it is seldom enabled by customers or by OEMs. More than half of all computer
displays today are set to a lower resolution than the monitor's native
resolution, based on customer feedback. Windows 7 makes this feature much
more visible to customers during initial setup and when changing display
settings, encouraging them to use DPI scaling rather than change the
desktop resolution.
Additional Information
The SetProcessDPIAware function
can be used instead, if called early in the process startup code. Adding to the manifest
is preferred, to ensure there are no race conditions with software elements (such as
DLLs) that might initialize before the main entry point is called. note that
SetProcessDPIAware is only present on Windows Vista and Windows 7.
Adding the manifest element is easy to do with Visual Studio 2005 and 2008; create a file named
dpiaware.manifest that contains the following text:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
Then, inside Visual Studio, add dpiware.manifest to the project. Ensure that
Embed Manifest is set to Yes in the project's properties. Note
that older versions of the Manifest Tool (Mt.exe) will generate a spurious warning
with the DPI-aware manifest elements. To resolve this, update Mt.exe to the latest
version from the Windows SDK.
Visual Studio 2010 includes a setting in the project properties, named Enable DPI Awareness,
that eliminates the need for a file like dpiaware.manifest. Find Enable DPI Awareness by
expanding Configuration Properties and Manifest Tool, and then selecting
Input & Output.
On Windows, the traditional display mode defaults to 96 DPI, which was common
for CRT monitors.
While full-screen applications change the display resolution, they often use
window messages and metrics when setting up buffers and display rectangles. DPI
virtualization causes these full-screen display modes to appear cropped, and
declaring DPI-aware will prevent these problems. For more information, see
Writing DPI-Aware Win32 Applications.