How to supercharge android game development: vulcan, 16kb pages, & more
Android Developers
0:02 Good morning, everyone.
0:04 We'll get started here in a second.
0:11 So we've got some exciting content for you today.
0:14 And you'll hear from me first.
0:16 My name is Mark dochterman.
0:18 I lead engineering for games and graphics for Android.
0:22 And today, I wanted to give you a quick
0:25 update on the Vulkan graphics API on Android.
0:29 As we announced last year, Android is now Vulkan first.
0:34 This means that all of our focus and support
0:36 for graphics is on Vulkan versus older APIs like OpenGL.
0:42 What does this actually look like in practice
0:44 for you as a developer and for the OS.
0:47 It means that over time, Android is supporting a single native GPU
0:52 API and all graphic layers including game engines,
0:56 graphic APIs, other graphic APIs, eyes in the system.
1:00 UI will sit on top of Vulkan in this dramatic layer cake.
1:07 In 2025.
1:08 We passed an important milestone for Android.
1:11 More than 50% of new games launched in the last
1:15 six months on Unity are now using Vulkan.
1:19 This has been a long time coming.
1:21 Furthermore, nearly 100% of all devices running Android 14
1:26 or higher and now provide Vulkan 1.1 functionality or higher.
1:32 This makes Vulkan availability a thing of the past on newer devices.
1:37 Recent games that have shipped on Vulkan include game of Thrones,
1:41 King's Road, deep rock galactic, and dredge.
1:45 If your game or game engine is targeting Vulkan,
1:48 you'll be glad to know that we're
1:50 constantly raising the requirements for Android.
1:53 In Android 17.
1:55 Interesting new extensions.
1:57 Interesting new extensions like multi draw
1:59 indirect are now required in New devices,
2:01 which gives you more possibilities for skilled rendering.
2:06 If you want to get an idea about
2:08 the ubiquity of Vulkan features and extensions on Android,
2:11 reference the latest Android Vulkan profile 2025.
2:15 This is something we do on an annual basis,
2:18 and it gives you an indication of the coverage
2:21 for more than 80% of active devices.
2:24 You can use this as a reference
2:25 if you're considering a particular extension or feature.
2:28 How well covered is it in the entire Android ecosystem.
2:33 Here's what I want you to take away from this update.
2:36 Going forward, all new Android phones and other popular Android
2:40 form factors will no longer require a native Es driver.
2:46 We recommend all games to use Vulkan,
2:49 but for existing older games and games that cannot switch to a Vulkan backend,
2:53 we are providing angle as a solution.
2:56 Angle is our OpenGL emulation layer that runs on top of Vulkan.
3:02 Soon, game developers like yourselves will have two choices
3:05 use Vulkan as the graphics backend on new devices,
3:09 or opt your game into using angle for emulation.
3:14 We find that the performance and the cost of using angle is rather nominal,
3:20 in some cases, better, in some cases slightly worse.
3:23 But it gets us all onto the same Vulkan layer.
3:27 To prepare for this transition, we recommend you start testing with Vulkan
3:31 and angle today depending on your situation.
3:34 To test your game on Vulkan,
3:35 it is likely that your game engine already supports a Vulkan backend.
3:39 Choose this backend for recent devices.
3:41 To test your game with angle,
3:44 refer to the article in the link posted there on our developer
3:48 site and let us know if you run into any issues.
3:52 Thank you for your support and I'll now pass things over to Stephen,
3:56 who will tell us more about 16 pages.
4:04 Thank you.
4:05 Mark hey everyone.
4:07 My name is Stephen Moreland.
4:09 I'm a software engineer on the Android systems team.
4:12 And for the past 10 years,
4:13 I've worked on how Android interfaces with its hardware.
4:16 Today, I'm going to be talking about some of the changes
4:19 that we're making with how we interface with memory and Android.
4:23 That is, I'm going to be talking about 16 KB pages now.
4:28 I hope you've heard of this, but if you haven't,
4:31 please pay attention because this is something
4:33 that we're requiring all apps to do.
4:37 So before I get into the technicals of what this is or what we're doing
4:43 and why or and so on, I'm going to talk about why we're doing this.
4:47 So what does 16 KB pages get us.
4:50 This is a change that we're able to make on certain hardware,
4:55 which allows us to get next year CPU performance one year later.
5:00 So it's an overall setting that we need to apply
5:02 from the lowest layers of Android all the way to the application layer,
5:06 which gives us much faster performance much earlier.
5:09 And I'm really excited about that for the performance
5:11 that will give us for our games.
5:14 So what exactly is 16 KB pages.
5:18 Well, it says it right here.
5:19 Page size is a granularity that the hardware and the OS deals with memory.
5:25 But what does that really mean.
5:27 So when your application requests a page on an Android device today,
5:31 it goes to the kernel and the kernel goes
5:33 to MMU and it sets up 4 kilobytes at a time.
5:37 And so you ask for memory and it sets up four KB and you ask for memory.
5:40 And it sets up four KB with 16 KB pages enabled hardware.
5:45 We're able to request four times as much memory kilobytes at a time,
5:50 which reduces a lot of the overhead in the memory
5:53 subsystems of Android and gives us a smoother,
5:56 better performance overall for the entire OS and all applications on it.
6:00 So one thing to note here.
6:02 16 KB pages is only for arm64 hardware,
6:06 which is really common on Android and Java.
6:10 Code will just work out of the box on 16 KB pages.
6:14 But native code needs to be 16 KB aligned.
6:16 And this is a compiler option in most cases.
6:20 And additionally, there are some times, sometimes some runtime behavior things.
6:24 So if you're doing low level programming,
6:26 maybe in a game engine and you're using Nmap addresses,
6:30 there also need to be aligned.
6:31 But this is much simpler than say, the 32 to 64-bit migration.
6:36 And one other difference, finally, is that game binaries are universal.
6:40 So what does that mean.
6:42 If you have a four KB binary four KB aligned game,
6:46 this will work on four KB devices,
6:48 but it may crash on a 16 KB device once you align your game to 16 KB pages,
6:54 that's going to work on a 16 KB device
6:56 and a four KB device with the same binary.
6:58 So we're not adding any logistical overhead at all for this.
7:03 So yeah, I just talked about the technical overview.
7:08 Now I'm going to talk about where we're at in this migration
7:11 and what we've done in the OS to enable 16 KB pages.
7:15 So the big thing is in Android 15 plus on select devices
7:18 such as the Pixel 8 and the Pixel 9, there's an option.
7:22 There's a developer option.
7:24 This is optional for OEMs and SOCs to implement.
7:28 And if you go into your developer option,
7:32 you can boot the device in 16 KB pages here.
7:35 And one thing to note is that today,
7:37 this does require you to wipe the device, so it has to be a development device.
7:41 However, if that doesn't work for you,
7:43 we have plenty of other options with Android emulators and virtual
7:46 devices where you can try out 16 KB pages elsewhere.
7:50 Additionally, you can expect launches in the near future with 16 KB pages,
7:54 especially on high memory devices where we have more memory
7:57 than we need to optimize to be able to use faster.
8:00 And then, as of last year, last November,
8:03 all games are required to be 16 KB aligned.
8:06 So there are a few waivers and exceptions for that now.
8:09 But this is something that we're pushing for the whole ecosystem to adopt.
8:14 So let me dig into a few details with the performance that we're seeing.
8:21 I talked about how the memory subsystem is able to run four times faster.
8:25 But what does that mean in practice.
8:27 So we ran a few industry standard benchmarks pcmark.
8:30 You can see we got about 8.7% faster geekbench.
8:34 We got 2.5% faster with some sections,
8:37 specifically those that are bottlenecked on memory getting 7% to 9% faster.
8:41 Also, transactions the Android system.
8:44 Large ones are about 20% faster or more.
8:49 And also, one thing to note is that this comes
8:52 with a memory increase of about 3% to 5% overall on the system.
8:58 And this is largely offset with more efficient reclaim.
9:01 What that means is that when we're running low on memory,
9:04 we can more efficiently go and put things to cache, put things to the disk,
9:08 close things down and get pages back to make them available.
9:11 And in practice, we see that the number of background application
9:18 kills or visible application kills actually improves with 16 KB pages.
9:24 However, in some cases, for instance,
9:26 if your application is allocating or memory mapping 4 kilobytes at a time,
9:31 there may be some wasted memory on 16 KB pages,
9:35 so you may want to investigate that.
9:37 Finally, we ran a set of tests on seven representative
9:43 games that we feel is representative of performance on Android today.
9:47 Name and what we saw is that at peak times,
9:51 we got an increase of two frames per second, up to two frames per second.
9:55 As we're hitting that frame cap.
9:57 And for the first five minutes of play,
9:58 an additional three frames per second of savings without any
10:02 other optimizations purely from reducing some of these memory bottlenecks.
10:07 Finally, we saw up to 7.4% power reduction,
10:10 meaning that people can play your games for longer.
10:13 All right, so I've talked a little bit about
10:16 what 16 KB is and why we're doing it.
10:19 But here's what you actually need to know
10:21 in order to make sure that your game is compatible.
10:24 So all the information in the slide deck and even
10:29 more is at this link here developer.android.com 16 KB pages.
10:34 And what you should know is that most tools
10:36 today work with 16 KB pages out of the box, and they have for a while.
10:40 So if you're using NDK 28 plus or Gradle 8.5.1 plus,
10:45 it's going to build with 16 KB support right out of the box.
10:49 Additionally, most major SDK support this today, so I called out a few here.
10:53 Unreal 5.6.1 plus Unity 2021,
10:56 2022 and Unity 6 and newer versions all support 16k right out of the box.
11:04 But the real takeaway is that if you
11:07 want to make sure your device works or sorry,
11:09 if you want to make sure your game works on 16 KB KB pages,
11:14 the only way to know is to test it.
11:16 So we ask that you please test your game
11:18 on a 16 KB device or emulator to make sure it works,
11:22 and after that you can enjoy increased performance on 16 KB.
11:26 All right.
11:27 Thank you, everyone.
11:29 I'd like to invite my colleague Val up to talk.
11:37 All right.
11:38 Hello, I'm Val O'Donnell.
11:40 I'm a developer relations engineer at Google Play.
11:43 And today, I want to talk about premium games on Google Play.
11:47 So the first question is why port to play.
11:49 Well, we have a very active gaming community.
11:51 There's a lot of Android users.
11:52 A lot of them are gamers.
11:54 And more than that, we've got big device reach.
11:56 So in addition to Mobile, we support PCs, Chromebooks, foldables, and tablet.
12:02 And this is all wrapped up in our ecosystem,
12:05 supported by a buy once play anywhere model.
12:08 And this means that players can play across devices seamlessly.
12:12 So I want to talk a little bit more about the buy once, play anywhere idea.
12:15 So it's a cross-platform ownership model,
12:18 and that means we've got common billing across different devices.
12:21 We've got a unified library and progress syncing between devices.
12:26 So there are two parts to this.
12:28 And the first thing is the Play Game services or pg's.
12:31 And this is a portable player ID and enhancing mobile games.
12:36 So it gives you access to achievements seamless restore.
12:40 And this means that players don't need to manually sign in.
12:43 They don't have to create a link with another ID system,
12:46 and their progress syncs seamlessly across devices,
12:48 hence seamless restore with the same PKGS.
12:52 You also get leaderboards and Cloud save.
12:55 So Cloud save brings me to the second part of buy once play anywhere,
12:58 which is our saved games API.
13:01 So this is a part of PKGS,
13:03 and it's a Cloud Storage solution that lets your players progress,
13:06 save progress on Google servers.
13:09 And it's really simple because you don't need your own server.
13:12 You don't need to deal with Cloud save.
13:13 And we actually have an out of the box UI that can handle save slots,
13:18 cover images and descriptions.
13:20 Additionally, the data saves on the player's Google Drive,
13:23 and also if they're offline, they can save locally and sync again later.
13:28 So this is a robust system with a very simple setup and it adds a lot of value.
13:32 And on that note, I want to talk just
13:34 a very high level overview of what that setup entails.
13:37 So if you want more documentation,
13:39 please scan the QR code or check out the link below.
13:41 But essentially first you're going to go
13:44 to the Play Console and enable Play Game support.
13:47 And then in your code you're going to obtain
13:50 the snapshot client object and call the Git snapshot content method,
13:53 pass in the activity.
13:55 And for displaying again, there's that out of the box UI that I mentioned.
13:59 And I also want to say that you can integrate the snapshot API
14:02 any place you want your players to be able to interact with, save games,
14:05 and restore their progress.
14:07 Finally, for writing and loading games,
14:09 that's an asynchronous call to snapshots client open.
14:13 So again check out our documentation.
14:14 But it's a pretty straightforward process from start to finish.
14:18 So now that you want to port to play, I want to talk a bit about what we're
14:23 going to do to support you when you're here.
14:25 So one of the things we have is free trials for games.
14:28 This does just what it says on the box.
14:29 It's going to lower the barrier for getting players to try out your game right.
14:33 It's going to showcase the quality.
14:34 Players can get involved.
14:36 Love the game.
14:36 And it's also going to communicate really clearly
14:38 that this is a paid game and that can avoid, void, frustrated players.
14:43 Maybe they didn't understand it was a trial.
14:45 So it's really important to communicate that very clearly.
14:48 It's also really simple because only one listing is
14:50 needed for both the trial and the full game.
14:53 And finally, players can continue their progress after purchasing.
14:56 So it's a really good experience for them.
14:59 OK, so that's free trials.
15:01 We've also got play pass.
15:02 That's a subscription of curated games.
15:04 So again, another way to lower the barrier to get more people playing your game.
15:08 It makes it really easy for new players to find and try out your game.
15:11 And it gets your title featured in our dedicated
15:13 section of the Play Store for increased visibility.
15:17 And finally, it's also simple to implement because the Google
15:20 Play billing API supports both standard and subscription models.
15:26 We also support wish listing, and of course,
15:28 if the game isn't ready or the player is not ready, no game gets forgotten.
15:32 They can wishlist pre or post launch
15:35 and they'll get a reminder when your game launches.
15:38 Wish lists sync across devices.
15:40 Again this buy once, play anywhere model and listing
15:44 also supports improved recommendations and promotions,
15:46 which helps us get your game in front of future players
15:49 and make sure players are playing games that they're excited to play.
15:53 And finally, I want to talk about discount support.
15:55 So this is driving player engagement with discounts and rewards.
15:59 And we visualize discounts with strikethrough pricing for clarity.
16:03 We also do feature discount discounted games in high
16:06 traffic areas like the Offers tab and the tab.
16:09 And Play Points can create targeted loyalty programs to reward your players.
16:15 OK, so now I've gone over why you want to come to play,
16:18 how we're going to support paid games.
16:20 And now I just want to end with some very quick porting tips.
16:23 So some really fast wins of course.
16:25 Optimizing settings for Android pay particular attention to texture settings.
16:29 You want to be using ASTC Android texture compression.
16:33 You also want to think about simplifying lights, cameras,
16:35 shaders can you swap out floats for ints, for ints, for example.
16:39 Even these small gains can be a great place to get started.
16:42 And then also make sure that your dependencies are supported on Android.
16:45 And this is pretty important for the scoping phase to get
16:48 a sense of the word that's going to be required.
16:51 And finally, use available tools.
16:53 So for those of you building with Unity or Unreal,
16:55 we've got PKGS for both engines,
16:57 we've got PKGS for Unity or PKGS for C and C+ plus,
17:01 as well as our ADP adpf plugin.
17:04 So overall, I hope you can see the value in play,
17:07 how much we're doing to support premium games,
17:09 and what a good experience it is for players.
17:11 But you don't have to take my word for it.
17:13 I want you to please welcome Emil Kerr
17:14 to talk about porting deep rock galactic survivor.
17:22 Good morning, everyone.
17:24 My name is Emil.
17:25 I'm the head of product at Funny games
17:27 where a game Studio located in sunny ahus, Denmark.
17:30 Well, OK, right now it's snowing, so the weather here is much nicer.
17:33 But at funding, we built games for 14 years and we're proud
17:36 to develop games with both our own original IPs but also partner IPs.
17:40 I'm here today to talk to you about
17:41 one of our most successful partnerships to date.
17:44 Deep rock galactic survivor.
17:46 And I'm going to talk about how we adapted it
17:47 from a PC first title to a title that can be played anywhere.
17:52 If you like stats, get your cameras out.
17:54 Take a picture.
17:55 I'll be brief.
17:56 So what started out as a simple prototype you can see on the GIF
17:59 there hit steam early access in February 2024 and it completely blew up.
18:04 By the time we launched into 1.0 and mobile and a mobile port in Q4 2025,
18:08 we've crossed over three million units sold across all platforms.
18:13 Mobile metrics, I think, speak for themselves.
18:15 It's at price parity with our PC version,
18:17 and we're seeing double digit conversion rates and players
18:21 spending hours daily in the minds of foxes.
18:24 We're extremely proud of this and we think it's great.
18:27 But, how did we get there.
18:30 I said.
18:30 But basically, we see deep rock galactic survivor as a great
18:34 game that travels well across a lot of different surfaces.
18:36 So no matter if you prefer platform is Xbox
18:39 Steam Deck your gaming rig at home or your phone.
18:41 We want to make sure that it's easy
18:43 to pick it up and bring it with you everywhere.
18:46 So to set the stage,
18:47 here's a brief timeline of how we got to where we're at today.
18:50 We started the porting in March 2025,
18:53 and that's when we got very serious about that talks about this.
18:57 This happened while we were still very actively developing the game.
19:00 So it launched in early access in 2024, like I said.
19:03 So at this point, we're still very actively developing the game.
19:06 In September 17, we released 1.0 on Steam, Xbox, and PC,
19:10 and then six days later, we announced mobile, ran a pre-registration campaign.
19:16 And then finally on November 12,
19:17 we released the game on Google Play ecosystem with phones,
19:20 tablets, and play games for PC.
19:23 But porting a live game requires a strong and established process.
19:26 So what started when we started developing and porting the game to mobile.
19:31 Our core development team back home was still
19:33 very locked in to their own set of goals.
19:35 Course they're working in their own good developed brains,
19:37 and they were completely focused on the 1.0 deadline at hand.
19:40 That's adding new biomes, expanding the PC game scope,
19:43 listening to feedback from players in early access.
19:46 All of the complicated things that go into operating a game
19:49 and improving it while with the players in the community.
19:53 So that's happening and that's busy and hard
19:57 enough now to handle the mobile port and parallel.
20:01 What we did was we spun up a separate mobile developer branch on Git.
20:04 And this is where our mobile team could focus
20:07 their efforts and steered priorities and informed the teams on changes.
20:12 And we could monitor and would let the mobile team know what was happening.
20:17 We worked closely together with pixiv in Sweden
20:19 and Unity Technologies in order to make this happen.
20:21 So pixiv handle UI and general optimizations,
20:24 while Unity did targeted deep dives and very deep technical improvements.
20:29 So the finer details of how we structured this is a talk in and of itself.
20:32 And I only have 20 minutes.
20:33 So I'm not going to bore you with all the details.
20:36 But if there's one takeaway I want you to take away
20:38 from this and the way that if you're thinking of doing this yourselves,
20:42 I would recommend you do daily stand UPS.
20:45 Don't treat your subcontractors, subcontractors,
20:47 or the teams that you work with as separate
20:50 entities and let them go off on their own.
20:52 Sit with them.
20:53 Work together.
20:54 Inform them of what's happening on the main line
20:56 of your game so they can deliver a better experience.
20:59 Take ownership of the product decisions that you need to make,
21:03 because that's the way that you can really
21:05 ensure that you deliver a very high performing game.
21:08 All right.
21:09 So we have a process in place.
21:11 So now we need to find some sort of a goal
21:13 that's shared goal that I was talking about before.
21:16 So for this, we laid out three core goals for the port.
21:19 First we needed to adapt it to mobile.
21:21 So we treated phones as a premium platform where we wanted
21:24 to make sure that the game felt perfectly natural to play.
21:27 No matter if you held your phone in portrait or landscape.
21:29 From the start, we were very convinced that survivor would be a good fit.
21:32 But we didn't just want to take the PC version
21:34 and just slap it on a phone and call it a day.
21:37 We knew that we wanted to make deep improvements
21:39 to the game in order to make it really fit, it belonged on phones.
21:43 Second high performance.
21:45 We wanted to reach a massive mobile audience,
21:47 and that also meant that we needed to make sure that it ran well on well.
21:50 Internally, we call it toasters.
21:52 Everything from the high end Pixel 10 Pro kind of devices,
21:57 but also the older legacy devices as well.
22:01 So we wanted a wider support as possible.
22:03 So in order to do this, we knew
22:05 that significant optimization was needed to make that work.
22:09 Finally, we also needed to make sure that it fit the new home.
22:12 The new platform would here would be Google Play and the ecosystem.
22:16 And that also meant fully embracing all the development
22:18 tools and opportunities afforded to us by being on plane.
22:24 So for us, as a support, like I said,
22:26 isn't just about pushing a PC game onto a smaller screen,
22:30 it's about making sure that the game respects the platform,
22:33 and it feels like it belongs on the platform where it lives.
22:35 So respect the form factor.
22:37 Demand high performance of the game that you
22:39 make and leverage the native tools available to you.
22:43 So let's get into some details.
22:44 The first big task we did was we wanted to adapt the game from running
22:48 on landscape and adjust some UI and work
22:50 out how to deal with things like virtual joysticks,
22:53 camera positioning, balancing, stuff like that.
22:55 So we got things up and running fairly quickly.
22:57 We got it both in Figma but also on device,
23:00 and we're very happy to see it play well in the core game.
23:03 But one thing is, seeing those first few screens work
23:06 well on device is something completely else to deal with.
23:09 The mountain of meta screens that you've built into your game.
23:13 Deep rock galactic survivor is a very information dense game,
23:16 and there's things that we had to chug out that didn't make sense on mobile,
23:20 like keybindings and specific settings,
23:22 while there were also other elements that we
23:24 needed to add to adapt it to the platform.
23:26 So things try before you buy a shop, in-app purchases,
23:29 and a way to sell DLC in the game was something that we needed to add in.
23:35 There were also screens that needed significant modification to work on mobile,
23:38 so something that can easily fit on large screen or on your Console at home.
23:44 We needed to turn some UI elements into tabs
23:46 or carousel interfaces to make it work on touch.
23:50 Also, make sure that it worked both in tablet foldable and 916 and 16 9.
23:56 So the decision to support both landscape and portrait meant
23:58 that we had to deal with all the UI at least twice,
24:02 sometimes more than twice, to make sure that it really fit.
24:05 So if you're thinking of putting a PC game, don't underestimate.
24:08 Don't underestimate this part of it.
24:10 Be very good friends with UI artists.
24:12 Bring them treats.
24:13 They'll have some long, long work like long nights ahead of them.
24:17 But you can plan this in from the start and you should write performance.
24:22 One of the big undertakings, one of the big undertakings in this part,
24:26 was a full replacement of the planning system in the game.
24:28 This was developed over several months by Unity technologies,
24:32 one of their engineers called Ronan.
24:33 He worked on this tirelessly and he really delivered great work.
24:36 The entire team did the move to flowfield planning,
24:40 instead of the Unity sort of Native navmesh system,
24:44 meant that we could lower the cost of navigation in game.
24:46 It's a crucial lift for those moments where
24:48 the players need to navigate the complex mazes,
24:50 and all the glyphs need to swarm you, not just 10 or 50,
24:55 but hundreds of enemy entities that are following the player around.
24:59 So the move to flowfield navigation meant that we
25:01 could cut navigation costs by 60% on peak frames.
25:04 Massive improvement.
25:06 But when you swap something out as fundamental as navigation system,
25:10 you get to have a lot of fun issues.
25:14 So here's the footage from an early build.
25:15 I don't know how many have played deep rock, galactic survivor, a few.
25:19 If you don't the enemies are not supposed to do that.
25:23 Bounce around and fly like it's bad design.
25:27 It's not easy to survive, which is the whole goal of the game.
25:32 So this wasn't great.
25:35 And this is what you get when you swap out a fundamental system
25:38 to a game that's so dependent on navigation and enemy behavior live on a game.
25:44 So not only do we have a game that was live on early access
25:47 and a ton of millions of users
25:49 who were accustomed to how navigation should feel,
25:52 we now needed to make sure that we
25:54 could match that expectation in the new planning system.
25:59 So what this meant was that we're basically doing the Indiana
26:02 Jones idol swap on a game with millions of active players,
26:06 where they really know how it's supposed to feel.
26:08 I'll get back to how we made sure that we nailed that perfectly.
26:11 But basically, if you're going to do a complete system swap,
26:14 I think if you really we had to also make sure you have enough time to review,
26:20 balance and iterate on it.
26:22 Work with your designers,
26:23 make sure that they take the time out of their busy day and schedule to prep
26:27 for that 1.0 launch to sit and actually make sure that this feels great, too.
26:32 So for our PC launch,
26:34 take art and design really like Unity's VFX Graph and visually
26:38 it allows us to make things that look really amazing.
26:41 But we also knew that it was an experimental package.
26:44 It was marked experimental for mobile,
26:45 so we were aware that this could be a risk going into porting the results
26:50 is that when players trigger specific particle
26:52 systems that use VFX Graph this would happen.
26:55 So massive stuttering and ultimately crashes on devices
26:59 across some sort of affected Vulkan devices.
27:03 So advice one here is if a package is labeled experimental,
27:08 believe it and think hard about if it makes sense for us,
27:12 it makes sense to stick with VFX Graph.
27:14 It allows us to make really nice things.
27:16 So what we did was we had to triage.
27:19 So for us, gameplay comes first of course.
27:21 So an enemy attack, telegraph or particle system that sort
27:24 of tells the user like there's something bad coming in your direction.
27:28 Now you need to dodge.
27:29 That's way more important than a smoke particle system.
27:32 So for a short term solution, we monitor Crashlytics and use Firebase Remote
27:35 Config to force problematic devices onto OpenGL.
27:39 This stopped the crashes.
27:40 Basically stopped the bleeding right.
27:42 And we didn't punish users who had fully compatible Vulkan devices.
27:45 The long term cure here, of course,
27:47 is to port all the critical systems to shuriken and have
27:50 multiple particle systems in the game at the same time.
27:53 Huge shout out to tech artists in the room if you're here I see you.
27:58 You do amazing work.
28:00 And for situations like this, I'd recommend you
28:02 to ally yourself with tech artists because you'll need
28:04 their help to port all the particle systems up for us to be able to do this.
28:09 We work closely, both with our own internal tech artists
28:12 that were able to come in and save the day, as well as take artists from Unity.
28:17 So we managed to clutch.
28:20 Clutch it at the end.
28:22 Now platform achievements.
28:24 I don't know if but on Steam and on the other platforms,
28:29 we have 300 achievements.
28:30 We didn't want to settle for anything less than
28:32 300 achievements when we moved to Mobile as well.
28:35 So to achieve this, we actually work very closely with the Google Play team
28:38 and the Google Play engineering team
28:40 to achieve and expand the limits on achievements.
28:42 So today the limit is 500 achievements on Google play, which is very exciting.
28:47 So we helped raise the roof for everyone.
28:50 So don't hold back on achievements.
28:51 But speaking of achievements, what should you be aware of when you come from PC.
28:56 Well we were the first game to get over 300 achievements.
28:59 We're very happy about that.
29:01 So a few tips on that.
29:03 First achievements are cool, players really like it and they respond well to it.
29:06 It drives engagement.
29:07 And just like they keep playing it for a certain cohort of players,
29:10 it's a reason to keep coming back,
29:12 competing with their friends and just really, be better than everyone else.
29:16 But if you're doing something like this, the Play
29:19 games services publishing API is your best friend,
29:22 especially if you have 19 different languages
29:25 like we do like localized for localization.
29:28 So a word of Warning,
29:30 if you're coming from other platforms and bringing your PC game to play,
29:34 be aware that there's tighter restrictions on text limits.
29:38 There's a ceiling on how long the title of your achievement text can be.
29:42 And also there's a ceiling on how long the description can be.
29:45 So plan your achievement text with mobile in mind from the start.
29:49 Don't wait until you're out and then you have to retool it.
29:52 Trust me, I know I spent a lot of time trying to slim down the text
29:57 and make sure that it won't fit sort make sure that it fits from day one,
30:04 especially for localizations and especially for localization
30:10 since some languages just are very wordy.
30:13 Shout out to all the Germans in the house.
30:15 You should never underestimate the length of German words.
30:20 All right, we're almost at the end here.
30:21 There's just one final point I want to make, and it's about playtesting.
30:25 So during the development of deep rock galactic survivor,
30:27 we leveraged testing a lot.
30:28 That's also true for the PC version.
30:30 We had testers for this on site, in our offices, in our house,
30:33 as well as distributed wide scale tests across several weekends,
30:37 where we recruited over 600 discard players from our community.
30:42 So yeah, in-office focus group testing during early development when things
30:45 weren't announced and we were still sort of working on it,
30:47 and we tested both on fans of deep rock,
30:49 galactic survivor, and also people who had no idea what the game
30:52 was because we wanted to make sure that we could appeal to both.
30:56 I said, we had some of the more hardcore fans,
30:58 the people who really knew how the movement system was supposed to work.
31:01 So once we've done our first internal passes,
31:03 we could send it out to the Discord testers that we had,
31:07 and they would come back within hours with a bunch of feedback
31:11 on what we needed to adjust to really make it work better.
31:14 So some of the takeaways from testing.
31:16 Sorry, some of the takeaways from testing were very obvious,
31:19 like adjusting fonts, but others were more subtle, so QA.
31:23 They'll verify that your landscape mode technically works.
31:26 You can go into Settings,
31:27 and you can change your game from portrait to landscape.
31:30 What they won't tell you is that users don't find that easy to navigate
31:34 or don't immediately understand that they'll be
31:36 able to change from portrait to landscape.
31:39 So community told us that they didn't even realize that turning
31:42 like that, they could turn their phones around was an option.
31:44 So that feedback made us add callouts to our loading pages and splash screens.
31:48 So this is the kind of stuff that QA won't catch,
31:50 but your fans will catch immediately.
31:52 So definitely remember to use your fans.
31:56 Remember to test more than just the game as well.
31:58 When you're in pre-registration phase,
32:00 you can also test the packaging of your game, your app icon,
32:03 the store description,
32:04 and the screenshots in the videos that go along with your store listing.
32:07 This is an immensely powerful tool.
32:13 And it's something that really makes it possible
32:15 for you to optimize your store page before you launch.
32:18 I highly recommend you do it because with the kind
32:20 of exposure that you can get on a platform like Google Play,
32:24 the difference between 5% and 10% is massive.
32:26 Once you start to look at the numbers of installs that come in.
32:30 So before I leave you with a short video,
32:32 I want to go through the good and the bad parts of this project.
32:35 So let's start with the bad dwarf stuff.
32:38 So VFX Graph we didn't plan for this.
32:41 This just suddenly was a problem that we had to deal with.
32:44 So I recommend that you build a test scene early and test on lots of devices.
32:48 If not, your tech assets will get hit with massive unplanned porting tasks,
32:52 and you'll have to buy them candy to convince them to help you.
32:56 Another thing is for us, we decided to go with this try before you buy.
33:01 So it's basically a free demo that you can download,
33:04 and then we limit you to one biome, a selection of specific dwarves,
33:07 and then you can play that for as long as you want.
33:10 But that also meant that we had to build in an in-app store,
33:13 a way to run sales, a way to run and sell DLC.
33:17 So that takes integration time.
33:18 So make sure that you plan that in from the start
33:20 and have time to do several iterations.
33:22 Because this is where the conversions for your game is going to come from.
33:26 You could also consider using the new trial
33:28 system that Val was talking about from Google Play.
33:30 I think that's an extremely, extremely valuable tool as well.
33:33 That would massively lower the cost of doing something like this.
33:37 All right.
33:37 So moving on to the good stuff.
33:41 Working as a single team with the developers
33:43 that you do the porting with is extremely important.
33:47 It makes it possible to make something
33:48 that feels like it's the same game everywhere,
33:51 which was one of the key goals for us,
33:52 and treating our partners a picture of Unity.
33:54 And Google as one unified team with shared
33:57 goals mean that we always knew what was happening.
33:59 So did our partners and no one was left in the dark.
34:03 Another thing is leveraging your community.
34:05 So our in-house community, our in-house community, court bugs that QA missed,
34:09 and we actually tracked mark review over time.
34:12 So we asked them if this was on the Play Store,
34:14 how would you rate it one to five.
34:16 And that was with that, we were able to evaluate and gauge
34:20 launch readiness as we were getting closer and closer to the release.
34:24 Finally working closely together with the Google Play team involved.
34:27 Huge shout out to our friends here on stage today with me today.
34:30 They helped us squeeze every drop of performance out of this was invaluable.
34:35 They provided great guidance and really made sure that we
34:37 could make the most of the move to smaller screens.
34:40 So porting a PC to mobile isn't about
34:43 shrinking your assets or just pushing it live.
34:45 It's about expanding your team and all the scope
34:47 to make sure that you can do it right.
34:49 So rely on your partners, test your game early, and trust your community.
34:53 This concludes my part of the presentation.
34:55 So thank you for your time.
34:56 Feel free to find me after the talk
34:57 if you have questions about deep rock, galactic survivor,
35:00 and any questions you might have about how
35:02 to port your game to from PC to mobile.
35:05 I'll leave you with this fantastic launch trailer
35:07 that the Google Play team made for our launch dragonstone.
35:12 Oh, no.
35:12 Wait, how do I start it.
35:14 There we go.
35:15 With Google Play games, you can play unlocked, unlock a free biome, free class,
35:21 and free mission across mobile and PC so you can get straight to the swarm.
35:28 Go play deep rock galactic survivor on mobile
35:31 and PC with Google Play games download now.
35:35 That's it.
35:35 Thank you for listening.
35:36 I'm going to give it up to Simon.
35:45 Hello, everybody.
35:47 So I'm Simon cook.
35:48 I'm a developer relations engineer in Android games DevRel at Google.
35:53 I'm also part of the leadership team for our graphics profiling tools.
35:57 Before this, I was in the Xbox advanced technology group for a decade,
36:01 and I worked at Midway games and a few other places around the industry.
36:05 So part of this session is all about the direction
36:08 we're going in with our profiling tools for Android,
36:13 especially regarding games and graphics profiling.
36:18 But first, let's do a quick recap.
36:20 So back in 2017, Google released.
36:25 You can think of as a front end over a whole
36:28 bunch of different profiling and trace systems in Linux and Android.
36:33 It also provides a low overhead mechanism for capturing event traces,
36:37 as well as data from other data providers.
36:42 And it even has its own web App UI for analysis.
36:44 Now, at first it didn't support GPU counters,
36:47 but later versions added support for that.
36:50 And you can see that in there today.
36:53 Roll forwards to 2020.
36:55 And we reached the release of the Android GPU Inspector in beta.
37:00 Although I suspect that in 2020 you might
37:03 have had a few other things on your mind.
37:05 So you'll be forgiven if that managed to slip underneath the radar.
37:10 AGI supported system profiling that is like.
37:14 It did wall clock time analysis of system event traces.
37:19 It also supported frame profiling through API call capture for Vulkan,
37:23 and as part of the rollout of Android 11,
37:27 it supported GPU counters on specific devices.
37:32 Now your GPU vendor, of course, as everybody knows,
37:36 already has their own selection of outstanding tools
37:41 that unlock deeper understanding of their specific hardware.
37:45 So, for example, we have arm with the streamline Performance Analyzer.
37:50 Imagination technologies has their awesome PVR tuned tool.
37:54 Qualcomm has the Snapdragon profiler,
37:57 and Samsung just announced this week that for devices with next GPU,
38:02 they are releasing soh-cah-toa and it's available in open beta.
38:06 So I encourage you to go check that out.
38:10 Now so why do we need a new
38:13 graphics profiler if there's all of these other tools.
38:15 Well, we've heard a lot of feedback from frustrated game devs
38:19 that our basic graphics profiling story in Android is kind of incomplete,
38:25 or that it's hard to find the tools that you need to succeed.
38:27 And many of you want a single tool that will allow you to analyze your game
38:32 and figure out how to improve its performance
38:35 on all of your devices, not just one.
38:38 So we'd like to try to fix
38:40 this and make it better for the entire Android ecosystem.
38:45 Now, I just mentioned that everybody's got OEM and HP tools already.
38:50 Well, we're not trying to eliminate those.
38:53 We'd like to become the first tool that you reach for in your toolbox,
38:57 but not necessarily the last.
38:59 There's a continued need for a first line of defense tool,
39:02 a tool that you would use to start your performance analysis,
39:04 and one that works across all devices.
39:07 So this is why we're looking to take the work
39:11 that we did in the Android GPU Inspector to the next level.
39:15 We're not replacing the IgHV tools.
39:17 We can't.
39:19 They support other platforms as well.
39:21 We're working with OEMs and ihvs on this profiling effort.
39:26 We've been having conversations with them now for about a year,
39:30 and they're excited to come along on this adventure with us,
39:34 and we're improving and updating Android conformance tests
39:37 to ensure that future Android devices will support the profile.
39:43 So you can think of our new Android GPU profiler,
39:46 which will be shipping in open beta later this year as Android GPU Inspector.
39:52 The next generation.
39:53 So we're collaborating with Samsung,
39:56 and we have been for a couple of years now to produce an open source,
39:59 hardware agnostic profiler that works for all Android devices using Vulkan,
40:04 and it's built on top of for system tracing and on top of leunig's graphics.
40:10 Reconstruct API to perform graphics capture and replay.
40:16 You might be wondering, what does all Android devices with an asterisk mean.
40:22 Well, Android 12 and later devices,
40:25 plus a handful of Android 11 devices support GPU counters for profiling.
40:32 GPU counter support is now an Android requirement.
40:34 It has been since then,
40:36 and that enables frame capture and replay via graphics reconstruct,
40:40 because that allows us to get measurements
40:43 of the GPU performance back out of the system.
40:46 Future Android devices will have better
40:48 GPU profiling capabilities standardized across OEMs.
40:52 Now, if you go back before Android 11,
40:54 you're going to be dealing with just system trace level performance information,
40:59 so you won't get as much information out of that.
41:02 But if you go to the OEM tools, you'll be able to use them.
41:07 Now who's this for.
41:08 Well, at first, we're going to target the experts.
41:12 And the reason for that is if we create a tool that's great for experts,
41:16 then when we add ways to simplify it
41:19 for New engineers who aren't as experienced with Performance analysis,
41:22 we'll be able to make it easier for them,
41:26 but still make sure that the tool does everything that everybody else needs.
41:30 It's going to be targeting performance
41:33 minded graphics and rendering engineers who are using Vulkan to make games
41:37 and other graphically intensive experiences at first.
41:40 It's built for game and game engine developers,
41:44 and we have a lot of people in our early access program right now who
41:47 are starting to kick the tires
41:49 on this from across the games industry, and we have.
41:52 We're also targeting GPU developers, GPU driver authors,
41:56 OEMs, and graphics library authors and system engineers.
42:00 Because if the people building your OS
42:02 are using our tools to optimize their work,
42:04 then you can guarantee it's going to be pretty good.
42:08 So what can it do today.
42:11 Well, you might recognize this if you've ever
42:13 used AGI as a very similar looking capture interface.
42:20 It's a visualization tool right now for analyzing performance traces.
42:24 It auto injects Vulkan layers to augment the trace
42:27 with additional information such as Vulkan call timings,
42:31 debug info, and adding screenshots.
42:34 Which is a new feature where, as you take a system trace,
42:38 we're going to periodically take a screenshot so that you can
42:40 see as you navigate through roughly what's happening on the device.
42:46 It's also going to analyze workload system wide,
42:49 so you can see everything that's happening on the device,
42:51 not just inside your game.
42:54 It shows GPU counters for GPU activity on a timeline like trace,
42:58 and it shows frame timing and presentation information from SurfaceFlinger.
43:04 And it looks a bit like this.
43:07 Now I don't have time to give you a demo.
43:09 In this session because as you can tell, it's pretty packed too the gills.
43:13 But I'm going to show you some screenshots.
43:16 So here's an example of a frame
43:17 from the order independent rendering sample from the Vulkan samples.
43:22 This is showing GPU activity pinned to the top
43:24 frame boundaries based on Acquire and present.
43:28 And it's.
43:31 This one is a side by side trace.
43:34 You can open the same trace more than once and do comparative analysis.
43:39 This is a feature we're hoping to improve
43:41 and add more functionality to over time.
43:44 For both comparing within a trace and for longitudinal testing,
43:48 when you're doing performance regression testing you
43:51 want to A/B test two different builds.
43:54 And then this is an example of the screenshot feature.
43:58 You can see underneath the frame timeline there.
44:02 You can hover over one of the screenshots and see where you are in the game.
44:07 This is really handy for navigating through along a trace.
44:13 So in terms of features, the system profile is coming online first.
44:19 This is best for system wide timing analysis.
44:21 Finding slow frames and seeing if your CPU or GPU bound.
44:25 It will allow you to analyze perf threads, CPU perf,
44:28 and the effects of scheduling and use GPU counters
44:32 to understand power hungry scenes and bottlenecks in your game.
44:36 The frame profiler is going to be coming online later.
44:39 We are actively working on the frame profiler.
44:43 It will allow you to capture Vulkan graphics,
44:45 calls, and graphics resources for later playback and measurement.
44:49 Allow you to do in-depth analysis of captured graphics,
44:52 calls, replays, traces on device for reliable subframe performance measurements.
44:58 For example, render pass timings and it will
45:01 give you frame timing for all major ihvs.
45:06 What's going to come later is newer technologies.
45:10 So we're going to start out
45:12 by focusing on more traditional rendering techniques,
45:15 fixed function pipelines, things like that.
45:19 Later, we'll be focusing on analyzing GPU driven rendering,
45:23 compute shader analysis and Ray tracing analysis.
45:27 But that's not going to light up probably this year.
45:31 The first phase frame profiler will focus on performance analysis capabilities.
45:36 Graphics debugging will come later.
45:38 Debugging is an important scenario for us,
45:41 but you have other great tools that are available to you right now,
45:45 such as renderdoc that you can use.
45:48 So we're going to deprioritize that a little
45:50 bit because we can get to that later.
45:53 And if you're wondering how this will ship,
45:56 it will ship as a standalone profiling tool.
45:59 One of the most common pieces of feedback we get around our tools,
46:03 especially profilers,
46:04 is that you need it to run as a standalone thing that you can install
46:07 with pretty low overhead on an artist
46:10 desktop machine or a QA engineers desktop machine,
46:13 so that you can try it out and not
46:16 have to install all of Android Studio on their desktop.
46:22 It will also ship integrated into Android Studio,
46:26 so available where all of the other Android Studio profiling tools are today.
46:31 And finally, it's going to ship as open source available on GitHub.
46:35 So we will happily accept pull requests.
46:38 And if you feel that there's functionality
46:40 that you need that isn't coming online fast enough,
46:43 it will give you an escape hatch that will allow
46:46 you to integrate your own functionality when you need it.
46:51 Now, in terms of timeline, the system profiler is in early access right now.
46:58 Unfortunately, there's only a few of us,
47:01 so we can't invite everybody to join the early access program at this point.
47:06 But I encourage you to sign up for it
47:08 on the QR code that will show up in a second.
47:12 Around the middle of this year,
47:13 we're planning on releasing the system profiler in open beta,
47:17 and I would definitely encourage you to sign up for that.
47:22 Near the end of this year, the frame profiler early access program starts,
47:26 and in the future, we are all ears.
47:30 We need your feedback on the tools that you need to make better,
47:34 more performant games, and we would love to get that from you.
47:39 So how do you get it.
47:41 Well, we're opening up the profiler to early access open beta,
47:46 and you can sign up with this form here on the QR code
47:51 and decide if you want to be part of the early access program,
47:54 the open beta program, or be notified at launch when we finally release it.
48:00 If you don't get into the early access program,
48:03 you'll be automatically added to the open beta when it starts up.
48:09 Anyway, with that, thank you very much.
48:12 And I think we might have some time for a few questions.
48:17 Awesome Thank you.
48:28 That's super nice.
48:29 Thank you.
48:34 I can just project or oh this works.
48:37 I had a question about the standups.
48:39 I feel like when I have daily stand UPS, I can't find things to talk about.
48:43 So I'm wondering, how do you get the most
48:44 value out of the standups that you do for me.
48:48 Yes good question.
48:51 So the question is, how to get most value out of the standups with the Studio.
48:55 I think it depends on the team and the producer.
48:58 So for the external companies that we work
49:01 with, it was both Unity and pictet and then ourselves.
49:05 So it depended on some days it would just be a very rapid round of standups,
49:09 which is like, yep, we're still working
49:11 on the same thing that we talked about yesterday.
49:13 Cool bye.
49:14 And then there's other days where it's more complicated,
49:17 where I have to go and tell them,
49:19 we're adding a gear system, and then they look at me, wide eyed,
49:23 and I have to tell them why it's important and talk about, OK, well,
49:27 how do we then ingest this into the pipeline and who needs to be involved.
49:32 So usually, whoever has strong opinions about something, they'll let me know.
49:37 And then anyone else who just really wants to get back to do,
49:40 like model decimation or optimizing assets like will let them go their own way.
49:45 So we can have a deeper discussion on it,
49:47 but really encourage you to I think the key
49:50 here is to be transparent and open with the communication.
49:53 I'd rather overshare.
49:54 And then if people feel like they don't need the information,
49:57 that they have enough on their plates, they get to go.
49:59 But if they want to know where we're at and what
50:01 we're working on, that information is always available to them.
50:04 They shouldn't ask.
50:05 It should just be a very open book.
50:08 Yeah does that work.
50:09 One quick anecdote.
50:10 I just want to share on that subject.
50:13 So I used to be the client lead at Niantic.
50:15 And when we're building ingress,
50:17 we were a small company, small startup within Google.
50:20 And I'm talking engineering, product management bizdev support.
50:26 The entire team was roughly 35 people.
50:29 We would do a stand up every day across the entire company,
50:32 and we were able to do 35 35 person stand up in less than 15 minutes.
50:39 It's all about a building trust with your team and asking them to show up and be
50:44 present and be able to give a very
50:47 succinct way of communicating and respecting each other.
50:51 Most standups fail because fundamentally,
50:53 people feel like they're dragged into it and they haven't really prepared.
50:57 If you can build a culture of trust and preparation
51:00 and respecting each other's times can make standards work.
51:03 But it's tough.
51:03 It definitely takes work.
51:08 Thank you for the presentation.
51:09 So my question is for your GPU profiler.
51:12 So you said you built it with the tf reconstruct for the capture and replay.
51:19 So I want to hear your idea.
51:21 Why don't you use rundeck for that part.
51:28 That's actually a really good question.
51:31 I think.
51:32 The big reason why we don't use renderdoc as the heart
51:35 of the profiler is that we're deliberately targeting graphics reconstruct,
51:40 because that seems to be the direction that the chronos foundation
51:46 and Vulkan are going in for doing this kind of graphics capture work.
51:51 And that's probably going to be the most
51:53 actively maintained mechanism for recording this going forwards.
51:58 So yeah, I think renderdoc probably is at the wrong
52:05 part in the stack to build it into the profiler.
52:11 It definitely provides us the most coverage
52:13 for the type of captures we need to do.
52:16 So we're using the best tool that's
52:18 available and it's something we're actively improving.
52:21 It's capturing Vulkan and successfully recreating it each time,
52:26 especially with its evolution of user controlled memory and other things,
52:32 makes it really difficult to capture and replace successfully.
52:36 So it's the best solution for Android.
52:39 Thank you.
52:43 Hi there.
52:43 My question is for Emil.
52:45 I'm really curious about the decision to support
52:47 the game on both portrait and landscape mode,
52:50 and I was wondering if player numbers on each
52:52 was something you tracked with analytics and if so,
52:54 how they compared to one another.
52:56 Yeah so great question.
52:58 I think the reason for it is because we thought it was more natural to play.
53:02 So that was to the point of fitting the platform.
53:05 We did an early test in November, December,
53:08 just to see how it played in both portrait and landscape.
53:12 We knew it would play great in landscape, but it's a very valuable game.
53:17 So I don't think all games are suited to be
53:19 played with one hand in a very relaxed manner, like portrait.
53:23 But for us it just made a lot of sense.
53:27 Let me think the technical challenges with it.
53:32 We went in it with open eyes because as a Studio we've also done mobile before,
53:36 so we knew what it would take to also get it through to the finish line.
53:39 But it's worth it.
53:40 And then the other question was around, what was it.
53:42 Player numbers.
53:43 And yeah, it was just about whether you were tracking percentage.
53:47 Yeah percentage of players on each.
53:48 The defaults.
53:50 The default mode is that it starts in portrait,
53:52 so the vast majority of players are playing it in portrait like.
53:55 I don't have exact numbers, but off the top of my head was like
53:59 70% of playing in portrait and then 30% in landscape.
54:02 That being said, if you're really hardcore
54:05 into it and you come from PC, offering, landscape just makes a ton of sense,
54:09 especially if then you have a backbone or a game controller.
54:12 We don't have metrics in the overlap there,
54:15 but I would assume that the majority of people who play
54:17 with the game controller would like to play it in landscape.
54:21 Thank you.
54:21 Yeah all right.
54:25 A question for Simon.
54:27 You mentioned that AGI is going forward like
54:30 a lot of plans for Vulkan and all that.
54:33 And I wanted to know.
54:34 I know that Vulkan is the standard and it's pushing that way.
54:37 But I wanted to know if there is any plans
54:40 going forward from now to deal with DLSS and similar APIs,
54:47 or the similar versions of different versions of glyphs.
54:51 So with.
54:53 There's no explicit plan to support glyphs
54:57 as a top level way of exposing render calls.
55:00 But we do plumb through a lot of information from the glyphs calls for angle.
55:07 So you can actually run your game on angle profile it
55:11 using the profiler and see the calls as they come through.
55:15 We're targeting Vulkan first because that's the direction
55:19 that most Android seems to be going in.
55:22 But we will, we're obviously looking at whether or not
55:26 we should provide support for doing OpenGL analysis as well.
55:32 If you find that the way of doing
55:36 it through using angle doesn't really meet your needs,
55:40 let us know and we'll definitely add that to our discussions internally.
55:45 Sure hi, I have a question on the 16 KB pages.
55:52 So is there any developer settings that can
55:54 enable this is going to wipe my developer device.
55:56 Whatever I can test it out and see if the performance improvements there.
55:59 But what does this mean for the players ultimately they're
56:02 not going to use developer options and stuff like that.
56:04 So as a specific version of Android running on this by default or what's right.
56:09 Yeah thank you for the question.
56:11 So the question is today we have the developer option for 16 KB mode.
56:17 But that's just for developers right.
56:18 So when our users actually going to be able to use
56:21 this, the reason for the developer option is because we want developers to have
56:27 a platform to test their apps and make sure it's ready and debug
56:30 or maybe explore some of the opportunities that 16 KB pages has to offer.
56:37 But this is all in preparation for device launches.
56:40 So we expect device launches in the near future,
56:42 which would be in 16 KB mode by default.
56:46 So you should be expecting that soon.
56:49 Thank you.
56:55 For the good old foundation.
56:56 So one of the things that we observe is that Vulkan driver
57:00 calls the Android landscapes is all over the place in terms of reliability.
57:04 So for angle on Android 15 is a more
57:07 guarantee that Vulkan driver will be more reliable and consistent.
57:13 That's a great question.
57:14 I mean, we've heard from developers around the world,
57:17 especially those that are targeting Vulkan today,
57:19 that driver quality and is a problem
57:21 and prevents them from having that reliability.
57:24 We had a lot to pack into this conversation.
57:28 This presentation today.
57:29 So we didn't go into all the details of where we're working.
57:31 But we have a huge investment in not
57:34 only improving driver quality for new devices,
57:37 but also understanding driver quality in a way that developers can benefit.
57:41 So, for example, knowing which things which extensions,
57:45 which areas are weak on particular SOCs or GPUs,
57:48 and then providing that information to the developer.
57:51 We have a plugin for Unity.
57:54 And it's being incorporated into Unity as well,
57:56 and a mainline way that already kind provides guidance for developers
58:01 to choose which devices they should be using Vulkan on.
58:05 And we will continue in that vein.
58:07 There are reasons why Android users don't necessarily see updated drivers today.
58:15 That's also something we've been trying to fix in the ecosystem.
58:18 But there's as one can imagine,
58:20 it's a complex ecosystem with different business needs.
58:23 So it doesn't have maybe the same Roi or trade
58:28 offs for end users that PC or Console would have,
58:32 where they update drivers very regularly.
58:34 Needless to say, we are very aware of that, and we're trying to make it easier,
58:38 as easy as possible for developers to target Vulkan reliably.
58:42 And we definitely see that as the future unfolds Vulcan will be very
58:49 reliable and will meet your needs for what you do for your games.
58:53 Would there be more information shared about the Unity plugin
58:58 or a roadmap to make it available to other engine.
59:02 Yeah, it's so today we're making that information available.
59:06 I forget if the source is open source it might be already,
59:12 but we will be providing that information
59:15 also more transparently on our developer site.
59:18 But I believe if you follow the link,
59:20 I had the Vulcan testing link, that's our Vulcan page on developer.android.com.
59:26 And it covers the Unity plugin as well.
59:29 All right.
59:29 Yeah thanks.
59:36 All right.
59:36 Well, thank you very much for coming today and enjoy the rest of GDC.
59:41 Thanks