ねこ巫女籠城ゲーム開発(石垣の建築と、建物と壁の削除について)
石垣を建築するあたりを実装します。そして建物と壁の削除まわりについて検討します。
石垣の建築
石垣は、その上に建物が配置できる特殊な建物として扱います。
このゲームでは、斜めになってる裾があるタイプの石垣と、垂直な面だけの石垣ブロックの2種類を扱います。
↓石垣ブロック、高さは3種類
テクスチャは適当ですが、石垣を想像しながら見てもらえると幸いです。
↓裾がある石垣
白いあたりに石垣の裾があると思ってもらえると幸いです。
この石垣の白い裾エリアは、他の石垣の裾エリアと重なって建築できることにします。そうすることで、くぼんだ角度になった石垣の裾の重なりをそれっぽく表現できると思うので。
↓高い石垣
だいたい 32 m 相当の石垣パーツも用意してみました。城門と比較すると高さが想像できてよいです。
石垣についての特殊な処理としては
- 石垣の位置(裾でない場所)の上には建物を配置できるしユニットの移動もできる。
- 石垣の裾は他の石垣の裾と重なっても建築できる。
- 石垣の内側(裾のない側)は地面の高さを石垣と同じ高さに固定する。
- 裾のない石垣ブロックにはこの処理を適用しない。
話が細かくなるのですが、このルールだと縦長の石垣ブロックで囲んだ範囲の地面の高さを石垣ブロックの高さと同じにできなくなります。(盛り土の傾斜角は 45 deg までなので)
↓裾なしの石垣ブロック(左)、裾ありの石垣(右)
この縦長の石垣ブロックは、裾ありの石垣の端に置くことで石垣に建物を隣接させるときに使う専用パーツとして扱うのでいいかなと思います。(裾がないので建物を隣に置ける)
建築の制限をプレイヤーに押し付けている気もしますが「プレイヤーが建物を配置しようとすると裾ありの石垣パーツが石垣ブロックに自動で変わる」とかいう処理もありかもしれません。また後で考えます。
建物と壁の撤去
当初は Factorio というゲーム同様に、右クリックの長押しで建築物を撤去できるようにしようと思っていました。でも、長い壁をまとめて削除するときは めんどうそうです。
と、ここまで記事を書きながらどうするか考えて「両方提供すればいいか」と思いました。
- 右クリック長押しで建物、壁、防衛ユニットを削除できる。
- 削除中の対象はアウトラインで協調する。
- 削除中は WASD による視点移動しないようにする。
- 削除中の対象はアウトラインで協調する。
- 地面を範囲ドラッグして DEL キーを押すと、範囲内の対象物を全削除する。
- 地面の高さの変更指示はそのままにする。
長押しで削除する機能は未実装なので、改めて作成していきます。次回以降の記事で!
フェーズをなくす仕様にする
ゲームの仕様について考えたことを書きます。
建築フェーズと防衛フェーズとを明確に分けるゲームのつもりでしたが、なくそうと思います。ゲーム Factorio を参考にしたいと思っていて「設計図で建築指示をしてロボットが建築する。敵は随時攻めてくる」というのをイメージしています。
考えたことを箇条書きにしてみると
- 住民の数に応じて、建築した資材置き場に資材が貯まっていく。
- Factorio の物流ロボットが資材を運搬するイメージ。
- 建築指示した建物を、資材置き場の資材を運んで自キャラが召喚したワーカーが作っていく。
- Factorio の建築ロボットが最寄りのチェストの資材を使って建築するイメージ。
- 建築指示の操作中は時間の流れを止める。
- どう建築するかをゆっくり考えられるようにするため。
- 資材が貯まるまでの時間は、拠点で寝ることでスキップできる。
- 寝なくても特に問題はない。
- 敵は定期的に攻めてきて、いつ攻めてくるかはカウントダウン表示する。
- 急に攻められてストレスを感じないようにするため。
- フィールドに敵の出現地点が配置されていて、どのくらいの敵が出てくるかわかるようにする。
- 出現地点は増えうる。
- この出現地点を撤去できるが、撤去するときは敵が多めに攻めてくる。
- 敵の出現拠点を無効にするには祠みたいなものを建築する。
- Factorio の長距離砲台のようなもの。
くらいです。
このプロジェクトの1つ前の、過去にボツにした籠城ゲームの案に似てきた気がします。ボツにしたプロジェクトは、資材の運搬ルーチンを賢くしようとして私の許容量を超えて破綻した気がするので、そこはいろいろと割り切っていきたいです。
まとめと今後の予定
石垣の建築をやってみて、どうするかとゲーム仕様について考えました。
次回は、削除の実装とか、仕様検討の続きと何から開発するかを考える予定です。がんばります。