HSPでのゲーム開発…続き
Windowsで動作するインタプリタ型プログラム言語HSP(Hot Soup Processor)でゲームを開発中です。馬を使ったすごろくのようなこのゲームは、年明けの新年会の余興で使うもの。スプライトを使ったゲームプログラムは不慣れとあって時間がかかっているのだけれど、キャラクター表示やアニメーションがうまくいったなぁと思えば、とんでもない事態におちいっております。それは表示の遅さです。そんなお話。
キャラクター・アニメーションの表示が遅いことに気付いたのは昨日のお話。ランダム表示しているサイコロの目がゆっくりになり、アニメーションがスローモーションになってしまったんです。単純に処理スピードが追いついていないような感じです。ところがCPU使用率もメモリも余裕があります。単純に描画と処理に時間がかかっているような感じだったのです。
思い当たるような原因としては、キャラクターサイズによって複数のBMP画像を用意、それらを不可視ウィンドウに読み込みスプライトをたくさん使って描画している点でしょうか。不慣れなゲーム開発のためプログラムの中で効率の悪い処理がいたるところにあるはずです。
とりあえず思い当たるところに手を入れてみます。まずはキャラクター画像を見直し数を整理。スプライトで表示しなくてよいところは背景に含めたり違う方法をとるなどして効率を上げます。しかも複数のBMP画像をすべて統合し不可視ウィンドウの数を減らしました。チカラ技で書いた処理も効率よく見直したのだけれど…それでも遅いままです。
もう仕方がないので、処理が遅くなった部分を判別するためプログラムを書き直しつつ検証をしようと思ったのだけれど、もう最初から処理が遅いんです(笑)。「これは今開発中のプログラムが原因ではなさそうだ…」。そう思った私は参考にしたサンプルプログラムのシューティングゲームを実行してみることにしたのです。
すると案の定、滑らかに動いていたはずのキャラクターがスローモーションになっているではありませんかっ。原因はWindowsのシステムそのものだったようです。思い当たるふしはないのだけれど…システムの復元を使って開発環境を整えたあたりまで戻してみると…あっさり解決しました(笑)。こんなことならばソースの見直しなんてしなくてもよかったような気もしますけれども、効率がよくなったことは悪いことではないので、それはよしとします。