Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
August 14-15 2006
Preparing Games for Preparing Games for Windows VistaWindows Vista
Bruce DawsonBruce DawsonProgrammerProgrammerMicrosoft Game Technology GroupMicrosoft Game Technology Group
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
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'
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:
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*
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
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
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
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
August 14-15 2006
Application can defineApplication can defineCustomizableCustomizableLink to saved gamesLink to saved games
Game ExplorerGame ExplorerTasksTasks
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
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””
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
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
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
August 14-15 2006
Parental ControlsParental Controls
August 14-15 2006
Parental ControlsParental Controls
August 14-15 2006
Parental ControlsParental Controls
August 14-15 2006
Parental ControlsParental Controls
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
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””
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
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
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
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
August 14-15 2006
Questions?Questions?
[email protected]@microsoft.com
Support: Support: [email protected]@microsoft.com