ゲームループとは|入力・更新・描画を毎フレーム繰り返す、ゲームの基本構造
言葉の意味
ゲームループは、ゲームを動かし続けるために、コマ(フレーム)ごとに繰り返される処理です。毎コマ、ゲームの世界の状態を更新してから画面に描きます。
たとえば Godot でも、この意味で使われています。処理は2つに分かれており、できるだけ多くの回数、毎コマ実行されるものと、1秒間に決まった回数(既定では60回)で実行されるものがあります。後者は実際の描画の回数から独立していて、物理演算をなめらかに保つために使われます。毎コマの処理では、前回の呼び出しからの経過時間を受け取れるので、コマの間隔がそろわなくても動く速さを一定に保てます。
作り手がこの語を使う場面は、スクリプトに書く関数です。Godot では、スクリプトに _process(毎コマ)か _physics_process(物理の更新ごと)の関数を、どちらか一方または両方定義すると、エンジンが自動で呼びます。_process はコマを描くたびに呼ばれ、_physics_process は物理の更新の前に毎回呼ばれます。どちらも、Node(ノード)のクラスにある関数で、そのノードがシーンツリーにあるときだけ呼ばれます。Unity では、プレイヤーループ(Player loop)の全体は、特定のシステムとサブシステムの更新の並びで、それらの更新は決まった既定の順に1つずつ実行されます。
物理の更新の回数や間隔は、プロジェクトの設定で変えられます。Godot では、プロジェクト設定の physics/common/physics_ticks_per_second が、物理演算と _physics_process の関数が実行される頻度を決めます。この設定は、プロジェクトの開始時にだけ読み込まれるので、実行中に変えるときは Engine.physics_ticks_per_second を使います。1コマで進められる物理の更新の数には、physics/common/max_physics_steps_per_frame(既定は8)の上限があります。
Unity では、Update は MonoBehaviour が有効なとき、1コマに1回呼ばれます。FixedUpdate は、物理の更新の中で一定の間隔で呼ばれ、その間隔は Time.fixedDeltaTime の値で決まります。この値は、コードか、エディターの Time 設定にある固定の時間の刻み(Fixed Timestep)の値で変えられ、既定は0.02秒(1秒に50回)です。FixedUpdate は、コマの回数や物理の計算の必要に応じて、1コマに0回、1回、または複数回呼ばれることがあります。
Godot でゲームを一時停止するときは、SceneTree の paused プロパティに true を入れます。すると、次の2つが起きます。
- 2D と 3D の物理が、すべてのノードで止まります。物理サーバーは、一時停止のあいだも set_active のメソッドで有効にできます。
- ノードごとの処理モード(Process Mode)に応じて、一部のノードの処理が止まったり、始まったりします。
既定では、すべてのノードが Inherit(親の状態に従う)で、親・祖父母とたどって Inherit 以外の状態が見つからなければ、SceneTree の一時停止の状態が使われます。そのため、既定では一時停止するとすべてのノードが止まります。処理が止まったノードでは、_process・_physics_process・_input・_input_event の関数は呼ばれませんが、シグナルは働き、つないだ関数は実行されます。一時停止中も処理されるノードでも、既定では物理は働きません。
_physics_process の関数を作例のコードで読む節は、GDScriptを読む|変数・条件・関数・シグナルにあります。
次に読む
情報源
- Godot Engine Documentation — Idle and Physics Processinghttps://docs.godotengine.org/en/stable/tutorials/scripting/idle_and_physics_processing.html確認日 2026-10-23
- Godot Engine Documentation — Nodehttps://docs.godotengine.org/en/stable/classes/class_node.html確認日 2026-10-23
- Unity Manual — Event function execution orderhttps://docs.unity3d.com/6000.6/Documentation/Manual/execution-order.html確認日 2026-10-23
- Godot Engine Documentation — ProjectSettingshttps://docs.godotengine.org/en/stable/classes/class_projectsettings.html確認日 2026-10-23
- Unity Scripting API — MonoBehaviour.Update()https://docs.unity3d.com/6000.6/Documentation/ScriptReference/MonoBehaviour.Update.html確認日 2026-10-23
- Unity Scripting API — MonoBehaviour.FixedUpdate()https://docs.unity3d.com/6000.6/Documentation/ScriptReference/MonoBehaviour.FixedUpdate.html確認日 2026-10-23
- Godot Engine Documentation — Pausing games and process modehttps://docs.godotengine.org/en/stable/tutorials/scripting/pausing_games.html確認日 2026-10-23