動的配列

やっぱnewは重いと実感。
描画マネージャを作って、各タスクが描画情報構造体をマネージャに登録するようにしたんだけど、その登録をSTLコンテナへのpush_backで実装してたら激重になった。
100個の描画オブジェクトがあるとすれば1フレームに100回のnewが毎フレーム発生するので死ねる。
ポインタのコンテナにすれば登録は軽くなるんだけど、実体の管理をタスク側でやらないといけなくなるので避けたい。
しかたないのでコンテナには自前のプールを使うことにした。
キャパを超えたら2倍で再確保してコピーし、要素を消しても領域は解放しないという仕組み。
メモリは常時食ってしまうけど、まあそんな気にする時代でもないだろう。
ていうかvectorってもともとそういう作りになってなかったっけ・・・。

スクロール

任意型のスクロールを作るのは初めて。結構難しい。
プレイヤーにストレスを与えないようになるべく自然にスクロールさせないといけない。
自機が画面の中心からどれくらい離れたらスクロールし始めるか。
スクロール速度の増減はどうするのか。
いろいろと試行錯誤する必要がありそうだ。

調整風景。

企画「1000回遊べるシューティング」

電話線が切れて1日ネットができなかった。


さて、新企画スタート。
目新しさは何もないけど、面白いと思うゲームの面白さを抽出する実験。
シューティングは元から1000回遊べるだろ、という想いは胸に押し込めてくれ。
「結局シューティングかよ」という気持ちはあるが、リソースの労力を削れる選択肢となるとシューティングかパズルになってしまうなあ。

とても大まかなゲーム概要

  • コンセプトは自由度の高いシューティング
  • スクロールタイプは全方位の任意型
  • ステージに1体存在するボスを倒すと次のステージへ

より細かい設定はのちのち。

描画マネージャ

試行錯誤しながらコードを書く。
とりあえず描画はメッシュとビルボードに対応した。
ビルボードはゲージやらスコアやらのためにスクリーン座標指定も可能。
それ以外に必要なのってあるのかな。

貼って問題なさそうな画像が過去作のSSしかなかった。