ゲームループ
この記事では、「ゲームループ」について説明します。
ゲームループとは
ゲームループとは、ゲームの流れを制御するループ( 繰り返し処理 )です。「メインループ」と呼ばれることもあります。このループはゲームを終了しない限り続行します。
ループ内の処理
ループ内の処理は主に
- 入力処理
- 更新処理
- 描画処理
- 待機処理
の4つに分割できます。
入力処理
キーボードやコントローラ( ゲームパッド )などの入力機器の状態を取得し、入力の情報を更新します。
更新処理
ゲーム内にあるオブジェクトの位置や状態などを更新します。
描画処理
「更新処理」で得た情報を基にゲーム内のオブジェクトを描画します。
待機処理
「各フレーム( ゲームループ1回に当たる時間の間隔 )をディスプレイが更新される周期( 垂直同期 )に合わせるため」、または「ゲームの処理でCPUを独占させないため」に処理を待機します。
疑似コード
ゲームループの疑似コードを書くと下記のような形になります。
void main()
{
Initialize();
// ゲームループ
while ( !is_finished_game )
{
UpdateInputState();
UpdateGame();
DrawGame();
WaitUntilNextFrame();
}
Finalize();
}