とりあえず、描画タイミング、ゲームオブジェクトの移動、当たり判定なんかの処理は一定間隔で行いたい。
だから、単純なゲームのとあるシーンは以下のようになる。
while(1) {
  描画
  ゲームオブジェクトの移動
  当たり判定
  時間調整
}

次にタイトル画面を表示するシーンが欲しいなと思ったら、もう一つループを追加する
while(1) {
  描画(タイトル画面表示)
  キー入力
  時間調整
}

シーンの数だけループができた。
じゃあ、このループを一般化して、ハードコーディングではなく、外部からのスクリプト読み込みなどで
動的に生成できないかと悩んでみると、タスクシステム(っぽい何か)に行き着いた。