Building excellent games with better graphics and performance

Posted by Matthew McCullough – VP of Product Management, Android

We’re stepping up our multiplatform gaming offering with exciting news dropping at this year’s Game Developers Conference (GDC). We’re bringing users more games, more ways to play your games across devices, and improved gameplay. You can read all about the updates for users from The Keyword. At GDC, we’ll be diving into all of the latest games coming to Play, plus new developer tools that’ll help improve gameplay across the Android ecosystem.

Today, we’re sharing a closer look at what’s new from Android. We’re making Vulkan the official graphics API on Android, enabling you to build immersive visuals, and we’re enhancing the Android Dynamic Performance Framework (ADPF) to help you deliver longer, more stable gameplays. Check out the video or keep reading below.

More immersive visuals built on Vulkan, now the official graphics API

These days, games require more processing power for realistic graphics and cutting-edge visuals. Vulkan is an API used for low level graphics that helps developers maximize the performance of modern GPUs, and today we’re making it the official graphics API for Android. This unlocks advanced features like ray tracing and multithreading for realistic and immersive gaming visuals. For example, Diablo Immortal used Vulkan to implement ray tracing, bringing the world of Sanctuary to life with spectacular special effects, from fiery explosions to icy blasts.

Moving image showing ray tracing in Diablo Immortal on Google Play
Diablo Immortal running on Vulkan

For casual games like Pokémon TCG Pocket, which draws players into the vibrant world of each Pokémon, Vulkan helps optimize graphics across a broad range of devices to ensure a smooth and engaging experience for every player.

Moving image showing gameplay of Pokemon TCG Pocket on Google Play
Pokémon TCG Pocket running on Vulkan

We’re excited to announce that Android is transitioning to a modern, unified rendering stack with Vulkan at its core. Starting with our next Android release, more devices will use Vulkan to process all graphics commands. If your game is running on OpenGL, it will use ANGLE as a system driver that translates OpenGL to Vulkan. We recommend testing your game on ANGLE today to ensure it’s ready for the Vulkan transition.

We’re also partnering with major game engines to make Vulkan integration easier. With Unity 6, you can configure Vulkan per device while older versions can access this setting through plugins. Over 45% of sessions from new games on Unity* use Vulkan, and we expect this number to grow rapidly.

To simplify workflows further, we’re teaming up with the Samsung Austin Research Center to create an integrated GPU profiler toolchain for Vulkan and AI/ML optimization. Coming later this year, this tool will enable developers to make graphics, memory and compute workloads more efficient.

Longer and smoother gameplay sessions with ADPF

Android Dynamic Performance Framework (ADPF) enables developers to adjust between the device and game’s performance in real-time based on the thermal state of the device, and it’s getting a big update today to provide longer and smoother gameplay sessions. ADPF is designed to work across a wide range of devices including models like the Pixel 9 family and the Samsung S25 Series. We’re excited to see MMORPGs like Lineage W integrating ADPF to optimize performance on their core target devices.

Moving image showing gameplay from Lineage w on Google Play
Lineage W running on ADPF

Here’s how we're enhancing ADPF with better performance and simplified integration:

    • Stronger performance: Our collaboration with MediaTek, a leading chip supplier for Android devices, has brought enhanced stability to ADPF. Devices powered by MediaTek's MAGT system-on-chip solution can now fully utilize ADPF's performance optimization capabilities.
    • Easier integration: Major game engines now offer built-in ADPF support with simple interfaces and default configurations. For advanced controls, developers can customize the ADPF behavior in real time.

Performance optimization with more features in Play Console

Once you’ve launched your game, Play Console offers the tools to monitor and improve your game's performance. We’re newly including Low Memory Killers (LMK) in Android vitals, giving you insight into memory constraints that can cause your game to crash. Android vitals is your one-stop destination for monitoring metrics that impact your visibility on the Play Store like slow sessions. You can find this information next to reach and devices which provides updates on your game's user distribution and notifies developers for device-specific issues.

Android vitals details in Google Play Console
Check your Android vitals regularly to ensure high technical quality

Bringing PC games to mobile, and pushing the boundaries of gaming

We're launching a pilot program to simplify the process of bringing PC games to mobile. It provides support starting from Android game development all the way through publishing your game on Play. Starting this month, games like DREDGE and TABS Mobile are growing their mobile audience using this program. Many more are following in their footsteps this year, including Disco Elysium. You can express your interest to join the PC to mobile program.

Moving image displaying thumbnails of titles of new PC games coming to mobile - Disco Elysium, TABS Mobile, and DREDGE
New PC games are coming to mobile

You can learn more about Android game development from our developer site. We can’t wait to see your title join the ranks of these amazing games built for Android. And if you’ll be at GDC next week, we’d love to say hello - stop by at the Moscone Center West Hall!


* Source: Google internal data measuring games on Android 14 or later launched between August 2024 - February 2025.

Making Google Play the best place to grow PC games

Posted by Aurash Mahbod – VP and GM of Games on Google Play

We’re stepping up our multiplatform gaming offering with exciting news dropping at this year’s Game Developers Conference (GDC). We’re bringing users more games, more ways to play your games across devices, and improved gameplay. You can read all about the updates for users from The Keyword. At GDC, we’ll be diving into all of the latest games coming to Play, plus new developer tools that’ll help improve gameplay across the Android ecosystem.

Today, we’re sharing a closer look at what’s new from Play. We’re expanding our support for native PC games with a new earnback program and making Google Play Games on PC generally available this year with major upgrades. Check out the video or keep reading below.


Google Play connects developers with over 2 billion monthly active players1 worldwide. Our tools and features help you engage these players across a wide range of devices to drive engagement and revenue. But we know the gaming landscape is constantly evolving. More and more players enjoy the immersive experiences on PC and want the flexibility to play their favorite games on any screen.

That’s why we’re making even bigger investments in our PC gaming platform. Google Play Games on PC was launched to help mobile games reach more players on PC. Today, we’re expanding this support to native PC games, enabling more developers to connect with our massive player base on mobile.

Expanding support for native PC games

For games that are designed with a PC-first audience in mind, we’ve added even more helpful tools to our native PC program. Games like Wuthering Waves, Remember of Majesty, Genshin Impact, and Journey of Monarch have seen great success on the platform. Based on feedback from early access partners, we’re taking the program even further, with comprehensive support across game development, distribution, and growth on the platform.

    • Develop with Play Games PC SDK: We're launching a dedicated SDK for native PC games on Google Play Games, providing powerful tools, such as easier in-app purchase integration and advanced security protection.
    • Distribute through Play Console: We’ve made it easier for developers to manage both mobile and PC game builds in one place, simplifying the process of packaging PC versions, configuring releases, and managing store listings.
    • Grow with our new earnback program: Bring your PC games to Google Play Games on PC to unlock up to 15% additional earnback.2

We’re opening up the program for all native PC games - including PC-only games - this year. Learn more about the eligibility requirements and how to join the program.

Moving image of thumbnails for popular PC Games on Google Play – Remember of Majesty, Genshin Impact, Joourney of Monarch, and Wuthering Waves
Native PC games on Google Play Games

Making PC an easy choice for mobile developers

Bringing your game to PC unlocks a whole new audience of engaged players. To help maximize your discoverability, we’re making all mobile games available3 on PC by default with the option to opt out anytime.

Games will display a playability badge indicating their compatibility with PC. "Optimized" means that a game meets all of our quality standards for a great gaming experience while "playable" means that the game meets the minimum requirements to play well on a PC. With the support of our new custom control mappings, many games can be playable right out of the box. Learn more about the playability criteria and how to optimize your games for PC today.

Moving image of playable PC Games on Google Play
Thousands of new games are added to Google Play Games

To enhance our PC experience, we’ve made major upgrades to the platform. Now, gamers can enjoy the full Google Play Games on PC catalog on even more devices, including AMD laptops and desktops. We’re partnering with PC OEMs to make Google Play Games accessible right from the start menu on new devices starting this year.

We’re also bringing new features for players to customize their gaming experiences. Custom controls is now available to help tailor their setup for optimal comfort and performance. Rolling out this month, we’re adding a handy game sidebar for quick adjustments and enabling multi-account and multi-instance support by popular demand.

Moving image demonstrating customizable controls while playing Dye Hard - Color War on PC on Google Play
You can customize controls while playing Dye Hard - Color War

Unlocking exclusive rewards on PC with Play Points

To help you boost engagement, we’re also rolling out a more seamless Play Points4 experience on PC. Play Points balance is now easier to track and more rewarding, with up to 10x points boosters5 on Google Play Games. This means more opportunities for players to earn and redeem points for in-game items and discounts, enhancing the overall PC experience.

Moving image showing Google Play Points in Google Play Games
Google Play Points is integrated seamlessly with Google Play Games

Bringing new PC UA tools powered by Google Ads

More developers are launching games on PC than ever, presenting an opportunity to reach a rapidly growing audience on PC. We want to make it easier for developers to reach great players with Google Ads. We’re working on a solution to help developers run user acquisition campaigns for both mobile emulated and native PC titles within Google Play Games on PC. We’re still in the early stages of partner testing, but we look forward to sharing more details later this year.

Join the celebration!

We're celebrating all that’s to come to Google Play Games on PC with players and developers. Take a look at the behind-the-scenes from our social channels and editorial features on Google Play. At GDC, you can dive into the complete gaming experience that is available on the best Android gaming devices. If you’ll be there, please stop by and say hello - we’re at the Moscone Center West Hall!


1 Source: Google internal data measuring monthly users who opened a game downloaded from the Play store.
2 Additional terms apply for the earnback program.
3 Your game’s visibility on Google Play Games on PC is determined by its playability badge. If your game is labeled as “Untested”, this means it will only appear if a user specifically searches for it in the Google Play Games on PC search menu. The playability badge may change once testing is complete. You can express interest in having Play evaluate your game for playability using this form.
4 Please see the Play Points help center for more information including country availability.
5 Offered for a limited time period. Additional terms apply.

Construction is underway in Jefferson City!

Google Fiber has broken ground in Missouri’s capital, marking the start of our network construction in the area. GFiber has been expanding our footprint in the Show Me State for over a decade.

Thumbnail

Since we announced our agreement with Jefferson City last year, we’ve been collaborating closely with city officials to ensure we can build our network efficiently and minimize disruption to residents and businesses.

In addition to beginning network construction, we’re also putting key facilities in place. Yesterday, we installed our first Jefferson City fiber hut. The fiber hut is a key component of our network, serving as a local distribution point connecting fiber lines to neighborhoods and ensuring reliable service. 

Hut being installed recently in Jefferson City.

We expect to start serving our first Jefferson City customers later this year and will continue construction across the community. Residents and business owners will then be able to choose from Google Fiber’s high-speed internet plans, featuring speeds up to 8 gigs to meet their internet needs.


For updates on construction progress and product availability, sign up here. We’re thrilled to bring GFiber to Jefferson City and look forward to connecting this historic and vibrant community.

Posted by Rachel Merlo, Head of Government Affairs and Community Affairs, Central Region



Chrome Dev for Android Update

Hi everyone! We've just released Chrome Dev 136 (136.0.7064.0) for Android. It's now available on Google Play.

You can see a partial list of the changes in the Git log. For details on new features, check out the Chromium blog, and for details on web platform updates, check here.

If you find a new issue, please let us know by filing a bug.

Chrome Release Team
Google Chrome

Jetpack WindowManager 1.4 is stable

Posted by Xiaodao Wu - Developer Relations Engineer

Jetpack WindowManager keeps getting better. WindowManager gives you tools to build adaptive apps that work seamlessly across all kinds of large screen devices. Version 1.4, which is stable now, introduces new features that make multi-window experiences even more powerful and flexible. While Jetpack Compose is still the best way to create app layouts for different screen sizes, 1.4 makes some big improvements to activity embedding, including activity stack spinning, pane expansion, and dialog full-screen dim. Multi-activity apps can easily take advantage of all these great features.

What's new in WindowManager 1.4

WindowManager 1.4 introduces a range of enhancements. Here are some of the highlights.

WindowSizeClass

We’ve updated the WindowSizeClass API to support custom values. We changed the API shape to make it easy and extensible to support custom values and add new values in the future. The high level changes are as follows:

    • Opened the constructor to take in minWidthDp and minHeightDp parameters so you can create your own window size classes
    • Added convenience methods for checking breakpoint validity
    • Deprecated WindowWidthSizeClass and WindowHeightSizeClass in favor of WindowSizeClass#isWidthAtLeastBreakpoint() and WindowSizeClass#isHeightAtLeastBreakpoint() respectively

Here’s a migration example:

// old 

val sizeClass = WindowSizeClass.compute(widthDp, heightDp)
when (sizeClass.widthSizeClass) {
  COMPACT -> doCompact()
  MEDIUM -> doMedium()
  EXPANDED -> doExpanded()
  else -> doDefault()
}

// new
val sizeClass = WindowSizeClass.BREAKPOINTS_V1
                               .computeWindowSizeClass(widthDp, heightDp)

when {
  sizeClass.isWidthAtLeastBreakpoint(WIDTH_DP_EXPANDED_LOWER_BOUND) -> {
    doExpanded()
  }
  sizeClass.isWidthAtLeastBreakpoint(WIDTH_DP_MEDIUM_LOWER_BOUND) -> {
    doMedium()
  }
  else -> {
    doCompact()
  }
}

Some things to note in the new API:

    • The order of the when branches should go from largest to smallest to support custom values from developers or new values in the future
    • The default branch should be treated as the smallest window size class

Activity embedding

Activity stack pinning

Activity stack pinning provides a way to keep an activity stack always on screen, no matter what else is happening in your app. This new feature lets you pin an activity stack to a specific window, so the top activity stays visible even when the user navigates to other parts of the app in a different window. This is perfect for things like live chats or video players that you want to keep on screen while users explore other content.

private fun pinActivityStackExample(taskId: Int) {
 val splitAttributes: SplitAttributes = SplitAttributes.Builder()
   .setSplitType(SplitAttributes.SplitType.ratio(0.66f))
   .setLayoutDirection(SplitAttributes.LayoutDirection.LEFT_TO_RIGHT)
   .build()

 val pinSplitRule = SplitPinRule.Builder()
   .setDefaultSplitAttributes(splitAttributes)
   .build()

 SplitController.getInstance(applicationContext).pinTopActivityStack(taskId, pinSplitRule)
}

Pane expansion

The new pane expansion feature, also known as interactive divider, lets you create a visual separation between two activities in split-screen mode. You can make the pane divider draggable so users can resize the panes – and the activities in the panes – on the fly. This gives users control over how they want to view the app’s content.

val splitAttributesBuilder: SplitAttributes.Builder = SplitAttributes.Builder()
   .setSplitType(SplitAttributes.SplitType.ratio(0.33f))
   .setLayoutDirection(SplitAttributes.LayoutDirection.LEFT_TO_RIGHT)

if (WindowSdkExtensions.getInstance().extensionVersion >= 6) {
   splitAttributesBuilder.setDividerAttributes(
       DividerAttributes.DraggableDividerAttributes.Builder()
           .setColor(getColor(context, R.color.divider_color))
           .setWidthDp(4)
           .setDragRange(
               DividerAttributes.DragRange.DRAG_RANGE_SYSTEM_DEFAULT)
           .build()
   )
}
val splitAttributes: SplitAttributes = splitAttributesBuilder.build()

Dialog full-screen dim

WindowManager 1.4 gives you more control over how dialogs dim the background. With dialog full-screen dim, you can choose to dim just the container where the dialog appears or the entire task window for a unified UI experience. The entire app window dims by default when a dialog opens (see EmbeddingConfiguration.DimAreaBehavior.ON_TASK).To dim only the container of the activity that opened the dialog, use EmbeddingConfiguration.DimAreaBehavior.ON_ACTIVITY_STACK. This gives you more flexibility in designing dialogs and makes for a smoother, more coherent user experience. Temu is among the first developers to integrate this feature, the full-screen dialog dim has reduced screen invalid touches by about 5%.

Customised shopping cart reminder with dialog full-screen dim in the Temu app
Customised shopping cart reminder with dialog full-screen dim in Temu.

Enhanced posture support

WindowManager 1.4 makes building apps that work flawlessly on foldables straightforward by providing more information about the physical capabilities of the device. The new WindowInfoTracker#supportedPostures API lets you know if a device supports tabletop mode, so you can optimize your app's layout and features accordingly.

val currentSdkVersion = WindowSdkExtensions.getInstance().extensionVersion
val message =
if (currentSdkVersion >= 6) {
  val supportedPostures = WindowInfoTracker.getOrCreate(LocalContext.current).supportedPostures
  buildString {
    append(supportedPostures.isNotEmpty())
    if (supportedPostures.isNotEmpty()) {
      append(" ")
      append(
      supportedPostures.joinToString(
      separator = ",", prefix = "(", postfix = ")"))
    }
  }
} else {
  "N/A (WindowSDK version 6 is needed, current version is $currentSdkVersion)"
}

Other API changes

WindowManager 1.4 includes several API changes and additions to support the new features. Notable changes include:

    • Stable and no longer experimental APIs:
      • ActivityEmbeddingController#invalidateVisibleActivityStacks
      • ActivityEmbeddingController#getActivityStack
      • SplitController#updateSplitAttributes
    • API added to set activity embedding animation background:
      • SplitAttributes.Builder#setAnimationParams
    • API to get updated WindowMetrics information:
      • ActivityEmbeddingController#embeddedActivityWindowInfo
    • API to finish all activities in an activity stack:
      • ActivityEmbeddingController#finishActivityStack

How to get started

To start using Jetpack WindowManager 1.4 in your Android projects, update your app dependencies in build.gradle.kts to the latest stable version:

dependencies {
    implementation("androidx.window:window:1.4.0") 
    // or, if you're using the WindowManager testing library:
    testImplementation("androidx.window:window-testing:1.4.0")
}

Happy coding!