goo blog サービス終了のお知らせ 

旧ロボットのウディタぼやき

WOLF RPGエディター(通称ウディタ)に関して気づいたこととか、ぼやきとか、開発状況とかを書いています

トラップ

2009-11-05 18:06:20 | 開発
ウディタでローグライク開発第5弾。

今回はトラップです。
モンスターやアイテムなどダンジョンに配置するものは全て、データベースで設定すればダンジョンへ自動的に配置されるようにしています。
ですから、トラップに関する情報をデータベースに追加し、トラップの処理を扱うコモンを作成するだけで比較的簡単に実装することができました。

どんなトラップをどれだけの種類作成するかまだ決めてませんが、とりあえず踏むとダメージを受けるトゲの床を作成しました。
トゲの床のマップチップが見つからなかったため、前回と同じように自作。
トゲに見えるかな・・・?
ドット絵の技術がもっとほしいですorz

飛び道具

2009-10-29 19:12:27 | 開発
ウディタでローグライク開発第4弾。

今回は飛び道具を実装しました。
アイテムを操作するコマンドを作成し、矢を飛ばすことができるようにしました。
矢のグラフィックは探すのがめんどうだったのでとりあえず自作。

アイテム操作コマンドを実装したので、アイテムを置いたり使用したり装備できるようになりました。
でも、アイテムはまだ盾と矢の2つしかありませんが・・・。

簡単な戦闘

2009-10-22 20:00:25 | 開発
ウディタでローグライク開発第3弾。

今回は簡単な戦闘ができるようにしました。
主人公のHPゲージを表示し、攻撃アクションを実装。
モンスターを倒すとそのモンスターはダンジョンから削除し、逆に倒されるとゲームオーバーになるようにしました。

また、戦闘以外にもミニマップの表示をできるようにしたり、1ターンの経過処理も実装してモンスターが動き回るようにしたりしました。
ただ、モンスターの動作は目の前に主人公がいたら攻撃、それ以外の場合はイベントの動作指定でランダムに動き回るようにしているだけです;
モンスターの行動AIもそのうちまともなのをつくる予定ですが、動作が遅くなるのではないかという心配があります。
まあでも、それはもっとつくりこんでからの話ですが・・・。

なんだかそれらしくなってきましたので、モンスターを倒したり階段を下りて次のフロアに進んだりして10分くらい遊んでました^^

モンスター配置

2009-10-17 13:31:11 | 開発
ウディタでローグライク開発第二弾です。

さっそく壁にぶち当たりましたorz
モンスターとアイテムのダンジョンへの配置です。

配置自体は問題ないのですが、モンスターとアイテムをどのようにして表示するか悩みました。
初めはピクチャを使って表現しようとしました。
ただ、この方法だと主人公との位置関係によっては表示に矛盾が生じてしまいますのですぐに却下しました。
ですが、この方法を利用して「擬似マップイベント」コモンを作成し、公開しています。
このコモンは、モンスターとアイテムの表示方法について試行錯誤した際の副産物なんですよね^^

さんざん悩んだ挙句、モンスターをマップイベントで、アイテムをマップチップで表現することにしました。
イベントを組んでないマップイベントをあらかじめ用意しておき、モンスターを作成する際に動作指定で画像を指定してダンジョンに配置します。
アイテムは、ダンジョンを描画しているマップチップより上のレイヤーにチップの上書きで表示します。
アイテムを拾ったりする際にはチップを0で上書きすればうまく消えてくれます。
次の階層に進むための階段もこの方法で配置するようにしました。

少しダンジョンっぽくなりましたね。

ランダムダンジョン

2009-10-15 00:59:17 | 開発
私はローグライクゲーム(いわゆる不思議のダンジョン)が結構好きなので、これをウディタで作成できるかどうか、挑戦してみようと思います。

とりあえず、ローグライクゲームに登場するランダムダンジョンを実装してみました。
ランダムダンジョン生成のコモンはすでに公開されている方がいらっしゃいます。(今はコモンの公開を停止中?)
そのコモンを利用するのもいいのですが、やはりここは全て自分で作成してみたいと思います。
自分で作成すると応用がききやすいですからね。

とりあえず、ランダムダンジョンの生成は簡単に説明すると、
・ダンジョンを生成する領域をいくつかの領域に分割
  ↓
・分割した領域それぞれに部屋を作成
  ↓
・隣接する領域の部屋同士を通路で繋げる
という流れでできます。

部屋と通路の作成は問題ないのですが、領域の分割方法が問題でした。
解説サイトや書籍を見てみると、どれも領域を再帰的処理で分割する方法が紹介されていました。
でも、ウディタで再帰処理を実現するのは少し面倒です。
とりあえず、「分割できればいいや」という感じで再帰処理は気にせずに領域を分割するようにコモンを作成しました。
よく見かけるランダムダンジョンとは少し形が違いますが、それらしいものになってくれました。