パフォーマンスは相当いいらしい

マップシステムモドキを実装してみた。
ようするにCで配列を参照して描画登録を大量にするだけなのだが、RubyでループしてWindow.drawするのと比べて6倍ぐらいの負荷の差がある。
描画自体の負荷は変わらないから、当たり判定の時よりおとなしい数字になっているが、やっぱり明らかに速い。


16*16のチップで640*480を埋めると1200枚の描画になって、これをRubyでやると配列の参照とループだけで負荷がかなり大きくなってしまう。
手前に描画する、とかしようと思うとさらに1200回のループが必要になって、かぶった部分はWindow.drawの呼び出しを省けるにしても、ループのコストが高すぎる。
Rubyの弱いところがモロに出る形だ。
DXRubyにはそれぐらいの表現力は欲しいところだが、これをRubyで書くと、Rubyの性能限界ギリギリあたりになってしまう。


できないことをできるようにする、という意味では、マップ描画機能は必須と言える。
っていうか、現状だと普通にRPGが作れないし、背景をチップで組み立てるアクションゲームもかなり厳しい。
サンプルシューティングは一枚絵だからできているのだ。そういう意味ではアレはマーケティング用のフェイクといえる。
相当表現力を落とせば可能だろうが、やっぱRubyだとこんなもんかねー、みたいに思われるのはどーにも気に入らない。
RGSSでできていることがDXRubyでできないというのも悔しい。
マジメに仕様を検討するか。
ちなみにウチで実行すると、マップチップ4800枚描画で60fps負荷50%ぐらいになる。