Google Play Games on PC requires that you update the graphics capabilities of your game and add support for large screens. This topic describes those requirements and related recommendations.
Here's a summary of the requirements and recommendations on this page:
- When possible, use texture compression (recommended)
- Don't use an OpenGL ES version higher than 3.1 (required)
- If using Vulkan, only use up to version 1.1 (required)
- Increase or remove frame rate limits (recommended)
- Use high resolution assets and textures (required)
- Adjust UI scaling (required)
- Support the required aspect ratios (required)
- Make dynamic display updates (required)
Texture compression
Since Google Play Games on PC passes through compressed textures whenever
possible, you should use DXTC
or BPTC
to take advantage of PC hardware.
Sometimes these textures still need to be decompressed if OpenGL features need
to be emulated for compatibility reasons, so you should always
profile your game.
Formats such as ETC1
and ETC2
are decompressed by the OpenGL translation
layer before being sent to the native graphics stack. These will continue to
work, but won't have the same memory or runtime efficiency benefits as you'd
expect on mobile hardware.
Graphics API
We recommend using the Vulkan API on Google Play Games on PC for optimal performance.
If this is not possible then please use the OpenGL ES version listed below.
OpenGL ES version
Google Play Games on PC supports OpenGL ES 3.1.
In order to maintain
compatibility with Google Play Games on PC, make sure you don't specify a
version higher than OpenGL ES 3.1 in your AndroidManifest.xml
file.
Vulkan version
Google Play Games on PC supports Vulkan 1.1. In order to maintain compatibility with Google Play Games on PC, ensure your game does not require a version higher than Vulkan 1.1.
Increase maximum frame rate limits
Some players will be able to run your game at a much higher frame rate on PCs than on mobile devices. To give your players the best experience, we recommend either ensuring the cap is at least 60 fps or removing your frame rate limits altogether.
Large screen optimization
The following large-screen optimizations are require by Google Play Games on PC:
High resolution assets and textures
Google Play Games on PC supports resolutions up to 4k and you can expect a performance level that matches a high-end Android-powered device released in the last 12 months. Textures and assets designed for a smaller phone screen degrades a player's perception of your game when viewed on a large 4k monitor on a PC. When possible, ensure high resolution assets are available on first launch.
If you're using Opaque Binary Blob OBB files (also known as APK expansion files) to deliver assets, additional high resolution assets might cause the total size to exceed the OBB limit of 2 GB main plus 2GB patch). In this case, consider using Play Asset Delivery to deliver your assets.
With Play Asset Delivery, you can automatically deliver the textures that match a device's best supported texture compression format without increasing the game size. You can also target devices based on their performance level, and automatically deliver higher or lower resolution textures accordingly.
Play Asset Delivery is supported on Unity 5.6 and above through the Play Asset Delivery Unity plugin, and on Unreal Engine 4.25. For other engines, we provide Java and Native SDKs.
UI scaling
On a larger screen, you may need to adjust your game's UI to ensure all elements are appropriately sized. We recommend that HUDs take up no more than 20% of the screen.
Aspect ratios
Google Play Games on PC requires support for the 16:9 aspect ratio. For an ideal player experience, games should also support 21:9, 16:10, and 3:2.
Portrait mode
Portrait mode games only need to support the 9:16 aspect ratio. Google Play Games on PC renders black bars in full screen mode if your game lacks landscape support.
Dynamic display
Google Play Games on PC never changes the logical resolution, display density, nor aspect ratio of your game after it launches. Despite this, players can toggle a game between fullscreen and windowed mode. When in windowed mode, the player may also freely resize the window diagonally in a manner that maintains a fixed aspect ratio. This means that your game doesn't have to handle resize events to fit in with typical desktop windowing paradigms but it also means that you can't rely on display density as an indicator of legibility of in-game elements.
Choose a resolution
Google Play Games on PC provides your game with the aspect ratio that is the closest match between a player's primary display the advertised support in your app manifest. The default resolution is chosen using internal heuristics to give the player the best possible experience.
The player can override the default resolution for your game on their machine. The aspect ratio calculation does not change, but the number of pixels you render may be different between any two launches of your game. It's important to be aware of this if you rely on reported resolution between launches of your game, such as when determining which assets to cache and render. Google Play Games on PC Developer Emulator relaunches after a user changes the resolution so you don't have to handle this change at runtime.
Best practices
To give your players the best experience, do the following:
- If your game plays best in portrait mode and players are likely to play it
while multitasking, set
android:screenOrientation="portrait"
. This guarantees a portrait oriented window for your game. - Specify supported min and max aspect ratios with
android:minAspectRatio
andandroid:maxAspectRatio
to restrict your game to a range of verified aspect ratios. Thoroughly test your game within this range paying special attention to what happens with extremely wide, square, and tall aspect ratios. - Although Google Play Games on PC reports DPI, this does not change while your game is active. Therefore it is impossible to figure out the physical size of an in-game element and it is best to place game elements based on ratios of the screen size rather than trying to match a physically based size unit.
- Test the legibility of your game elements on a laptop screen and in windowed mode.
- Give players in-game control over the ui scale so they can size in game elements or text to meet their personal preferences or environment needs. This helps avoid having players lower your game's resolution (and therefore visible quality) only to make text larger.
Testing dynamic display
The Google Play Games on PC Developer Emulator doesn't have extensive gui-based controls for
verifying every potential combination of resolution and aspect ratio. To
simulate running your game at a specific resolution, use the wm size
command in your adb shell. For
example, to test a game at 4K use the following command:
adb shell wm size 3840x2160
You can reset the display scale using the following command:
adb shell wm size reset