(upbeat music)
Hello, everyone, and welcome to this talk on the Android Game Development Kit.
I'm Scott Carbon-Ogden,
a Product Manager working on Android Games based in London.
Today I’m very excited to talk to you all
about the new Android Game Development Kit or AGDK for short.
Let's start with what the AGDK is.
Simply put, it’s a full range of tools and libraries
to help you develop, optimize, launch, and iterate on high-quality Android games.
Now, everything that we talk about today will follow these three key themes.
Firstly, it’s all code built for gaming.
Our libraries are intended to be used in C or C++
and have been built and tested with performance in mind.
Secondly, we intend to reduce fragmentation.
The tools and libraries we're gonna show you today
work across many different Android versions.
While some of the libraries work with only a handful of recent Android releases,
most of the features we’re talking about today will work on almost any device.
Lastly, these tools were built by Android for Android.
These features will be enhanced by future Android platform updates.
They’ll be updated before new versions of Android land
and are backwards compatible, having undergone extensive testing.
There are three key areas of game development where AGDK can help.
Firstly, we have a variety of up-to-date integrated workflow tools
to make Android game development efficient.
For example, new workflow to help use your favorite Android tools inside Visual Studio.
AGDK also includes a suite of C and C++ development libraries
to make games easier to build, debug, and maintain.
For example, the new game activity helps you focus
on the most important parts of your code
and minimize the amount of JNI that you need to use.
Lastly, we have a focus on performance optimization to improve game performance
both pre and post-launch, such as our new GPU frame profile
which is now an open beta.
Let's start by talking about our integrated workloads.
We’ve heard from you game developers that often when working on a game,
you might use Visual Studio or an engine-specific IDE,
especially when building multi-platform games.
Generally the less that you need to switch tools, the more efficient you can be.
With AGDK, we’re providing new tools
to facilitate Android development in your preferred IDEs.
We'll be focusing on the bits of workflow where Google can add unique value
and solve Android-specific problems while encouraging you to use whichever parts
of your existing workflow you're most comfortable with.
The first example is the Android Game Development extension.
This is a tool that lets developers make Android games
more efficiently on Visual Studio.
This way you can use all of the cross-platform tools you’re familiar with
while taking advantage of our powerful profiling, debugging, and deployment tools,
like the CPU profile, memory profiler and various inspection tools.
Josh will be speaking more about this in his talk entitled
“Android Game Development Extension For Visual Studio.”
We’re also aware many developers choose to develop in third-party game engines.
We’re working with some of the most popular game engines
to integrate our tools & libraries directly in the engine
so you can benefit from enhanced performance and stability
without needing to make any changes.
Where that’s not possible, we’ll focus on built-in plugins.
Google has many different plugins of game development engines, such as Unity,
like our performance training plugin.
All of our tools are available in one place so you can get all the plugins that you need.
Now you can start your C development off on the right foot with less JNI
by using our game libraries for C and C++ development.
Most games and game engines are written in C++
whereas Android development requires using the Java programming language.
Bridging these two languages using the Java Native Interface
requires effort and can introduce bugs or performance regressions.
We help developers who are building game engines with this
by providing C game libraries to use which minimize the use of Java and JNI.
This makes games easier to build, debug, and maintain.
We're focusing on what you've told us are the top developers frustrations.
Initially, this will involve building foundational classes for activity and input.
Longer term, we hope to make more C libraries to provide functionality,
which is commonly used across all game engines.
Joining our existing frame pacing and high-performance audio libraries,
we have three exciting new libraries.
Firstly, Game Activity.
This provides a foundation for C++ games to be built on.
It provides C interfaces for all of the different Android events you’d expect
from screen rotation to app lifecycle.
This way you can minimize the amount of time you spend with the Java language.
Unlike native activity, game activity is compatible with fragments
and is extendable, making it easy to integrate some of your favorite SDKs.
Next, there is game text input.
This provides a stable way to use the software keyboard in C
that is officially supported and will work across all Android versions.
This is very important to us, as many of the workarounds that we’ve seen
have been sources of major breakages in the past.
Lastly is game controller.
This is a way to handle input from game controls in C
to map their functions and to reconnect to the device when necessary.
Check our Victor’s talk on C and C++ libraries for Android Games
to find out more about our new game libraries.
To make integration as easy as possible,
you can get all of our libraries as part of the SDK through Jetpack or as source code.
Performance optimization’s our third focus of the Android Game Development Kit.
Our suite’s designed to help developers find quickly any stability or performance issues
before launch and to monitor game performance post-launch to catch any issues.
We’re starting with the most important metrics,
like frame rate, loading time and memory, and we expanded to new metrics over time.
We’re very excited about the Android GPU Inspector,
which is currently in open beta, as well as being a frame profiler
that includes all of the GPU profiling elements you’d expect,
such as memory and power,
helping you fully understand any GPU-related issues.
You can learn more about the GPU inspector in Jay and Fran’s talk entitled
“Optimize Your Graphics with the Android GPU Inspector Frame Profiler.”
As well as our GPU profile of beta,
we also have a suite of profiles for system, power, and CPU,
as well as our new native memory profiler game devs can use to find inefficiencies.
Android Performance Tuner can help provide telemetry.
You can see how different parts of your game perform
and how your game performed across different devices.
You may’ve used this tool for frame rate,
but now we're introducing a new loading time functionality.
You can learn more about Android Performance Tuner in Lauren’s talk,
“Plan and Optimize Your Game for More Success on Google Play.”
So that’s just a taste of what’s on offer in the Android Game Development Kit.
It’s got something for every game developer from integrated workflows
to C and C++ game libraries to performance optimization.
Make sure that you stay tuned for our other videos.
You can download and try out the AGDK at g.co/android/agdk.
We'll put the details in the links in the description.
Thank you for your time today and happy game development.
(upbeat music)