2009-05-06から1日間の記事一覧

ソートの置き換え

都合よく重いので疑似3Dマップエディタをベンチマークに使っているが、これで見る限りはライブラリ処理部分(メソッド含む)はDXRuby0.0.6の2倍近い速度で動くようになった。 ただ、ベンチマークというのはどうしてもある切り口でしか評価できなくて、この場…

処理負荷算出機能

よくサンプルゲームなんかについている表示で、処理負荷というのがある。 みんなどうやって算出しているのかは知らないが、似たような機能を作ってみた。 1フレームの処理にかかった時間を、1フレーム分の限界時間で割って、%を返す。 どう使うと便利なのか…

DXRubyExtensionを考える

名前が長いので短縮名はDXRubyXにしよう。Xだらけでちょっとイマイチだ。 DXRubyと付いているが、別にDirectXに限定するわけでもないし、DXRuby以外のライブラリでも使えるはずだ。 使えなくなるかもしれないが。 そのへんは未定だ。 DXRubyExtensionの目的…

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

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

FPS制御を検証する

DXRuby0.0.7でだいたいできてるから大丈夫だろうとテキトーに考えていたFPS制御。 0.0.8用にコマ落ち制御をしない機能を付け足して比較してみると、意外に妙な挙動を示していることがわかった。 Ruby用ライブラリとしてのコマ落ち制御について考えてみる。 0…

FPS制御とGC

きめ細かなFPS制御をしようと思うと、Rubyの処理負荷変動幅の大きさの前に呆然とするしかない。 ガベージコレクタは手ごわい相手だ。 とりあえず、GCの負荷対策への基本姿勢として、以下の3パターンが考えられる。 (a)負荷変動が大きくてもうまいこといく方…

あんまり関係ないことやコマ落ち制御のはなし

2000オブジェクトを動かすと、コマ落ち制御をしない場合は55fps、した場合は30fpsとなる。 この差は、Ruby+drawの処理がぎりぎり1フレームに入らない場合に大きなwaitが発生するためだと思われる。 基本的に、ゲーム速度を一定に保つ制御をしようとすると、w…

トートツだけどフォントの機能拡張

いままでただ表示するだけだったフォントに、Window.drawExと同等のエフェクト機能を持たせてみた。 この画像はフォント同士を半透明加算合成している、 ほんとはD3DXSpriteやめて自前で描画したかったけど、なかなか難しそうだった。 このあたりはこんな感…

DXRuby0.0.8リリースしちゃった

描画とソートの性能改善は正直なところかなり大きいわけだが、これをメインにリリースするのもなんだかなーと。 FPS制御はコマ落ち無しモードをデフォルトにした。 せっかくダウンしてくれて、コードまで書いてくれて、動かしたときに「えー」ってケチが付く…