すすめる

ライブラリばっかりいじってるとモチベーションがもたないので、ゲーム本体も進めていこう。
とりあえずEnemyをぽこぽこ出してみる。Bulletはまだ出ない。

見た目は何にも変わってなかった。

描画の設計について

描画マネージャは廃止。
せっかくタスクシステムを使っているのだから、描画の各ステージを全部タスクにしてしまって、自由に差し替えできるように。
カメラやライトなんかも全部共有オブジェクトにして、特別扱いのものを極力作らないようにしよう。

やってるorやりたいゲームとか

ということでレビュー1回目でした。この調子でどんどんチャレンジしていこう。
しかし探し始めてみると結構やりたいのが出てくるもんだな。

今やってる作品

フラジール(Wii)
モンハンP2G(PSP)

ゲーム発掘レビュー第1弾「幻想水滸伝 ティアクライス」

どんどんゲームやって面白いのを見つけよう企画スタート。
ストーリーとかに関してはあまり書くつもりは無いが、ネタバレがあるかもしれないので注意。
あと幻水シリーズは初プレイなのでそのあたりご了承いただきたい。

続きを読む

シェーダを使うときの設計がわからん

プログラマブルシェーダを使うと自由自在なことができるけど、その反面自由すぎてクラスとかの設計をどうすればいいか全然見通しが立たない。

具体的にどういうことをやりたいかという視点で考えてみると。

  • ゲームのデザインテーマに沿った大本のシェーダを全部のオブジェクトに使いたい。
  • 一方でキャラクタごとに影とかいろいろとエフェクトを効かせたい。
  • また、画面全体に対してブラーのようなエフェクトをかけたい(ポストエフェクトっていうのか?)

このようにシェーダの使い方も様々になるので、シェーダ処理の箇所を一本化するとかそういうことはできないみたいだ。描画マネージャに登録する構造体にテクニック名やパラメータを渡して、描画マネージャがテクニックのセットやらパスの描画やらを統一して行うというやり方を試しに作ってみてるが、やっぱりいろいろと問題が出てくる。

まず、シェーダに渡すパラメータがシェーダごとに数も種類も多種多様なので扱いづらい。ライトとかのような全体に共通するパラメータもあれば、ほんとに特定のシェーダとオブジェクトにしか使わないパラメータもある。それに、テクニックに含まれる全てのパスをシーケンシャルに実行するだけじゃなくて、パスを選択して実行したいとかパスの間にパラメータやレンダーステートを変更したいだとか、そういう場合が結構普通にありそうなので流れを固定化することはできない。

むしろシェーダごとにクラスを一つ作って、それで描画を完結させるべきなのか。

というのがいろいろ調べている現段階での印象。