02 preparing games for windows vista - home - amd · preparing games for windows vista bruce dawson...

26
August 14-15 2006 Preparing Games for Preparing Games for Windows Vista Windows Vista Bruce Dawson Bruce Dawson Programmer Programmer Microsoft Game Technology Group Microsoft Game Technology Group

Upload: others

Post on 02-Jun-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Preparing Games for Preparing Games for Windows VistaWindows Vista

Bruce DawsonBruce DawsonProgrammerProgrammerMicrosoft Game Technology GroupMicrosoft Game Technology Group

Page 2: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

WhatWhat’’s Changed?s Changed?User Account ControlUser Account ControlGame ExplorerGame ExplorerParental ControlsParental ControlsMedia Center EditionMedia Center EditionXbox 360 Controller for WindowsXbox 360 Controller for WindowsMinimum BarMinimum BarDeployment Deployment

Page 3: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

User Account ControlUser Account ControlWhat it meansWhat it means

Single most impacting change for gamesSingle most impacting change for games2 account types2 account types

Standard UserStandard UserAdministratorAdministrator

By default, By default, EXEsEXEs run as standard userrun as standard userEven Even EXEsEXEs run from admin accountsrun from admin accountsUnless explicitly 'elevated'Unless explicitly 'elevated'

Page 4: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

User Account ControlUser Account ControlUI for elevate to adminUI for elevate to admin

EXEsEXEs can be elevated via user promptcan be elevated via user prompt

Administrators see:Administrators see:

Standard users see:Standard users see:

Page 5: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

User Account ControlUser Account ControlStandard user process Standard user process r/wr/w accessaccessCLSID Name Default Path Read Write

CSIDL_DESKTOP C:\Users\<user>\Desktop Y Y

CSIDL_MYDOCUMENTS C:\Users\<user>\Documents Y Y

CSIDL_LOCAL_APPDATA C:\Users\<user>\AppData\Local Y Y

CSIDL_APPDATA C:\Users\<user>\AppData\Roaming Y Y

CSIDL_COMMON_APPDATA C:\ProgramData Y Y

CSIDL_PROGRAM_FILES C:\Program Files Y N*

CSIDL_WINDOWS C:\Windows Y N*

*Administrator processes onlyRegistry Key Read Write

HKEY_CURRENT_USER Y Y

HKEY_LOCAL_MACHINE Y N*

HKEY_CLASSES_ROOT Y N*

Page 6: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

User Account ControlUser Account ControlHow elevate worksHow elevate works

Elevate happens at process createElevate happens at process createManifest extensionsManifest extensions

If admin access is required:If admin access is required:<<requestedExecutionLevelrequestedExecutionLevel

level="level="requireAdministratorrequireAdministrator" " uiAccessuiAccess="false"/> ="false"/>

Otherwise do:Otherwise do:<<requestedExecutionLevelrequestedExecutionLevel

level="level="asInvokerasInvoker" " uiAccessuiAccess="false"/> ="false"/>

If no If no requestedExecutionLevelrequestedExecutionLevel, virtualization , virtualization kicks inkicks in

Page 7: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

VirtualizationVirtualization

Backwards compatibility 'hack'Backwards compatibility 'hack'Not Not performantperformant

Means that writes to protected folders and Means that writes to protected folders and registry entries still 'succeed'registry entries still 'succeed'

File/registry writes redirected to perFile/registry writes redirected to per--user virtual user virtual storestoreVirtual/real directories are merged on directoryVirtual/real directories are merged on directory--scan/readscan/read

For apps with no manifestFor apps with no manifestFor Explorer if "compatibility files" is selectedFor Explorer if "compatibility files" is selected

File/registry writes to protected areas can't be seen File/registry writes to protected areas can't be seen by other usersby other users

Page 8: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

User Account ControlUser Account ControlWhat it means for gamesWhat it means for games

Design for standard user Design for standard user Use Use asInvokerasInvoker in the manifestin the manifest

DonDon’’t require admin to play the game!t require admin to play the game!YouYou’’ll get an elevate prompt every timell get an elevate prompt every timeBreaks parental controls for all gamesBreaks parental controls for all games

Requiring admin to install is OKRequiring admin to install is OKTest with standard userTest with standard userThink about patchingThink about patching

Article in DXSDK discusses optionsArticle in DXSDK discusses options

Page 9: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Game ExplorerGame ExplorerWhat is it?What is it?

Central HUB for Windows gamingCentral HUB for Windows gamingLocated right off Start BarLocated right off Start Bar

Page 10: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Application can defineApplication can defineCustomizableCustomizableLink to saved gamesLink to saved games

Game ExplorerGame ExplorerTasksTasks

Page 11: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Game ExplorerGame ExplorerRich Saved GamesRich Saved Games

User doubleUser double--clicks on file to launch gameclicks on file to launch gameLaunches appLaunches app--defined command linedefined command lineMetadata stored inside saved gameMetadata stored inside saved game

Page 12: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Game ExplorerGame ExplorerIntegrating, part 1Integrating, part 1

Use Use GDFMakerGDFMaker tool found in DXSDKtool found in DXSDKCreates XML based .GDF file Creates XML based .GDF file

Contains gameContains game’’s metadatas metadataOptionally includes gameOptionally includes game’’s ratings rating

Creates a resource fileCreates a resource file

Compile resource file into a binaryCompile resource file into a binarySign this binary to enable game ratingSign this binary to enable game rating

Test with private trusted test certificateTest with private trusted test certificateFor details, see For details, see ““Authenticode Signing for Game DevelopersAuthenticode Signing for Game Developers””

Page 13: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Game ExplorerGame ExplorerIntegrating, part 2Integrating, part 2

During game installDuring game installCall Call IGameExplorer::AddGameIGameExplorer::AddGame() ()

Pass in full path to binary containing GDF Pass in full path to binary containing GDF

Create game explorer tasksCreate game explorer tasksSimply shortcuts in known folder locationsSimply shortcuts in known folder locations

During uninstallDuring uninstallCall Call IGameExplorer::RemoveGameIGameExplorer::RemoveGame()()

Details and sample code in DXSDKDetails and sample code in DXSDKGameuxInstallHelperGameuxInstallHelper -- sample DLL to simplify details sample DLL to simplify details and supports install packagesand supports install packages

Page 14: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Game ExplorerGame ExplorerRich Saved GamesRich Saved Games

Define save game path in GDFDefine save game path in GDFCreate Create regkeysregkeys to associate unique file to associate unique file extension with Windows and Game extension with Windows and Game ExploerExploer during installduring install

HKLM keys, so need admin privilegesHKLM keys, so need admin privileges

Write saved game with predefined header Write saved game with predefined header For details, see DXSDK docs/sampleFor details, see DXSDK docs/sample

Page 15: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Parental ControlsParental ControlsWhat is it?What is it?

OSOS--level enforcement of regional game level enforcement of regional game ratingsratings

ESRB, CERO, OFLC, PEGI, BBFC, USKESRB, CERO, OFLC, PEGI, BBFC, USK

Ratings provided in gameRatings provided in game’’s GDFs GDFOnly restricts Standard User accountsOnly restricts Standard User accounts

Thus games must work with Standard UserThus games must work with Standard User

GDF binary must be Authenticode signed GDF binary must be Authenticode signed Game is marked as Unrated otherwiseGame is marked as Unrated otherwise

Page 16: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Parental ControlsParental Controls

Page 17: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Parental ControlsParental Controls

Page 18: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Parental ControlsParental Controls

Page 19: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Parental ControlsParental Controls

Page 20: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Media CenterMedia CenterWhat is it?What is it?

Enables a 10Enables a 10--foot experience on Windowsfoot experience on WindowsLarge iconsLarge iconsRemote controlRemote control

Not separate editionNot separate editionHome ProfessionalHome ProfessionalUltimateUltimate

Page 21: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Media CenterMedia CenterHow to integrate into MCHow to integrate into MC

Drop an XMLDrop an XML--based .MCL file in a folderbased .MCL file in a folderPoints to icon & exe to launchPoints to icon & exe to launch

Support HDTV resolutionsSupport HDTV resolutionsWidescreen, 720p, 1080iWidescreen, 720p, 1080i

Stay in titleStay in title--safe regionsafe regionKeep UI elements in the inner 85% Keep UI elements in the inner 85%

ReRe--launch MC when finishedlaunch MC when finishedDetails in DXSDKDetails in DXSDK

““Introduction to the 10Introduction to the 10--Foot ExperienceFoot Experience””

Page 22: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Xbox 360 Controller for WindowsXbox 360 Controller for WindowsConsider supporting itConsider supporting it

Xbox 360 controller works on WindowsXbox 360 controller works on WindowsUsing the Using the XInputXInput APIAPI

XInputXInput API is very simpleAPI is very simpleSample code & docs provided in DXSDKSample code & docs provided in DXSDKPreferred API for controllersPreferred API for controllers

Make menus navigable with the controllerMake menus navigable with the controller

Page 23: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Minimum BarMinimum BarWhatWhat’’s changed?s changed?

Better min spec machinesBetter min spec machinesFaster CPUFaster CPUFaster graphics hardwareFaster graphics hardwareMore system memoryMore system memory

Enables more demanding gamesEnables more demanding games

Page 24: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Minimum BarMinimum BarOS min specsOS min specs

Windows XPRecommended

Windows XPMinimum

Windows 98Recommended

Windows 98Minimum

CPU 333 MHz 233 MHz Pentium 66 MHz

System Memory 128 MB 64 MB 32 MB 16 MB

Graphics 800x600 800x600 800x600 640x480

Windows VistaPremium Ready

Windows VistaCapable

CPU 1 GHz 800 MHz

System Memory 1024 MB 512 MB

Graphics Shader model 2.0, 128 MB Direct3D 9 capable

Page 25: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

DeploymentDeploymentWhatWhat’’s new?s new?

DirectX SetupDirectX SetupStill needed for SDK DLLSStill needed for SDK DLLS

XACT, XACT, XInputXInput, D3DX, etc., D3DX, etc.

DirectX Web installer DirectX Web installer ~300 KB exe~300 KB exeDownloads DX DLLs from MSDownloads DX DLLs from MSDesigned with casual games in mindDesigned with casual games in mind

Do all writes to privileged Do all writes to privileged directories/registry keys during setupdirectories/registry keys during setup

Page 26: 02 Preparing Games for Windows Vista - Home - AMD · Preparing Games for Windows Vista Bruce Dawson Programmer Microsoft Game Technology Group. August 14-15 2006 ... CERO, OFLC, PEGI,

August 14-15 2006

Questions?Questions?

[email protected]@microsoft.com

Support: Support: [email protected]@microsoft.com