2004年12月29日の日記

<2004/12/30 2004/12/28>

パネルγの実行速度一定化について

さて、処理落ちが起こるとゲームのテンポが変わってしまい、ランキングを開催したいと思っていることもあって、公正さに欠けるのは致命的だと思うので、最も時間のかかると思われる描画処理について考えていました。

1.普通に描画する。
とにかく簡単。
でもマシンの性能によっては普通に処理落ちします。
2.遅れていたらフレームスキップする。
例えば2フレームの時間で描画していたら、ゲーム処理→描画→ゲーム処理→フレームスキップ→ゲーム処理、となって、2フレームの時間が経過した跡に瞬時に2フレーム分の処理が行われ、これはこれで公正さが失われます。
3.描画命令をキューに入れて後でまとめて実行する。
「後で実行」を別スレッドで管理すれば描画でもたついている間にも裏ではゲームが普通のスピードで進んでいるため実質的な公正さは保たれるはずです。
ただし、「キューに入れる」とという作業が余計に加わるので全体的な速度そのものはかえって遅くなりますし、メモリ使用量もキューの分だけ増えます。
とりあえず2は前に試してえらい目にあったので却下ということで、1か3になるのですが、とりあえず今のところは1の方式を実装して、様子を見てから3に切り替えるかどうかを判断しようと思っています。

<2004/12/30 2004/12/28>