How to supercharge android game development: vulcan, 16kb pages, & more

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

Study with Looplines Download Captions Watch on YouTube