[MUSIC PLAYING]
FRANK SAVAGE: Hello, everyone.
My name is Frank Savage.
I am the director of engineering for Android gaming
and graphics-- been a game developer for 30 years going
all the way back to "Strike Commander" and "Wing Commander
III" all the way up to modern stuff.
I'm just coming back from a week and a half of vacation,
so a little tired.
But the main reason I'm tired isn't
because I did all this great vacation stuff,
it was because I spent a bunch of time writing a Z80 emulator
and building a computer from scratch
using chips and breadboards.
So that's how I entertain myself.
Android is one of the largest platforms
on the earth-- in fact, arguably the largest platform.
And game developers want to reach as many of those devices
as they possibly can.
And with 2.5 billion monthly active Android devices,
this is a very, very large market.
But it's hard to make games on Android
for a number of different reasons,
probably the biggest of which is the fact that the ecosystem is
so fragmented.
So there are a bunch of different OEMs.
There are a bunch of different SOCs.
Trouble, which Elian was talking about,
was a great example of how we're trying to fix those problems.
But we haven't solved that problem yet.
So we've gone around the world-- people
on my team over the last year have gone around the world.
We've talked to game developers, and we've
started to synthesize out, hey, what's keeping you
from realizing your visions and doing the great things that you
would like to be able to do on the Android platform?
First off, they said well, jeez, we don't know how to do this.
Like, there's no information on it.
So the good news is a year ago, we actually
created an Android game development page
on developer.Android.com.
We have Google Presentations there.
We have development tools there.
This is only going to get larger.
But this is a great place to start.
We're also going to invest hugely
in those exact same things.
So the tooling itself--
the ideas behind libraries and the platform and APIs--
all of those things are going to improve for game developers
as quickly as we possibly can.
And I wanted to give you some examples of work
that we've already done.
One of the most important things in a game, of course,
is having a consistent frame rate.
It's very, very important that the player feel
like the game keeps moving.
It turns out that's very difficult
to do on Android today.
So we created a couple of different things.
One is we're completely rethinking how we're going
to do multicore performance.
So this is things like setting infinity, making sure
that your threads run on the right cores,
the cores are not homogeneous.
So you have big cores, you have small cores--
being able to do all of that work together,
having an API set that allows you to do that
is very, very important.
The other thing that's really, really important
is making sure that you hit the frame rate.
And so we have an API for that now where you can basically
tell it, hey, I want 30 frames per second.
And this will pace your game-- effectively, the main thread,
so that everything falls in the way that it should.
This is actually already integrated inside Unity.
It's in Unity 2019.2 right now.
We're hoping to persuade Unity to backport it
to other versions as well.
We need better tooling.
Today, if you look at things like Systrace,
it's not super obvious how you get any kind of information
from that that's meaningful to a game developer.
So we're investing in an entirely new framework
called Perfetto that will allow people
to be able to get better, more sophisticated
tracing and analysis of what's actually going on.
We need better distribution than we currently have.
That's things like app bundles today in the Play Store.
So again, having multiple different versions
of your game potentially bundled into one thing,
having only the ones that matter get deployed to the device
is critically important.
And it turns out that having displays
that are capable of 90 Hertz is really interesting,
because those kinds of displays can not only
do 60-30, which is what a lot of us game developers are used to,
but they can also do 90, they can also be 45.
And you can hand-tune your game's performance
to best take advantage of both what the platform can
do from a performance perspective,
but also potentially what it can do
from a battery and thermals perspective, which
is also very, very important.
RAM usage on Android is problematic,
mainly because it's no way to ask how much RAM's actually
available.
So we would like to be able to improve
that particular situation.
We're not quite there yet.
But we have made improvements to things like memory compaction
in Android 10--
which should allow your game to stay resident
longer even if people or a player
switch away from the game and be more
resilient to things like the low memory killer killing it.
We also have better tooling improvements
that we've made already.
So these are things like, for example, Android Studio 3.6.
You can now much more easily debug and load
APKs that were created with other tool
chains other than the Android Studio tool chain.
Before, this was a 15-step process
that was very, very exciting and tedious to go through.
And at IO, we announced extending app bundles
to actually also be able to contain game assets as well.
And this is a place, again, where we're just
scratching the surface today.
There's a lot of additional improvements
and a lot of things we want to be
able to do here to improve game development as well.
And it turns out that we actually
have some better hardware in the Android universe today too.
Most phones today are shipping with 4 gigabytes or 6 gigabytes
of RAM, and that turns out to be very useful for games as well--
giving you that extra room to maneuver.
If you'd like to hear more about what's new in C++ and Native
support in Android Studio, there is a talk that you can go
download and take a look at.
And the performance analysis talk,
which is coming up in the next lightning round,
we'll talk about Perfetto and some of the things
that we're doing there.
So we want to help you, because we
want to get as many games on Android
as possible, because then they get out to the entire world.
Thank you very much.
[APPLAUSE]
[MUSIC PLAYING]