Core loop vs meta loop
Snapshot
~70 sec
A core loop repeats every few seconds inside one sitting. A meta loop repeats across sittings, a day or more apart. Treat a complaint about one as a complaint about the other, and the fix lands in the wrong place.
You will learn
- Tell a core loop's timescale apart from a meta loop's timescale.
- Name which loop a specific player complaint actually points at.
- See why stacking meta systems cannot repair a core loop that isn't fun yet.
Target outcome
You can take a vague "this doesn't feel fun" complaint and say which loop, core or meta, is the one to fix.
Visual walkthrough
Visual walkthrough
~5 min
Two loops, two timescales
Core loop
Intent, action, result, re-entry - repeats every few seconds inside one sitting.
Meta loop
Session, reward, progression, return - repeats across sittings, often a day or more apart.
Session
One sitting, where the core loop runs many times before the meta loop advances once.
Retention
The meta loop's actual job: give a reason to start tomorrow's session at all.
A broken core loop compared with a broken meta loop
Approach What players say Actual cause Fix that won't help Core loop is brokenThe moment-to-moment action itself doesn't feel good. “This feels repetitive” or “I don't know what I'm doing” inside a single sitting. Intent, action, or result is unclear or unrewarding on its own, second to second. Adding a daily reward or a battle pass. It gives players a reason to open a loop that still isn't fun. Meta loop is brokenEach sitting feels fine, but there's no reason to come back tomorrow. “I had fun but I forgot to open it again” - churn between sessions, not inside one. Nothing carries forward: no visible progression, no return hook, no changed state waiting next time. Retuning the core loop's moment-to-moment feel. It was never the problem. Diagnose the complaint
Playtesters say a prototype is fun for the first ten minutes, but nobody comes back the next day. Which loop needs work?
Expected reasoning
The meta loop. A fun first ten minutes means the core loop already works; the missing piece is a return hook - visible progression or a reason to start tomorrow's session - not a change to the moment-to-moment action.