単刀直入な質問事項を書きますと、
「bufferの数や量は動作や必要メモリ量にどの程度影響するか」
「ゲームとはいえbufferが40・80程度に増えるのは制作上自然なことなのか、もっと効率的な方法は無いのか」
ということになります。
以下長文な状況説明。
現在弾幕STGを製作しています。
その際に素材をbufferに読み込んで使用しています。
方法は640×480の画像の中に、36×48の自機・20×20の敵弾・20×40の自弾、ボムエフェクト……
などなど、ギリギリまで詰め込んでいます。
(この時点で余ったスペースが無駄になっていることも気になっていますが、ここでは割愛)
そこで最近「celput」という命令が「gcopy」「grotate」よりも処理が軽いとの話を聞き、
これの使用を考えています。しかしそれには問題がありました。
この命令のF1を見ると、例えば分割サイズを80×80などに設定した場合、
毎回「celdiv」で分割サイズを書き換えない限り、
36×48の画像や20×40の画像を同じbufferに読み込んで使うのは使いづらいようなのです。
それならば、同じ寸法サイズのものをまとめたらいいのかと考えました。
そこで画像をバラバラにしてまとめてみると、なんと画像枚数が50枚ほどになりました。
同時に使わない画像や、背景などを必要に応じてbufferに上書きする方法も考えましたが、
(完成時にはおそらく)40ほどのbufferを使うことになりそうな状態です。
スクリプトでいえば以下の状態になりそうです(実際のスクリプトではありません)。
screen 0,640,480, 0, (ginfo_dispx - 640) / 2, (ginfo_dispy - 480) / 2 #define PI 3.14159265358979//円周率 //変数初期化 //〜 //中略 //〜 //画像読み込み buffer 1 picload "op.png",1//オープニング背景 buffer 2 picload "op_effect.png",2//オープニング画面エフェクト(0星・1月・2太陽) buffer 3 picload "bullet_1.png",3//敵弾(0赤・1青・2黄・3緑丸弾、4赤・5青・6黄・7緑鱗弾) buffer 4 picload "bullet_2.png",4//敵弾(0赤・1青・2黄色・3緑細長弾) //〜 //中略 //〜 buffer 8 picload "mybullet_1.png",8//自弾(メイン弾) buffer 9 picload "mybullet_2.png",9//自弾(サブ弾 0高速用・1低速用) //〜 //中略 //〜 buffer 20 picload "geffect_1.png",20//撃破エフェクト(ザコ) buffer 21 picload "geffect_2.png",21//撃破エフェクト(ボス 0前半 1後半) //〜 //以下略
動作上は問題ありませんが、どうしても「buffer 21」というような、
仮想ウィンドウの数の多さが気になってなりません。
これが40,80と増えていった場合、それは素材管理の方法に問題があると言えるのでしょうか。
もしくは、規模が大きなゲームの場合であれば、このような状態は自然なことなのでしょうか。
具体的な問題でなく、感覚的で「気にしなきゃいいじゃん」で済んでしまいそうなことですが、
みなさんの意見を聞きたく質問させていただきました。
よろしくお願いします。