Last year, Arm published a Whitepaper about the move to 64-bit computing on Android, providing information about what developers need to do and why the move makes sense for the developer ecosystem. As we approach Google’s August 2019 deadline where all app and app updates are required to provide 64-bit versions on Google Play, it’s becoming more and more imperative that the Android ecosystem embraces 64-bit app development. Game developers are a significant part of this ecosystem and set to play a leading role in the 64-bit move.
Game developers are often the first to drive innovation and embrace new technologies within the Android ecosystem. The move to 64-bit computing is no different – game developers recognize the opportunities and benefits, and are largely on-board. It will provide their apps with greater capabilities, such as quicker load times, smoother graphics and improved security, while also helping to “future-proof” today’s gaming apps for upcoming innovation and advancements. Compute-intensive workloads, such as immersive mobile gaming, are taxing the limits of 32-bit architecture, meaning it’s difficult to make improvements to existing apps based on 32-bit.
Similar to the entire Android developer ecosystem, the move to 64-bit should be relatively straightforward for game developers. The three most used game engines all currently support 64-bit – Unreal, Cocos2d-x and Unity. In fact, many leading mobile games developed on these game engines, such as Fortnite on Unreal, are already 64-bit capable. Also, the majority of today’s mobile devices support 64-bit, with nearly 90 percent deploying a 64-bit capable version of Android.
While Google does not directly influence the Android app ecosystem in Asia or offer the Play Store in China, most top app stores and Android ecosystem influencers in these markets are supportive of the transition to 64-bit. In fact, a recent Android Developer blog on 21 February 2019 noted that major app stores in China from Huawei, OPPO, Vivo, Xiaomi, Baidu, Alibaba, and Tencent will be requiring that apps target API level 26 (Android 8.0) or higher in 2019. While this is not a direct push to 64-bit in China, it does at least encourage developers to update their apps and also provide an opportunity to update to 64-bit. Moreover, with Cocos2d-x supporting 64-bit, we are expecting other game developers in China to follow.
However, one thing to note is that Unity has recently began providing 64-bit in versions 2017.4 and 2018.2, so Google has granted it with an automatic extension of two years (to August 2021) to existing games using versions 5.6 or older. Back in 2017, Unity published a blog post outlining how game developers can meet the Google Play 64-bit requirements in the future, which provides plenty of useful insight, particularly for game developers using older versions.
It is also important to note that the 64-bit move will only affect apps that use native code – code that compiles for the processor on the device – as opposed to being written in Java or Kotlin. If an Android application is written entirely in Java , the current Android Runtime will support the application without modification. If game developers have written the native code using the Android NDK then they should know how to target more processors as part of the 64-bit move (Android Developer provides useful guidance), or if they have used a third-party that has the native code then game developers will need to contact the developer of the third party library. Most code written using Arm NEON intrinsics will compile for 64-bit without needing to be changed, but game developers using 32-bit NEON assembly code will need to upgrade.
Google has been very active in encouraging game developers to begin the move to 64-bit. An Android Developer blog from January 2019 outlines a number of steps for game developers. These include:
One challenge, particularly for game developers, is the size of apps once they are made 64-bit capable. Fortunately, Android has this covered through Dynamic Delivery and Android Studio 3.3 Beta. Dynamic Delivery is a new app serving model that means users only download what is needed on their device, saving precious space as a result. Android Studio 3.3 Beta is an R8 Google code shrinker, making 64-bit apps faster and more efficient.
Despite the Android move to 64-bit, it is important to note that 32-bit applications are not going to vanish overnight. If a 32-bit gaming app is currently available in Google Play, then it can remain that way. The move to 64-bit only applies to new and updated apps. However, 64-bit only architectural features are coming, so it seems inevitable that devices will soon only be able to support 64-bit apps.
https://www.youtube.com/watch?v=0ybsNuO_pvM
Arm is engaging with the premier Android game engine providers who provide their technology to thousands of game developers. We are making sure that these providers migrate their engines in plenty of time for the game studios to build, test, and release their Android games prior to the transition deadline. Our advice to game developers is simple – do as much as you can now. This means building apps as 64-bit now, shifting 64-bit to the primary development, optimization and test platform now, looking closely at native and Java apps now, and upgrading any 32-bit libraries or engines now
Overall, we are supportive of the 64-bit move, believing it will provide a number of benefits for game developers and the entire Android ecosystem. The 64-bit move will enable continuous and future innovation, particularly in power-efficient mobile applications. In addition, the step-up to 64-bit enables greater compute capabilities that are needed to meet the demands of immersive mobile gaming.
At GDC 2019, Arm is sponsoring a session ‘Moving with the Android Ecosystem Towards a 64-Bit World’, which will outline the timeline and benefits of 64-bit to game developers, as well as providing hints and tips to support game developers during the transition to 64-bit. To register visit our GDC event page.
[CTAToken URL = "https://pages.arm.com/64-bit-computing-for-mobile.html" target="_blank" text="Download the 64-bit Whitepaper" class ="green"]