In order to achieve flow, an activity must have

1)A balance between skill and challenge

2)Concentration and focus

3)Direct feedback of action results

4)Clear goals

5)Control over the situation/activity

This is likewise for experiencing flow during a video game.