Quick answer: Emit a start/complete event per tutorial step with its duration. Build a funnel. The step with the largest absolute drop is the one to fix first. Validate the fix with A/B tests. A tutorial that loses 40% of players before the core loop has nothing to do with difficulty — it’s a UX problem hiding as a retention problem.

Your store page wishlist-to-install ratio is solid. Your D1 retention is a disaster. Somewhere between “player launched the game” and “player came back tomorrow,” 70% of them gave up. Most of that loss happens in the tutorial. This post is the playbook for finding where, why, and how to shrink the leak.

Define the Funnel

Your tutorial is a sequence of steps the player must complete to enter the core gameplay loop. List them. Each one is a node in the funnel:

  1. Game launched.
  2. Opening cinematic finished.
  3. Movement tutorial completed.
  4. Camera tutorial completed.
  5. Combat tutorial completed.
  6. Inventory tutorial completed.
  7. First real quest started.
  8. First real quest completed (tutorial ends).

Every step emits a start event and a complete event with the duration. A player who quits between step 4 and step 5 is a drop at step 5.

// Every tutorial step is instrumented:
analytics.Track("tutorial_step_start", new {
    step_id = "movement",
    step_index = 2,
    session_id = currentSessionId,
});

// ... player does the thing ...

analytics.Track("tutorial_step_complete", new {
    step_id = "movement",
    step_index = 2,
    duration_seconds = elapsed,
    attempts = tryCount,
});

Build the Funnel Chart

For each cohort of new players, count how many reached each step. Divide by the total who started step 1. You get a stepped line chart that only goes down. The shape tells you where the leaks are.

Two healthy shapes exist: a gentle slope (small losses everywhere, good) and a sharp drop at a specific known-hard step (expected). Two unhealthy shapes: a cliff at a step you thought was easy (your signal to fix), and a slow bleed through many steps (the tutorial is too long).

Prioritize by Absolute Loss

A common mistake is to fix the step with the highest drop-off percentage. Don’t. A 50% drop on a step that only 500 players reach is a 250-player loss. A 10% drop on a step that 8,000 players reach is an 800-player loss. Fix the second one first.

Sort steps by absolute players lost: reach_at_step * drop_rate. The top of that list is your priority queue. The bottom can wait.

Confusion vs. Disinterest

For each high-loss step, compare duration between players who completed and players who quit. Three patterns:

Look at Attempts and Sub-Steps

“Combat tutorial” as a single step hides information. Split it into: draw weapon, first successful block, first successful attack, kill the practice dummy. Each is its own funnel node. You’ll often find that 80% of the combat-tutorial drop happens on one specific sub-step — usually an input that isn’t clearly telegraphed (the block button is the same as interact but the UI shows interact).

Track attempts per step. A player who needs 7 attempts at “successful block” and eventually passes is a candidate for future frustration even if they completed. Flag steps where median attempts exceed 3 as investigation targets.

A/B Test the Fixes

You have a hypothesis about what will help. Don’t ship it blind. Route new players into two buckets by user hash: 50% get the old tutorial, 50% get the new one. Measure completion rates for both. Keep the new version only if it wins by a statistically meaningful margin over a sample large enough to matter.

For most indie games, 2,000 new players per bucket is enough to detect a 5% absolute improvement in completion rate. Fewer than that and the numbers are noisy. If your daily new-player count is 100, expect an A/B test to take 20 days. Plan accordingly.

Common Tutorial Fixes

Keep Measuring After Launch

Tutorial drop-off can change with every patch. A balance change to movement speed affects the movement tutorial’s completion rate. A UI restyle changes where buttons live. Keep the funnel on a dashboard everyone looks at weekly. Alert on significant regressions.

Also watch for cohort differences. Players from a TikTok campaign have different expectations than players from a Steam wishlist email. If one acquisition source drops off disproportionately at a specific step, that step is either poorly aligned with their expectations or the source is miscategorizing players.

“The tutorial isn’t the game’s first level. It’s the game’s first impression. Half your players never see anything else — make it count.”

Related Issues

For the analytics foundation this depends on, see how to instrument games for useful analytics. For the retention loop downstream of the tutorial, see how to analyze player drop-off with session data.

Every unexplained cliff in the tutorial funnel is a bug hiding as UX. Find it, name it, fix it.