Since we’re doing some analytic philosophy on game design and trying to bring clarity to the concept of “core loops” and other kinds of loops in games, let’s go to basics and figure out what a “loop” generally is.
In mathematics, according to Wikipedia, a loop is:
a path whose initial point is equal to the terminal point
In programming, according to these people, a loop is:
a sequence of instructions that is continually repeated until a certain condition is reached. Typically, a certain process is done, such as getting an item of data and changing it, and then some condition is checked such as whether a counter has reached a prescribed number. If it hasn’t, the next instruction in the sequence is an instruction to return to the first instruction in the sequence and repeat the sequence. If the condition has been reached, the next instruction “falls through” to the next sequential instruction or branches outside the loop.
So basically, a loop is some sequence where some agent moves from a starting point, to one or more intermediate points, and then back to the starting point.
In mobile game design, you want to move your player’s motivation in loops, because you never want the player to be without pull to pursue another goal.
You also want to structure your user flow in loops, because you don’t want to have to create endless content in order to give your players runway to keep playing. You’d much prefer to loop them through the same content again and again.
And you want your experience to evolve for each user in the form of a loop: with each action the user takes, the state of the app changes; this presents a new set of options for the user to take. As the user loops through this sequence, the experience should continually evolve such that the goals the user is pursuing become more and more meaningful.