According to researcher Owen Schaffer of DePaul University, the requirements for achieving flow are:
Knowing what to do
Knowing how to do it
Knowing how well you are doing
Knowing where to go (where navigation is involved)
Perceiving significant challenges
Perceiving significant skills
Being free from distractions1