2007年2月6日の日記

<2007/02/07 2007/02/05>

王とリソース

昨日言っていたauto_resourceですが、書き換えられるところを全部書き換えたところで、実は一番威力を発揮するはずだった場所でauto_resourceが全く役に立たず、そこで使わなかったせいでauto_resourceがその最大の特徴を活かすことができなくなり、せっかく全部書き換えたのですがまた全部書き直すことになってしまいました。
まあ、せっかくまた全部書き直すことになったので、今までともまた違う方法でリソースの効率のよい管理を考えてみました。
元々ふにゃさんのリソースは必要になったときに初めて読み込まれ、その後は必要なくなってもプログラム終了までは解放せず、ずっと使いまわすようにしていました。
そこで、必要がなくなったら解放できるように、しかし使いまわしは効率よくできるように、という2つを両立させるためにauto_resourceの利用を考えたわけです。
ところがauto_resourceの仕組みはいらなくなったリソースが増えてきたらいらないもののうち古いものから消していくというものだったのですが、増えていくべきいらないリソースはauto_resourceの管轄外でいらなくなった瞬間に解放され、一方auto_resouce適用可能なリソースはいつでも必要になる可能性が高くてあまり増えたり減ったりしないということで、どのみちauto_resourceではうまくいかないということだったのです。
結局のところよく使われるリソースはいつでもメモリ上に常駐しているということになり、それだったらいちいちプレイ中に動的に読み込んだりせずに最初に一気に全部読み込んでしまおうというのが、新しく考えた方法です。
結局一番古臭い方法に行き着いてしまったわけですが、プレイを一時中断して画像を読みにいったりしなくて済むし、一気に読み込む画像は全部同じファイル内にあるのでディスクキャッシュを使って非常に高速に読み込めるはずなので、実は一番効率がよいのではないかと思います。
実際計測してみると、読み込み時間は0.1秒程度で、GIFのデコードにそれなりの時間がかかることを考えれば、十分な読み込み時間だと考えられます。
そうそう、操作説明である操作をすると、操作説明が終わらなくなるというバグを発見したので修正しておきました。

<2007/02/07 2007/02/05>