Quick answer: Capture the freeze with context (breadcrumbs and what the game was doing) to find what's blocking it (main thread blocked, deadlock, or infinite loop), fix by moving work off the main thread or resolving the block, and verify per version.
A freeze, where the game hangs unresponsively instead of crashing, is as frustrating as a crash and sometimes harder to diagnose. Finding what's blocking the game is the key. Here is what to do when your game freezes.
Capture What the Game Was Doing When It Froze
A freeze means something is blocking the game from responding, and you need to find what. Capture the freeze with context, the breadcrumbs and what the game was doing when it hung, so you can see what operation or state preceded the freeze, pointing at what's blocking the main thread or looping.
Bugnet captures context and breadcrumbs with issues, so you can see what the game was doing when it froze, the operation, the state, the sequence. That reveals what's blocking, a heavy operation on the main thread, a state that deadlocks, a loop that doesn't terminate, turning an opaque hang into a diagnosable cause you can locate and fix.
Identify and Fix What's Blocking
Find the block: freezes usually come from the main thread being blocked (heavy work, I/O, or a long computation running on the thread that handles input and rendering), a deadlock (two things waiting on each other), or an infinite loop. Fix by moving heavy work off the main thread, resolving the deadlock, or fixing the loop.
Bugnet's captured context points at what was happening when the freeze occurred, helping you locate the blocking operation. Knowing what the game was doing (a load, a computation, a network call on the main thread) tells you what to move off the main thread or fix, so you can resolve the block causing the freeze rather than guessing where the hang is.
Verify the Freeze Is Resolved
Verify per version that freezes stopped, the hangs no longer occurring on the fixed build. Since freezes (like crashes) drive players away and are often underreported, confirming in the field that the freeze is gone, not just that it works on your machine, is important.
Bugnet tracks issues per version, so after fixing you can confirm the freeze stopped on the new build in the field. This verifies the fix worked under real conditions (the freeze gone where players hit it), rather than assuming, since freezes often depend on device performance or data that your machine may not reproduce, field verification confirms it's actually resolved.
When your game freezes, capture what it was doing when it hung to find the block (usually heavy work on the main thread, a deadlock, or a loop), fix by moving work off the main thread or resolving the block, and verify per version. A freeze is a blocking problem.