Hello game devs!
So many advancements and improvements have happened in the past year in the realm of games. Games have been and continue to be an important part of the app ecosystem representing a dynamic world that actively promotes collaboration, creativity, and fun for both developers and players. At Firebase we’ve been hard at work improving our game development tools and resources to help you build secure and high quality games, so you can keep your players happy and engaged.
At this year’s Google for Games Developers Summit, we announced new features to help you build more stable and secure games, and shared how we’re strengthening our partnership with Google Ads to enable you to use machine learning to fine-tune your ads strategy. Let’s take a closer look at our announcements this year.
- Reduce cheating with App Check
- Improve game stability with Crashlytics enhancements
- Better prioritization for Uncaught Unity Exceptions
- Crashlytics support for Native ANRs and memory debugging
- Optimizing ad experiences and revenue with data
Let’s dive in!
Reduce cheating with App Check
Cheating in both live and asynchronous multiplayer games has been a cat-and-mouse problem for game developers for years. Bad actors can ruin your player experience with any number of strategies: hacking game clients, directly spoofing reverse-engineered messages, or compromising hardware or firmware. When a player feels that someone else is cheating, it can undermine their fun and drive away some of your most devoted players, negatively affecting your reviews, and revenue. Surely to prevent this and address all these issues, a game developer would have to invest in a system of different tools covering each of these vulnerabilities.
Using Attestations with App Check
App Check says otherwise! App Check helps protect backend resources from abuse by preventing unauthorized access by hackers and/or altered clients. It works with Firebase services, Google Cloud services, and custom APIs to keep your resources safe. While App Check is already available in the Firebase SDKs for iOS and Android, soon game developers will be more easily able to integrate App Check into their games via the C++ and Unity SDKs. This will allow them to protect against hackers and cheaters by requesting and using attestations. Attestations work as proof of app and device authenticity, so network messages carrying suspicious or absent attestations are automatically intercepted before even reaching Firebase security rules or, worse yet, backend resources. In addition to this, you can customize your use of App Check by selecting an attestation provider, and setting parameters to determine how your backends handle different attestation states/verdicts.
Check out how App Check prevents hacked clients, tampered devices and spoofed traffic from interfering with services backends like databases and cloud functions.
To learn more check out the App Check docs.
Improve game stability with Crashlytics enhancements
Keeping games stable is important not only to ensure your players are engaged, but also to ensure your game is visible in storefronts such as Google Play. However, the scale of modern game development and the app economy makes it exceedingly time consuming to collect crash data across various devices, identify your most pervasive crashes, reproduce them and test them manually.
Crashlytics is a real time crash reporting tool that helps you prioritize and fix your most pervasive bugs and crashes based on the impact on real users. Better yet, you can use Crashlytics to understand exactly where in your source code the bug originates and with functionality like logging and custom keys, how it got there and what state your game was in.
This year, Crashlytics’ support for games, native apps and Unity in particular keeps getting better! The team has put in a lot of work to improve how Crashlytics gathers, collects and displays events including crashes, ANRs and more.
More Readable Callstacks for native Unity Games
On the Unity side, we’ve made debugging games compiled to native binaries with IL2CPP much easier. Now instead of showing intermediate generated C++ names, Crashlytics will take most native callstacks and display the equivalent C# source code, removing the need for “translation” on your end, and allowing you to go directly to your code and fix the issue.
Learn more about the improvements to Unity stacktraces in Crashlytics and how you can use them to stabilize and improve your user experience.
Better prioritization for Uncaught Unity Exceptions
In Unity, when a game has an uncaught exception and your scripts no longer run but the game doesn’t terminate, this sort of exception has always counted as a non-crash. Every time this situation happens and your game silently fails, your users have a bad experience that wastes their time and resources.
Crashlytics On-Demand-Fatals Support in Unity
The Crashlytics SDK for Unity now offers On-Demand Fatals, a way to enable your app to count uncaught exceptions as crashes whether or not they crash the program as a whole or just your game logic. This allows you to use Crash Free Users metrics to help you better identify, count, prioritize and fix incoming bugs.
Learn how to enable tracking Unity on-demand-fatals in the Crashlytics console and how you can use them to better understand and improve the workings of your game.
Crashlytics support for Native ANRs and memory debugging
Looking beyond Unity, Crashlytics has added better support for debugging native code (including IL2CPP compiled Unity Apps), and native ANRs (aka Application Not Responding). Crashlytics does this by symbolicating native frames using the uploaded symbol files, giving you valuable information such as wheat files and line numbers in your application frames correspond to the crash/issue. This allows you to pinpoint the problem more quickly, meaning less guesswork and more bug fixing.
Native memory bugs like buffer overflows and use-after-free errors are another cause of time consuming and difficult to pinpoint issues. Crashlytics now supports GWP-ASan, an Android address sanitizer that helps catch memory issues in production. When GWP-ASan is enabled in games, developers will see the root cause of the memory corruption and additional stacks indicating relevant allocation and deallocation details to help debug and fix the problem. Learn more about opting into GW-ASan in the GWP-ASan Guide.
Optimizing ad experiences and revenue with data
Finally, Firebase offers a wide array of products that can enhance your app’s ad strategy including Google Analytics for Firebase, Firebase Remote Config and Firebase A/B testing. With so much information and so many tools available, it can take time to figure out how to best build, customize and test an app’s monetization strategy. Firebase makes this easier by combining the capabilities of Google Analytics for Firebase and Firebase Remote Config to help you determine the ideal ad frequency for individual players to boost revenue without harming retention. Additionally, Firebase A/B Testing provides you the ability to roll out new ad formats to progressively larger percentages of your playerbase, so you can ensure that users are engaging with the right ads formats.
Learn how to bring it all together and use Firebase to better understand, test, and customize ad experiences.
These are just a few of the many ways we’re making Firebase work better with Google products to help you across your game development lifecycle. As we look towards the future, we’ll continue to help you make your games the best it can be for your users and your business.