1 free read left. Create a free account for unlimited reading + AI research.
Create free account[Music] we've got a round table uh about uh ensuring game stability how to find uh monitor and fix issues in your game with firebase crosslytics so do we have sam and oh hello there we are hey simon and i come to the stage please a round of applause for uh for our folk here doing our roundtable panel uh hey everyone and thanks so much for coming i'm elena doty i'm here with my colleague sam edson and we are both engineers on firebase crashlytics firebase crashlytics is one of the leading mobile crash reporting sdks we
work on ios android unity android ndk and flutter and you know expanding to more platforms as we speak hopefully we're here today to talk a little bit about why crash reporting is an essential part of building and maintaining a successful game and also about how crashlytics can help you find monitor and fix issues in your game so you know let's talk through why crash reporting is so important you can have you know the greatest game in the world killer features a well thought out ui delightful moments but none of that really matters if your app is crashing users just can't get the value they want out of your game no matter how great it is and bad reviews are one outcome of a crashy app a recent study found that 62 percent of people uninstall apps after a bad experience like a freeze or a crash and those bad reviews are likely also driving away future users google analyzed their views in the play
store and found that 42 of one star reviews mentioned app stability and bugs in the review message on the other hand users appreciate app quality and stability and they notice when you put an effort to build a high quality app but i think most of us would agree that app quality is important especially in games the big question really is how do you get there many teams rely on qa testing to ensure their app is stable and that's great for preventing bugs and preventing them from getting to users in the first place but there are just too many factors it would be nearly impossible to test all the devices operating systems and network conditions that your game runs on there will always be something that you just didn't test so just like an analytics system helps you analyze your app and what's going on a crash reporting system can help you understand and take control of your game's stability so let's take a look at how this works flood it is one of our team's demo apps
it's a strategy game where players try to flood the whole game board with one color in as few steps as possible this game is released on android and ios each platform has its own code base so the first step toward using a crash reporter obviously is installing it and for crashlytics this is done in just a few lines of code because of our different code bases each platform ios and android has its own crashlytics dashboard and that's what we see up here we see all the events that cache links captured in our games and we can use that to analyze what's happening in the games we see how many users are experiencing crashes determine trends and event rates over time and also figure out what the most common crashes in the game are as well as what's causing them this is one of the most useful features of crashlytics we call it grouping this lets us display an issues list as seen on the bottom of the most common crashes in your game so that you can figure out which ones are impacting the most users or happening in the most impactful moments
so captioning crashes and displaying them to you is obviously the point of a crash reporter but there's so much more we can do this is where what we call non-fatal events come in handy these are also known as custom exceptions and they're events that you choose to log in your code this can occur anytime anything unexpected happens giving you a look into any undesirable states the app lands in even if they don't lead to a crash this helps you understand what the user is experiencing throughout your app especially in poor situations so to give an example one place we often recommend using these is in try catch loops or try catch blocks sorry these handled exceptions as well as anything else you choose to display are treated similarly to crashes and that they show up in this dashboard grouped as well as aggregated over time another thing that we propose as a great feature for game developers is custom logs and keys
this feature lets you record information from areas of your game play or from your general app life cycle that you just want to know more about when combined with non-fatal events custom keys can under help you understand what led to bad app states in flood it we've used custom keys to set the game mode type such as quick play or progressive and to make a note of what level the user is on then when an event comes in with these custom keys we can see them in the dashboard we can also filter events by custom key or log and this helps us get an overview of how to retrace an issue and recreate what happens in the app so in addition to these general features crashlytics is also investing in helping mobile game developers spend less time worrying about app stability and more time working on the actual game so let's dive into two of our recent improvements um let's see there we go
anyone hear me great um anyone here use unity to develop games if you do great um so crashlytics has been working on a lot of things to improve the experience for unity developers um the first thing i want to show you is i think what a typical crash for a unity game looks like and specifically a game running il2 cpp um so what you see here is kind of interesting it actually looks a lot like c plus plus code um and so if you're a developer or if you have developers on your team and they're using a crash report or even getting crashes in the game as they develop it this is often what it's going to look like so the reason for that is because unity has this il2 cpp compiler what this compiler is doing is taking your c-sharp code and converting it to c plus plus and then compiling that for your game and so what that means is your game
written in another language that's a little easier to use is actually going to run super super fast on these mobile platforms and this is really great for your game speed really what you want though for your developers is the code that they wrote when they see a crash and so we introduced a system in crashlytics that we call purification and it essentially takes the crashes that you're getting in native code and it tries to convert them back to the c sharp code that your developers wrote or that you wrote so if we take a look at one of these finalized stack traces you'll see that it shows you know c sharp files it shows a much cleaner stack trace without a bunch of extra you know unnecessary lines of code the other area that we're going to talk about for unity is metadata so we talked earlier about how there are custom keys that you can instrument in your game to segment your crashes
but one thing about custom keys is that you have to implement them manually and so one of the things we found is that unity developers will often run into issues with say specific graphics cards or something about the environment that caused a crash and they didn't instrument a custom key or anything for that and so crashlytics introduced game specific unity metadata here um so that whenever you get a crash you're getting a lot of this stuff by default so this can be helpful you know say you're running on a samsung device they're known for you know running custom hardware and things um that can just cause crashes that you had no idea about originally um switching gears one more time we're going to talk about android and app not responding so app not respondings are something you very much want to prevent in your mobile game and you've probably all seen these if you if you have an android phone um you know you're running a game you're
running an app and it says app whatever app is not responding and these are especially bad and we would actually classify these as worse than crashes because um the the user is actually stuck for about you know up to five seconds and so you'll get an anr whenever you're holding up the main thread of the app for more than five seconds so as of android 11 and later um crashlytics is you know capturing anrs by default for games regardless if you're running unity or not and they'll report these to you with along with the other metadata great so that kind of wraps things up hopefully this talk kind of gives you an idea of what crash reporting is why it can be helpful for your mobile game and just give you a sense of how these tools help you you know take control of your app stability
um if you want to come check us out you can go to firebase.google.com in addition we're running a booth over in the main hall and we're also available here right now for questions if you have any so thanks a bunch great thank you does anyone have any questions here for uh for for simon oh here we go all right dennis from epic story interactive um we use unity for development we can't for the life of us get our unity crashes and publicated we can't even tell if the symbols upload worked or is correlated with correct version you have any plans to kind of ease the pain there because we can't figure out how to get it working at all are you on android or ios it's android that's not simple android
so i think we're working on things right now on ios we're working on like a drag and drop system for uploading symbols and we've been talking about bringing that to android as well but we also we released a cli to upload symbols and if you're using that i think that that's probably the most recommended way to do it now a lot of folks in the past instrumented gradle configurations to do this and it's kind of hacky unity a lot of times like deletes it if you change the template so if you're not using the cli we recommend that but definitely like something we've been hearing that it's hard to tell what's been uploaded on android and we have a nice system for it on ios so you know good feedback we're going to bring that to the team great thank you any other questions for for our speakers um i'd like to just uh ask you you're um i'm not a developer myself um what
what's your model is it a subscription service is that how people um so crashlytics is actually free okay um we charge for very specific things like if you'd like all your crash data in a bigquery export that's the one area but really the goal the product is to actually just help the mobile ecosystem as a whole and so um it's it's a part of firebase and there's actually a lot of products that are a part of firebase uh we just have to be one of the free ones right right right we've got a minute or two um can you just tell us a little bit more about firebase generally it's yeah what are the other services that are provided how does it plug into the ecosystem yeah so firebase actually has a wide range of tools um we focus on monitoring which is you know you release your app you want to know how it's doing and so that's you know crashlytics is the main one here we also have firebase performance monitoring which is also monitoring given the name that focuses more on like app quality so startup time metrics like that and then on the back end we have some
services to help you build the app from the ground up one of those is login so we have firebase auth which helps you you know simplify your onboarding flow for users um i think that supports you know logging with google definitely i think apple as well and then you know your basic email and phone number sign in and then we also offer database services just to ease you know storing data like you don't need to do that yourself you can use firebase sdks instead um so yeah i think we have a wide range of products across the spectrum anything you'd want to add to that no i think that's as good as it ties into something we were talking about earlier in the afternoon about how uh developers there's so many tools available to developers that sometimes they don't even know about but they're right there to take away the pain that they can just get on with game design um well i'll tell you what if they have any further questions um uh for about crashlytics or about anything to do with firebase i guess they can come and find you out in the main expo as well or or you'll probably need to match as well i guess you've got and there they can handle your message maybe we've got a booth out there yeah that's the best way to do it great okay let's do that so
round of applause thank you very much [Applause]
Maintaining game stability is a critical component of mobile game success, as technical performance directly impacts user retention and store ratings. Research indicates that 62 percent of users uninstall applications following negative experiences such as crashes or freezes, while 42 percent of one-star reviews on the Google Play Store specifically cite stability issues. Because manual quality assurance testing cannot account for the infinite variety of devices, operating systems, and network conditions, automated crash reporting tools are essential for developers to monitor and resolve issues in live environments.
Firebase Crashlytics serves as a comprehensive solution for tracking stability across iOS, Android, Unity, and Flutter platforms. The tool utilizes issue grouping to help developers prioritize bugs based on the number of affected users and the frequency of occurrences. Beyond tracking fatal crashes, the platform supports non-fatal event logging and custom keys, which allow developers to record specific game states—such as current levels or game modes—to better diagnose the root causes of undesirable app behavior.
Recent technical improvements have specifically targeted the Unity development ecosystem. The introduction of symbol purification allows developers to translate complex C++ stack traces generated by the IL2CPP compiler back into readable C# code. Additionally, the platform now automatically captures game-specific metadata and Android Application Not Responding (ANR) events, which occur when the main thread is blocked for more than five seconds. These features aim to reduce the manual instrumentation burden on developers, allowing them to focus on game design rather than debugging infrastructure. Firebase Crashlytics is provided as a free service within the broader Firebase ecosystem, which also includes performance monitoring, authentication, and database management tools designed to streamline the mobile development lifecycle.
The games and companies this document names on the inner ring, other documents about them on the outer one. Select a cover to see it up close and open it in a new tab; drag to move, pinch or Ctrl + scroll to zoom.
Two & a Half Gamers · 2024
Comments