ゲーム開発

ゲーム開発入門① ゲームループの仕組みを知ろう

入力、状態の更新、描画を繰り返すゲームループの役割を、短い疑似コードでやさしく解説します。

ゲームの画面では、キャラクターや敵が絶えず動いているように見えます。

実際には、「入力を読む」「状態を変える」「画面に描く」という短い処理を何度も繰り返しています。この繰り返しがゲームループです。

関連する言葉はゲーム開発の基本用語にもまとめています。

1回分の処理をフレームと呼ぶ

ゲームループを1回実行して作られる画面をフレームと呼びます。

ゲームが動いている間:
  入力を読む
  ゲームの状態を更新する
  画面を描く

この順番を素早く繰り返すことで、動いているように見えます。

入力を読む

キーボード、マウス、ゲームパッドなどの操作を調べます。

もし右キーが押されていたら:
  右へ進む予定にする

入力を読んだ段階では、すぐに描画するのではなく、まずキャラクターの位置やゲームの状態を変更します。

状態を更新する

状態は、その瞬間のゲームを表すデータです。プレイヤーの座標、残り時間、体力、得点などが含まれます。

playerX = playerX + speed
remainingTime = remainingTime - elapsedTime

elapsedTimeは前のフレームから経過した時間です。環境によってはdeltaTimeとも呼ばれます。経過時間を使うと、処理速度が異なる端末でも近い速さで動かしやすくなります。

最後に画面へ描く

更新後の状態を使って、背景、キャラクター、文字などを描きます。

背景を描く
playerXの位置にプレイヤーを描く
残り時間を描く

描画処理の中で得点を増やすと、画面の表示回数によって得点が変わってしまいます。ゲームのルールは更新処理、見せ方は描画処理と分けると整理しやすくなります。

FPSは1秒間のフレーム数

FPSはframes per secondの略で、1秒間に画面を何回更新したかを示します。

FPSが高ければ必ず良いとは限りません。動きの滑らかさ、端末への負荷、電力消費のバランスを考えます。また、FPSと一人称視点のゲームジャンルは同じ略語なので、文脈で区別します。

練習:正しい順番へ並べる

次の処理を、ゲームループで行う順番に並べてください。

  • プレイヤーを描く
  • 左キーが押されたか調べる
  • プレイヤーの座標を変える

模範解答

  1. 左キーが押されたか調べる
  2. プレイヤーの座標を変える
  3. プレイヤーを描く

解説

入力、更新、描画の順です。新しい座標を計算してから描くため、操作に応じた位置へプレイヤーが表示されます。

次はゲーム開発入門② 座標と当たり判定を理解しようで、位置と接触の調べ方を学びます。

← 記事一覧へ戻る