kowさんは天ざる大好き

創作に絶望すると、世界が反転した日記

お手軽! 可変FSPの実装

nVidiaのドライバをインストールした。
WindowsUpdate でnVidiaのドライバをいれたら画面がおかしくなった。
ドライバをロールバックして、わけがわからんくなってDirectXSDKをいれてみた。
DirectX診断ツールでは問題がないようなので、WindowsUpdateをリトライ。
すると、インスコできた。

さっそく去人を動かしてみた。
ま、まあ、前に比べればパフォーマンスはでとる。

PenⅢ650E + Memory 640MB + TNT2 Pro 32MB
では
32bitColorで、30FPSは苦しい。
16bitColorで、ぎりぎり30FPSで動作する。

ということで、ここを最低動作環境を目標に修正していこう。
といっても、フレームレートを秒間60から30にするだけなんだけど。
ゲームカウンタのステップ値を倍にする。

ゲーム中での遷移処理はすべて、このカウンタクラスを使用している。
一フレームごとに、指定ステップ数だけ、増分/減少するという、プレステの開発ライブラリにあったとかいうあれ。
設定するステップ値に対する比率を、等しく上げることで、フレーム依存カウンタを
60でも30でも動くようにする。
今のカウンタクラスを派生して…と思ったんだけど、ソース中のカウンタの
クラスを書き換えるのはちょっと…とおもった。
ここで、さくっと改修できてさくっとためせる方法を思いついた。
パッケージ変更。
別のパッケージに同じ名前のクラスで改修をいれて、インポートするパッケージを変える。
こ、これ、フレームに依存しないカウンタまで影響される危険な行為である。
エンドユーザが、自分でFSPを設定できるように、外部ファイルに指定ファイルを置く。
これを読み込んで、60との比率をカウンタのクラス属性に設定。
これで遷移処理、進行速度をFSPに依存しないようになった。
ちょっと大きいファイルにアクセスすると、DrawSkipが発生するが、まあ、動いているといえば動いている。

次は省メモリか。
省メモリは一般的に、実行速度とのトレードオフが…
メモリ容量をどのへんにしぼるか…