FPS制御についてもう一度考える

DXRuby0.0.7で修正する前のFPS制御はどうなっていたのかを考えていた。
たぶん、上限の制御はできていたが、コマ落ち制御は全く働いておらず、しかもウソのFPSを返す状態だったと思う。
ここで一つ疑問が発生する。
処理が間に合わなかった場合に、全体の処理を遅くするのとコマ落ち制御をするのは、どっちがいいのか。
ウソのFPSを返すのは問題外として。


0.0.7で大きく仕様が変わったせいで、処理限界ギリギリの動作をさせていた人は「遅くなった」と感じているかもしれない。
DXRubyの申告では60fpsで動いていたのものが、高速化されたはずの0.0.7では激しくコマ落ちするようになったからである。
アクションゲームをターゲットとしている、とは言っても、そういうのも人によりけりで、たとえば俺の思想から言えばゲーム速度を保つのが正解だ。
だが人によっては、ゲーム速度を落としてもなめらかに動くほうがうれしいかもしれない。
作るゲームによっても変わってきそうだ。
どっちかに決めなければならないわけではなく、たとえばWindow.frameskip=true/falseというメソッドを作って、こま落ち制御をするかどうかを選択できるようにすればいい。
0.0.8ではそれを追加しようと考えてはいるが、デフォルトをどっちにするかという問題は残る。


いまさらまたこんなことを考えているのは、DXRubyで動作するサンプルを作って動かしている人を発見しちゃったからだ。
DXRuby0.0.6(だと思う)でFPSも表示してキャラをたくさん表示させていたから、とりあえず人が最初にやることはこういうことなんだろうな、と思ったわけだ。
そういう場合には、FPSが正しく返されることは当然として、コマ落ち制御はしないほうが印象がいい。
どっちかというと、コマ落ち制御をしなければならないほどゲーム速度を気にする人のほうが少ないのではなかろうか。
という気がしてきた。
気軽にゲームを作る、というコンセプトからしても、職人気質を押し付けるのはよろしくない。


まあ、ブログを書きながら仕様を決めるのもあれだから、0.0.8をリリースするまでのんびり悩むことにしよう。
リリース2回にわたって高速化しかしてません、ではちょっと期待はずれすぎだから、何かしら新機能を作りたいところだ。
ネタは無いが。