ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

フレームカウンタ

フレームレートは単位時間あたりどのくらい画面更新が行われるかを表す数値。ゲームでは60フレームとか30フレームといった数値がよく出てくる。60フレームは1秒間に60回更新が行われるということ。
フレームカウンタとは更新何回目のフレームかを表すカウンタ。ゲーム起動時からの回数にすることが多い。このフレームカウンタを使ってゲーム内で時間の処理を行ったりする。
では、このフレームカウンタを32ビットのunsigned intで保持したとき、どのくらいの時間を測れるのだろうか。
unsigned intで表せる最大の数値は4294967295。60フレーム固定でゲームが進行しているとすると60で割って約71582788秒。一日は24*60*60で86400秒だから、71582788/86400で約828.5日。つまり2年以上測れることになる。
ゲーム起動直後からフレームカウンタのカウントアップを始めるとするとゲーム起動しっぱなしで2年は持つということ。これならば普通にゲームを作るのにはオーバーフローを考慮しなくても大丈夫だろう。
ちなみにWindowsではGetTickCount()でシステムを起動してからの時間をミリ秒単位で取得できる。この値は49.7日でリセットされるので、この値を使って処理するときにはそれを考慮しないといけない。