Case Study//Funcell Games//Embedded Release QA & Debugging

Release Testing on Pawn to Don

Owning full release-candidate validation on a shipped mobile RPG (1M+ downloads), and tracing an elusive bug with nothing in the logs back to its architectural cause.

Role

QA / Release Testing (Embedded)

Studio & Title

Funcell Games · Pawn to Don

Platform

Unity · Android Mobile

Outcome

1M+ DLs, 4.4★ (21.2K ratings)

Timeline

Oct 2024 – Nov 2025

Key Scope

RC Sign-Off, CI/CD, Profiling

Scale

1M+ DLs

4.4★ across 21.2k reviews
Test Matrix

3 Tiers

Low-end to high-end Android
Sign-Off Bar

0 Blockers

Zero crashes, clean analytics
Efficiency

Save Library

Instant branch regression

Context & Complexity

Pawn to Don is a 30-day branching narrative crime RPG: the player has 30 in-game days and a $100,000 target, with choices splitting between a legal grind and criminal operations.

That branching structure is exactly what makes a game difficult to test properly. There is no single “the game” — there are dozens of paths through it, and a bug three choices deep down one branch can be invisible on every other path.

Being embedded in development at Funcell rather than sitting in a siloed QA function meant owning release-candidate validation end to end: performance, functional, and regression passes, analytics and content-delivery verification, and go/no-go sign-off before every Google Play Store submission.

Section 01//Validation Methodology

The Release Validation Process

Every release candidate received a structured validation pass prior to Play Store submission: roughly 45 minutes to 1 hour 45 minutes per pass, executed across 3 device tiers spanning low-end to high-end Android hardware.

1. Device & Platform Checks

Startup time across device range, frame rate consistency against a 30fps floor, and screen orientation flips (portrait/landscape testing to detect UI layout ruptures).

2. UI & Settings Persistence

Element positioning, visibility, and interactivity across menus; confirming volume sliders, audio mute, and custom toggles persisted cleanly between cold restarts.

3. Gameplay Play-Throughs

Full play-throughs capturing gameplay regressions, level loading/unloading integrity, rendering artifacts, and visual anomalies.

4. Technical & Addressables

Validating analytics event dispatches and ensuring server-hosted Addressables/DLC loaded and unpacked seamlessly without corrupted assets.

Release validation flow: every candidate build runs through four checks before a go/no-go decision
Figure 1: Release validation flow — every candidate build runs through four distinct checks before a go/no-go decision.

The Sign-Off Bar & Retest Discipline

Sign-off bar: Zero crashes, zero progression blockers, verified analytics events. Minor cosmetic issues were permitted as known issues for the subsequent patch.

No spot-checks: If a build failed any validation gate, it returned to engineering and was retested with a full pass rather than an isolated spot-check, preventing regression side effects.

Efficiency Innovation: Full replays of a 30-day branching narrative to test a single fix are prohibitively expensive. Built a library of save files at key narrative nodes, enabling regression passes to jump directly into affected story branches in minutes.

Section 02//Issue Management

Bug Tracking & Regression Strategy

Bugs were tracked in Jira with severity and priority logged separately. A bug that is severe (substantially breaks mechanics) isn't necessarily urgent (blocking the current milestone), and combining them into one field destroys critical triage nuance.

Every filed report included detailed reproduction steps, build numbers, platform specifications, and an attached save file or video capture.

Triage & Lifecycle Protocol:

  • Bi-Weekly Engineering Triage: Reviewed open tickets directly with developers twice a week, re-aligning priorities against current milestone goals.
  • Verification Loop: Tickets flowed through In Progress → Blocked → Testing → Complete. Any ticket landing in Testing returned to QA to verify against the next clean build before closure.
  • Prioritized Verification: Each new build received a start-to-finish pass for crashes and blockers first, followed by a targeted pass down priority tiers.
Section 03//Centerpiece Investigation

Investigation: The Bug with Nothing in the Logs

The Symptom

The report was simple and unhelpful: the game would sometimes just stop. Not a crash. Not a black screen. It rendered cleanly, accepted input, but refused to advance. No unhandled exception. No Android ANR dialog. Logcat was completely clean.

Investigation trail: from a silent report to an identified root cause
Figure 2: Investigation trail — from a silent, logless lockup to an identified architectural root cause.

How the Cause Was Isolated:

  1. Analytics Breadcrumbs: Developers fired analytics through the same internal event system driving game progression. Used this stream as a breadcrumb trail: played until the lockup occurred, then checked exactly where the event stream stopped. This gave a precise frame and state in the cutscene sequence.
  2. Profiler & FPS Overlay Correlation: Re-ran the sequence with the Unity Profiler and in-build FPS overlay active. Every lockup correlated with an acute frame spike during a heavy cinematic animation.
  3. Unmasking Dropped Animation Events: Dialogue was synced to the cinematic animation, and animation events drove both state transitions and analytics. When the frame spike hit, the engine dropped the animation event. Because that event was the sole trigger telling the game to advance, a dropped event left the game waiting forever on a callback that never arrived. Nothing had errored — it was idling in a state with nowhere to go.

Differentiating Symptom vs. Underlying Architectural Fragility

Optimizing the cinematic animation eliminated the frame spike and resolved the immediate symptom. However, I flagged to the lead engineer that this was not a true fix: it removed the trigger, not the fragility.

The critical path still advanced exclusively on animation events with zero timeout fallback. Any device slow enough to drop a frame would trigger the exact same soft-lock. In a live user base of over 1 million devices, that failure was guaranteed to occur.

“Finding the bug is table stakes for QA. Recognizing that the fix addressed a symptom rather than the underlying fragility, and being able to say precisely why, is the difference between ‘found a bug’ and understanding a system well enough to know when a fix is incomplete.”
Section 04//Backend & Delivery

Backend & Content Verification

QA extended beyond the local client into end-to-end telemetry and server pipelines:

  • End-to-End Analytics: Confirmed telemetry events dispatched from the client via Android logcat, and corroborated on the backend server that events landed with valid user IDs, timestamps, and parameters.
  • Addressables & DLC Delivery: Tested server-hosted downloadable content packages across the device range, verifying hash validation, download retry loops, and asset unpacking.
  • Network Resilience: Emulated packet loss, flaky cellular connections, and abrupt disconnects using Charles Proxy to verify automatic reconnection and save preservation.
  • Battery & Thermal Profiling: Monitored power drain and CPU throttling on Android using dumpsys and Battery Historian.
Section 05//Production Outcome

Outcome & Live Impact

Pawn to Don shipped on Google Play and successfully crossed 1M+ downloads with a 4.4★ average rating across 21,200+ player reviews.

In a branching narrative game deployed to a massive live audience, unresolved soft-locks or regression failures surface immediately in reviews and churn. Rigorous release candidate validation and root-cause engineering ensured stability at scale.

Downloads

1M+ Shipped

Store Rating

4.4★ (21.2k)

Stability

0 Critical ANRs

Moses Kamau Mbugua

QA Engineer (PC & VR) · 8 Years Testing · 10 Years Engineering