(upbeat music)
Hi, I’m Josh Gilpatrick,
a software engineer on the Android Development Tools.
And today I’m excited to talk with you about the Android Game Development Extension,
also referred to as AGDE.
This talk is intended for game developers
using Visual Studio, working on in-house game engines,
or developers using the Unreal Game Engine.
The Android Game Development Extension is a core component of the integrated workflows
of the Android Game Development Kit.
For more information about other components of the Android Game Development Kit,
be sure to check out the introduction talk by Scott Carbon.
The Android Game Development Extension
is a Visual Studio extension that allows developers
to build directly for Android from within Visual Studio.
The extension leverages the expertise of the Android Studio team
to bring fast, reliable, building, debugging,
and performance tooling right to Visual Studio.
After more than a year in a closed beta, today we are happy to announce
the Android Game Development Extension will be available to all game developers.
While in beta, we worked with a number of studios
on both features and stability of AGDE.
Our beta users, who have been using AGDE for a while,
tell us they love how AGDE provided them a way
to streamline their build and debugging workflows,
ultimately saving them time and money on development.
Unreal Engine is a game engine developed by Epic Games
which integrated with AGDE starting with Unreal Engine 4.26.2.
The Unreal Engine mobile team focuses on feature development
and optimization for mobile platforms.
This team has been using AGDE
for both Unreal Engine Android development and for Fortnite Android development.
Epic and other game developers use Android Studio for debugging C++, Kotlin,
or Java programming languages but have development workflows
for most other platforms centered around Visual Studio.
Before adopting AGDE, debugging and building for Android
required opening a generated Gradle project in Android Studio,
and then switching between the two for compiling and debugging.
Each environment has their own set of key bindings,
and this is jarring for the developer and also time consuming,
especially for the iterative development process.
Now, with AGDE, the entire development work cycle
for Android Games is within Visual Studio.
Developers who have migrated to the new development workflow
will find that it's significantly faster
and more convenient for Unreal Engine development.
After installing AGDE, whenever you generate your Visual Studio project files
for Unreal Engine 4.26.2 or later, Unreal build tools will also generate
Android build targets for AGDE.
From then on, the Unreal Engine development and debugging experience within Visual Studio
is the same for Android, PC, and other platforms.
Jack Porter, Unreal Engine’s mobile team lead has been using AGDE for both Unreal Engine
and their Fortnite Android development.
He told us that, given Epic’s Visual Studio centric development environment,
they were very excited to incorporate Android Game Development Extension
into their workflows.
They consider their use of AGDE a success
because Fortnite and Unreal Engine mobile engineers
are using AGDE daily for their work.
AGDE allowed Epic to more quickly and conveniently
debug issues and stay inside of Visual Studio.
This made a significant improvement from their previous workflows.
He also noted that the use of AGDE has definitely saved Epic a significant time
and helped them find bugs that they otherwise could not have found.
Epic expects to continue using AGDE
and planned to recommend AGDE as a supported Unreal Engine,
Android development workflow for all Unreal Engine licensees.
Dimitro Volvic, an Unreal Engine mobile team developer,
has been using AGDE as part of his daily work.
And he says, “AGDE is frickin’ awesome. Finally, I can debug assembly
and see registers being updated as I step through the code.
Android debugging from the comfort of Visual Studio
makes my day-to-day work much easier and keeps me in my development workflow."
Thanks for the feedback, Dimitro. We really appreciate it.
So now that we saw some of the results from using AGDE,
let's dig into the details about what AGDE provides.
Before starting development, we sat down with game developers
to understand how can we make game development for Android easier?
Many developers told us it is a pain
to maintain multiple projects for different platforms.
It is preferable to stay working in a single IDE,
and for many of those developers, Visual Studio is that IDE.
AGDE enables this by removing the need to switch between IDEs
when switching between platforms.
Now, developers for Android no longer require maintaining
both Android Studio and Visual Studio projects.
We heard using older tools in Visual Studio
is sometimes hard because they're not up-to-date
or suffer from integration issues.
We are committed to having AGDE support
the latest versions of the Android SDK and NDK,
as well as providing updated tools
that are easily accessible from within Visual Studio.
You also told us existing solutions
to debug Android games from within Visual Studio are slow and outdated.
AGDE now provides the latest LLDB integrations directly in Visual Studio.
This provides a smoother debugging experience.
We have also partnered with Stadia
to ensure that the debugging experience is fast and reliable.
Finally, we wanted to bring you quick access
to some of the most useful tools available in Studio.
Therefore, we invested in creating seamless integrations
to our most popular tools, such as the Profilers, Logcat,
the Android SDK, and device manager.
To dig a little deeper, let's review the key features
of Android Game Development Extension.
This includes setup, integration tools, Logcat, and Profilers.
After downloading and installing the Android Game Development Extension
from the Android Game Development Kit landing page,
now, in your Visual Studio project,
you can add an Android APK template to your project.
This template enables building and packaging an Android APK.
With this, you can treat Android development
as you would any other platform using Visual Studio.
For detailed steps, please check out our documentation
at developer.android.com.
We have included a few samples that demonstrate different ways to use AGDE
to configure your project.
The teapot sample shown here running on Windows and Android
is an example of a game that uses a common project
for platform-independent code, and one for platform-specific code.
Switching can easily be done
by switching the target platform from within Visual Studio.
Next, we'll talk about many of the tools available from AGDE.
These tools are made accessible from the AGDE toolbar
as found in the screenshot here.
After our setup, one of the first things we need to configure is the Android SDK and NDK.
This can be done by opening the Android SDK Manager.
The SDK Manager allows for downloading additional tools and frameworks
to assist with building Android games.
The Android Virtual Device Manager allows for managing emulators.
Any emulator that is created here will later show up
when the corresponding platform is selected.
The Android Virtual Device Manager allows for creating,
editing, and deleting different virtual devices.
Plus the AVD allows you to launch directly into your emulator snapshots.
This allows you to have a repeatable test environment.
Finally, the device file manager.
This is a nice utility to help clean any leftover files
or copy performance logs off of the device.
After our project is set up to build for Android,
we are able to easily build, debug, and deploy the game
right from Visual Studio.
Here, we can see how using the Android Game Development Extension,
we are able to set a break point
and step right into the disassembly of our OpenGL project.
The assembly view shows the assembly inline with the current C++.
This allows us to step into or over each instruction as they’re executed.
With assembly, it can be useful to see the current register values.
This can be done by opening the Registers window from within Visual Studio.
This is useful for building context
and understanding what is running on our device.
Another useful tool for debugging is the memory view.
This view allows us to see the current values within a block of memory.
As we step through the running game,
Visual Studio automatically highlights the area of memory that had been changed.
In this screenshot, we can see where in memory
the view matrix has changed as indicated by the red text.
As games become more complex in features and design,
parallel stacks was an important feature for us.
This feature allows developers to see what threads are running concurrently,
making it easy to see which threads are blocked
and which threads are executing various tasks.
Sometimes when debugging isn't enough to figure out what is going on,
we know that having access to the logs can be helpful to trigger that aha moment.
The Logcat tool, as shown here,
allows for searching and filtering logs to pinpoint exactly the data you want.
The last tool we will talk about today is access to the Android Profilers.
The Android Game Development Extension provides quick access to the Profilers,
where we have updated the UI to be more intuitive
and bring you important details of your trace front and center.
In addition to the new UI, we have added support for native memory sampling.
Now you can better understand where your memory is going
and how to optimize your game for a better reach of devices.
For more details on all of our features,
you can visit our documentation on developer.android.com.
We know everyone has a unique build setup and there is no one-size-fits-all solution.
That is why we are investing in integrating
with various tools commonly used in the industry.
We strive to be compatible
with tools that help developers be as efficient as possible.
The Android Game Development Extension team
is proud to announce that we’ve partnered with Epic
to integrate with Unreal Engine.
This integration, as mentioned earlier, allows seamless experience for developers
using Unreal Engine to develop for Android.
Starting today, you can use AGDE with the latest version of Unreal.
We are also working with Sony to integrate with the Sony Distributed Build System.
The SN-DBS speeds up build time
by using the idle time of other computers with SN-DBS installed.
This integration allows developers that are already using Sony Networks tools
to leverage the power of distributed builds for Android.
Soon, you'll be able to use AGDE with the latest version of SN-DBS.
We are also compatible with Incredibuild,
which is another popular distributed build tool.
Finally, now you can use your favorite tools
like Visual Assist, while developing games for Android from within Visual Studio.
To get started with AGDE, visit g.co/android/extension.
Thank you for your time.
(upbeat music)