差分

ナビゲーションに移動 検索に移動

ゲームループ

2,436 バイト追加, 2017年3月24日 (金) 07:53
ページの作成:「'''ゲームループ'''とは、主にゲームで使われる永久ループのようなメインルーチンのことである。 == 概要 == 基本的...」
'''ゲームループ'''とは、主に[[ゲーム]]で使われる[[永久ループ]]のような[[メインルーチン]]のことである。

== 概要 ==
基本的にゲームでは「入力」「処理」「出力」を止まること無く延々と繰り返す。
入力は[[キーボード]]や[[マウス]]、[[ゲームパッド]]などからの操作を受け付ける部分である。[[ファミコン]]時代がから変わっていない。
処理は入力や[[AI]]、時間経過に伴う変化を処理する部分である。これも[[ファミコン]]時代から変わっていない
出力は処理の変化に応じて画面描画や音声再生などを行う部分である。絵は派手になったがやっていることは[[ファミコン]]時代がから変わっていない。
要するにゲームループの基本は[[ファミコン]]時代から今の今まで変化していない。

しかし、この単純そうなゲームループであるが、最近のゲームでは「処理」に時間がかかった場合、「前回のループ」に時間がかかった場合、ネットワークが遅延した場合などでも時間軸が狂わないよう、「出力」をスキップする「フレームスキップ」という機構が組み込まれることが多い。昔のゲームといえば重くなれば軒並みスローモーションになって画面がチラチラしていたが、最近のフレームスキップの[[アルゴリズム]]は地味に凄いらしく、とくに複数人が時間軸を共有するネットワークゲームではゲームが破綻しかねない要素であるため、大手メーカーなんかでは社外秘レベルの非常に複雑な[[アルゴリズム]]を採用しているとされる。詳しくは知らん。

まあ、最近の[[ゲームエンジン]]はほぼ全自動でやってくれるんだけどね。
稀にゲームエンジンにサードパーティ製の[[物理演算エンジン]]なんかを組み込むと全自動でやってくれない(物理演算エンジン側が破綻する)場合もあるので注意しよう。

== 関連項目 ==
* [[MonoGame/画面解像度を設定する]]
* [[MonoGame/解像度を取得する]]
* [[PlayStation Suite SDK/プログラムの基本構造]]
* [[SystemEvents.CheckEvents () メソッド (Sce.Pss.Core.Enviroment)]]

== 参考文献 ==
{{reflist}}

{{stub}}
匿名利用者

案内メニュー