マップのストックアイデア一部

壁抜け

壁抜けのコマンドがない。作るとすれば相対固定移動コマンドということになるのだが(前方に1歩移動、という設定をしておく)、盛り込むタイミングがなく今日に至った。

元ネタはゲームブックドルアーガの塔」の壁抜けパウダーなので、壁の材質判定ができないと私としては面白くない。今のままだと、壁の脇に配置したブロックステートなどによって、すり抜けられる場所を制御することになるが、ブロックステートは壁の向きを限定できないので使いにくい。

対策するなら壁にも種類を用意しなければならなくなり、マップ編集がやりにくくなる。

迷路の動的変化

迷路データは、ゲーム中に迷路の一部を変化させたり、天井・床の色を変えたりすることを想定して作られている。

壁や扉の変化は、FOEライクな徘徊モンスターを導入しないと面白くないかもしれない。追いかけられているときに、敵との間に壁を設ければ足止めに使える。あるいは、扉を破壊しながら移動する凶悪な徘徊モンスター、逆に扉を設置しながら歩くユニークな徘徊モンスターがいるなど。

柵については、本来なら、徘徊モンスターによってはすり抜けられるイメージがあったり、ものを投げつけてくる、矢を射かけられる使い方ができるというイメージで作った。

ウィザードリィ風を優先させてきたので、あまりそういうことをやってこなかったが、フロントビューの戦闘画面に移行せずとも戦闘ゲームができていいわけで、迷路での機動については多角的に見ていきたい。

施設の増設廃止

施設を増設・廃止・一時閉鎖することもできるなあ。

今でも進入路を限定するだけで制御できるからあんまり価値がないかな。

施設にしても、店については在庫管理や相場変動などを想定して作られてるけど、案外使える場面が少ないと思って作ってない。

何か使い道あるかのう。

いろいろなものを置ける

迷路には様々なオブジェクトを置けていい。家具や武器や墓石が置かれていたっていい。

以前作ったゲームでは、砲台やトリモチなどの罠を仕掛けておき、徘徊モンスターを痛めつける遊び方ができた。手榴弾を投げつけて地蔵を爆破すると天罰が下った。

データ的に配置するのはどうということはない。問題は画面表現だ。

以前コメントしたが、ビットマップのグラフィックを重視するには取り巻く状況が厳しいので、Desigeonには線画ベースの描写がふさわしいように思う。

壁と同様、まず線で表現できることを前提にして、そこにビットマップを差し替えられるようにすればよい。

どのみち、アイテムをランダム生成できないうちは導入しても面白くない。まずは草花が生え、枯れていかないと。

穴を掘る

これは昔作ったゲームの名残だ。

各ブロックには、0〜10段階の深さにそれぞれアイテムを仕込むことができる。もちろんDesigeonでは未使用のまま。

0は地上、1〜10は地下の深さを表し、掘る能力が高くなれば深い場所にあるアイテムを入手できるというゲームを作ったときのものだ。これはウィザードリィ5の水泳機能、それとウルティマオンラインの採掘スキルが元ネタ。

しかしこれ、Desigeonにそのまま移植するにはいい機能じゃない。なぜなら、掘るという作業を全ブロックに対して行う「掘り作業」が発生するおそれがあるからだ。

やるならば、ウルティマオンラインの採掘スキルを自動的にチェックするような仕組みが欲しい。これによって、歩きながら自動でアイテム回収が行えるわけだ。

現在、Desigeonのマップには宝箱しか生成できないが、それ以外のものを生成できねばならない。

嗚呼つまり、ここでもアイテムのランダム生成が必要になるのだ……。

スクリプトによる生成

これは完全に想定外の機能だ。しかし魅力はある。

JavaScript/VBScript等のスクリプト言語によって、迷路を自動生成できるように、というものだ。

ディアブロが支持されたのは、ゲームを始めるごとに微妙に地図やモンスターが違っていた点が大きいと考える。

地下に下りたプレイヤーは「今日はねーちゃん(サキュバス)か。戦士にはキツイなあ」とか呟くわけだ。

日によって何が出るか分からない不安が、プレイヤーに牛歩戦術を要求した。いつも構造が違うから、プレイヤーがよほど強くならない限り、もの凄い勢いで進んでいくことがない。同時に「宝物が置かれている場所」も必ずあったから、迷路構造が違っても必死にそれを求めた。

そうでなくても、イベントによって1フロアだけでも再生成できれば、結構面白い遊び方ができそうではないか。

実装としては、内部オブジェクトをCOMに公開するのが面倒くさい。そこがクリアできればRubyでもPerlでもPythonでも扱えるが、やっぱりそこが面倒くさいのだ。想定外だから仕方ない。うむー。