top of page
Matt

Observability in game development

Have you ever launched a game you've poured years of effort into, only to receive mixed reviews that leave you puzzled? Some players love the game and appreciate its artistry, yet you find yourself staring at a 2-3 star rating. Others may leave brief feedback, but the majority of users remain silent. This begs the question: How can you truly gauge your game's reception if most players don't voice their opinions? How do you determine if users comprehend your game's navigation or if it suffers from bugs? And if you're aiming to build an audience, how do you measure the effectiveness of your marketing strategies?

If your goal is success and the creation of exceptional user experiences, you need answers to these questions.


A/B Testing: A Key Strategy

In the realm of marketing, beta testing, and general experimentation, A/B testing is a powerful tool. This approach involves presenting two different experiences to users and analyzing the results. Based on the outcomes, you can determine whether strategy A or strategy B is more effective. In the advertising world, this could mean comparing two ad campaigns, while in app development, it might involve rolling out a new feature to only half of your customers. Alternatively, you could use it to test different user interface (UI) designs and determine which one resonates more with your audience.

However, A/B testing is effective only when you capture the right metrics and understand why one strategy outperforms the other. In marketing, this might revolve around conversion rates, while in UI testing, it could be the number of interactions required to achieve a specific goal.


Measuring Success: The Power of Metrics

Another compelling reason for capturing metrics and data in your game or app is to measure success and align with your goals. The definition of success can vary among individuals, so it's crucial to keep that in mind as you design and build your app. Platforms like the App Store offer valuable built-in analytics, such as page impressions, product page views, and downloads. Similarly, web hosting providers offer analytics to help you track user sources and find out how users discover your website.


Performance Metrics: Enhancing User Experience

Once a user downloads your game, you're left in the dark regarding their experience and how well your app performs on various devices. Some players may enjoy smooth animations, while others may experience clunkiness. Fortunately, there are numerous analytic tools available to integrate into your app, enabling you to capture valuable information. To ensure transparency and user trust, maintain an up-to-date privacy policy that clarifies how you use their data to improve your product.


One exceptional tool is Sentry.io, which offers easy integration and provides insightful out-of-the-box metrics to understand user experiences. Sentry.io captures various performance metrics and promptly alerts you to potential issues. For instance, it provides the "Apdex" metric, which measures user satisfaction or perceived performance. Check out https://docs.sentry.io/product/performance/metrics/ for more information.


Moreover, Sentry.io plays a crucial role in capturing unexpected crashes and presenting detailed stack trace reports for debugging purposes. Since you can't directly ask the end user about the issue's cause and their actions leading to it, Sentry.io becomes invaluable for resolving these problems.


To maximize the usefulness of Sentry, provide it with debug symbols to pinpoint the exact code responsible for crashes and the corresponding stack trace.


Automate dSYMs Upload with GitHub Actions

Uploading debug symbols (dsyms) to Sentry becomes a breeze with GitHub Actions. This means that when you deploy your application via an automated pipeline, Sentry will have versioning information for your app and debug symbols, allowing you to identify the lines of code causing exceptions and track issues and performance across different app versions. You can even integrate your GitHub repositories directly within Sentry to highlight the Git commit associated with an error.

Here's the code to upload your iOS debug symbols to Sentry:

- name: Upload dSYMs files to Sentry
        run: |
          sentry-cli debug-files upload --auth-token ${{ secrets.SENTRY_AUTH_TOKEN }} \
            --include-sources \
            --org YOUR_ORG \
            --project YOUR_PROJECT \
            $GITHUB_WORKSPACE/$APP_NAME.xcarchive/dSYMs

You'll need to create a sentry auth token on the sentry website and then store that as a repository secret.


How to support

This content will always remain free, and if you find it valuable, please consider sharing it with others. Additionally, downloading our games and leaving honest reviews greatly supports us. Feel free to reach out with any questions or feedback, and we'll do our best to respond.

Download Falling Sky from the Apple App Store today: https://apps.apple.com/app/id6446787964


19 views
bottom of page