ねこ巫女籠城ゲーム開発(残タスクの列挙と石垣まわりの実装)
「ゲームとしてプレイできるようにする」という目標のために、何を実装するのかを確認しました。また石垣の現状の動作を確認しました。
残タスクの確認
残タスクを箇条書きしてみて、次着手することを決めます。
建築まわり
- 石垣の仕様を決めて実装する
- 建築の操作を行って違和感を修正していく。
- 建築するときに補助線を描画するとか。
- 建物の見た目を作る
- MagicaVoxel で建物モデルを作っていく。
- 建築指示を行った建物がワーカーで建築されていくようにする。
- 水が流れて広がる処理を実装する
- タレットを配置できるようにする
- 橋や櫓門といった階層構造の仕様を決めて実装する。
防衛まわり
- 敵が群れとして押し寄せてくるようにする。
- 壁の移動コストと移動メッシュを敵の経路探索に反映させる。
- 敵が建物に侵入したときの仕様を決めて実装する。
- 敵のモデルを何にするか決める。
- 敵味方が攻撃するようにする。
- 自キャラが味方の軍勢を召喚して操作できるようにする。
- 自キャラの攻撃やスキルを決めて実装していく。
- 開門をどうするか仕様を決めて実装する。
ゲームの仕様決め・調整
- 敵の増え方とどう攻めてくるかを決める。
- ゲームクリアをどう提供するかを決める。
着手しようと思ったこと
まだまだ残タスクが多いのがわかります。そしてとりあえずは建築と防衛のタスクに着手していこうと思います。
石垣と石垣ブロックについて
このゲームでは石垣は「その上に建物を建てられるもの」として扱います。また、石垣はパーツで提供します。
↓ 現状の石垣パーツ
今回は、現状までの実装で石垣を作ってみて何が問題か確認しました。
↓ 建築してみた石垣
- 問題だと思ったこと
- 地面を石垣の高さまで盛り土できない。
- 石垣の上に建物を建築できない。
- 建築プレビューの半透明の建物が視認しづらい
個別に何が問題で、どうしたいか書き出します。
地面を石垣の高さまで盛り土できない
現状では盛り土による傾斜が 45 deg に制限されているので、高い石垣の内側の地面を石垣と同じ高さにできません。
これに対する修正内容は
- 石垣の内側の斜面での盛り土の角度制限をなくす。
- ただし、裾がある石垣の場合、裾がある側には盛り土できないようにする。
です。
すっごい面倒そう…
私は「どうすればいいか即答できないことは実装できない」と思っているので、これはどう実装すればいいかもう少し考えてから着手します。
石垣の上に建物を建築できない
現状では建物を石垣の上に建築できません。
これについての修正内容は
- 石垣のある位置が地面として扱われるようにする。
- ただし、裾がある石垣の場合は裾側のタイルには建築できないようにする。
でしょうか。
つまり「地面として扱われるタイル」の定義が必要になります。めんどいですね…
これについては Building クラスに「地面として扱う高さ」「その高さとして扱うタイルのインデックス」を登録できるようにしました。
よいです。
この設定を使った実装はまた後で行います。
建築プレビューの半透明の建物が視認しづらい
石垣と直接の関係はないのですが、石垣と半透明の建物が重なったときに視認性がすごく悪かったのでどうにかします。
具体的には現状の半透明の描画に加えて「緑色のアウトラインを描画する」という実装にしようと思います。
単に緑色の半透明にする描画も試してみたのですが、こんな感じになってしまって ここから修正していくのも大変そうだったのでアウトライン描画の追加でいいことにしました。
↓ 半透明の緑色で描画したもの。地面の色と相まって見づらい。
shader に詳しければ「単色の緑の半透明で描画しつつ、エッジが目立つようにする」とか簡単に実現できるのかもしれませんが、私が詳しくないのでアウトライン描画を追加してみます。
これについては既存の実装を少し変えるだけなので試してみました。
ましになったと思います。
追加の気付きとしては「建物を建てるエリアの地面タイルも強調表示した方がいい」です。これはまた後で作業します。
まとめと今後の予定
今回はタスクとして何が残っているかを確認しました。よいと思います。今後も定期的に確認していきます。また、石垣の処理について何を実装すべきかを確認しました。これもよいです。
次回はこの石垣の処理の続きに着手したり、石垣の見た目を用意したりしたいです。がんばります。