スクリーンショット_2019-10-18_14

倉庫番として遊べるものにした RogueEna

先日から行っている、RogueEna 倉庫番バージョンの作業ですが、今日は倉庫番の仕組みをほぼ完成させました。

スクリーンショット 2019-10-18 14.51.30

箱を攻撃すると、その方向に移動させることができます。斜め方向への攻撃は移動になりません。
赤の箱を灰色のスペースに配置すると黄緑色の箱に色が変わります。黄緑の箱ももちろん動かすことができます。
箱を移動させようとした方向に壁や障害物があれば移動しないです。

スクリーンショット 2019-10-18 14.51.36

倉庫番専用の挙動も敵や罠などと同じように作った

なるべく、特殊化(倉庫番のために専用の機能を追加すること)を避けるように作りました。例えば、箱は、今まで作っていた「祭壇」や「敵の巣穴」のようなオブジェクトと同じで、倉庫番的な動きはビヘイビア内で完結するようにしています。つまり、今まで作ったものを再利用しながら、汚染させずにローグライクゲームと同居させるように上手く作ったということです。

レベルエディタ

スクリーンショット 2019-10-18 14.52.08

タイルの画像は仮ですが、レベルエディタも作りました。作ったと言っても Tiled というアプリを使っているのですが。

これも以前、チュートリアル用のレベルを実装するために使っていて、タイル情報を読み込んでダンジョンに展開する仕組みは再利用しています。内部的には Lua を利用していて、とてもシンプルに実装できています。

Lua は、新しいレベルをロードしたりセットアップするのにも使っていて、高度なことをやろうとしなければ、ロジックを組み込んでセットアップできる便利なスクリプトになっています。レベルごとに違った挙動を埋め込めるので、例えばヒントを出すとかの、データっぽい部分をテーブルとしてじゃなくスクリプトで作れるのは自由度が高く且つ既存のプログラムから切り離された状態になっていて、使い勝手がよいと感じます。

これから

まだクリア条件を満たしたときの挙動が未実装です。全部が所定の位置に配置されたらクリアにするか、そのとき階段が出現して次のフロアに行けるようになるとか、決めてないこともあったりするので、次はそれを実装しようかと思います。

あとは、アイテムや罠を使った特殊な動きを混ぜて遊べるのか、という確認です。箱はオブジェクト(自ずからは動かない物体)として作っているのですが、キャラクタ(敵やプレイヤー、味方などの動く者)として挙動しないので、キャラクタしか対象になっていなかったアビリティなどに手を加える必要がありそうです。

実装していって、面白そうなアイテムや罠の効果が思いつくといいなと考えています。

応援してくださると嬉しいです。よろしくお願いいたします!