作者: 機械伯爵
日時: 2002/6/30(16:03)
「P は Python の P <実戦編>」
 〜やるぞ作るぞRPG!〜


NP-6 ダンジョンに始まってダンジョンに終わる

 もしかしたら、最近のゲーマーはダンジョン(Dungeon)という言葉をご存知無
いかもしれませんね。

 ダンジョンというのは、ダイレクトには「地下牢」という意味ですが、ダイ
ダロスが幽閉されたラヴィリントス(迷宮)のイメージから転じて、ゲームで
は地下迷宮を意味し、さらに拡大解釈されて、地下でなくとも閉鎖空間の冒険
場所をすべてダンジョンと呼ぶようになりました。

※ダンジョン以外はフィールド(野外)とシティー(都市)で、どちらもRPGの
  冒険の舞台の定番ですね。ファンタジー以外なら、宇宙とかもあるけど・・・

 とゆーか、初代RPGはDungeons and Dragons(通称D&D(R))という名称なので、
そこから広まったともいえますが・・・

 <実戦編>1でも少し書きましたが、もともと複数人数が集まって、紙と鉛筆
を用いて手計算でプレイしていたRPGですが、日本ではWizardryのようなコンピ
ュータでRPGを「シミュレートする」ゲームが先に輸入されてしまったので、「RPG
はコンピュータゲーム」というイメージを持っておられる方も多いかと思いま
す。

 実は、日本でもこういった「紙と鉛筆」タイプのRPGが流行った時期があった
んですけどねぇ・・・もうすっかり影をひそめちゃったなぁ・・・(私は今で
も時々、コンベンションとかに参加してプレイしにいきますけどね)

 もし、RPGを自分でデザインして見たいという方は、是非この「紙と鉛筆」タ
イプのRPGのゲームマスターを体験してみてください。

 ゲームマスターは、シナリオを作成し、ゲーム進行を管理する、言わばコン
ピュータRPGのコンピュータの役割です。

 コンピュータRPGでコンピュータが一体何をやっているのか、ということが実
感できますし、シナリオを自作したりマスタリング(実際にプレイを管理する
こと)したりすることで、ゲーム作りに欠かせないものを沢山学ぶことになり
ます。

 閑話休題。

 ダンジョンの話題ですが、コンピュータRPGでダンジョンを扱う場合、非常に
簡単な立方体の組み合わせを考えることが多いと思います。

※ナチュラルダンジョンという、なんか和製英語のような(でも実際は英語のRPG
  用語で出てきます)言葉は、人工物でない洞窟のようなダンジョンを指しま
  す。紙と鉛筆でプレイする場合はこんなのでもなんとか出来ますが、コンピ
  ュータではいきなり難しくなるか、座標式でなくなるので、ここでは話題に
  しません。

 この立方体を使うダンジョンの方式には、ブロックダンジョンとウォールダ
ンジョンの2種類があります(こちらは両方とも和製英語です☆)

 ブロックダンジョンは、ダンジョンをブロックを組み合わせるようにして設
計するタイプで、一番薄い壁の部分でも、1ブロック分の厚さを必要とします。

 図にすると、こんな感じでしょうか・・・

 ■■ ■■
 ■   ■
 ■    
 ■   ■
 ■■ ■■

 それに対して、ウォールダンジョンは壁の組み合わせでダンジョンをデザイ
ンする方法で、Wizardryなどはこちらの方法をとっています。

 ウォールダンジョンのほうが格好は良いのですが、1ブロックに対して壁2
枚を設定しなければならない上に、管理がややこしいので、気楽にRPGを作りた
いのなら、ブロックダンジョン方式をまずはお勧めします。

※ダンジョンを使わない、位相幾何的マップのみのRPG(ZORKなど)もあります。
  位相幾何的マップというとなんだか難しそうだけど、要するに場所と場所を
  結ぶ通路(パス)のみを設定して、その場所からドコへいけるかだけを指定
  するタイプのマップのことです。アドベンチャーゲームなんかは基本的にコ
  レですね。

 ブロックダンジョンでは、ブロック単位でイベントを埋め込むわけですが、
イベントが全く無くても、通行可能(通路や空間)か不可能(壁)かのデータ
だけは必要です。

 ちなみに、それを設定するだけでも、どれくらいのデータを必要とするかと
いえば・・・20×20の10階分としても、ざっと4000データとなります。

 これだけのデータを文字で書き込むとなると面倒なので、必然的に視覚的
なマップエディタが必要となります。

 マップデータの形式は結局そのシステムに左右されるので、マップエディタ
は当然自作、ということになるでしょう。

 マップもそうですが、RPGはデータの打ち込みが命ですので、様々なデータ入
力用エディタを自作することになります。

 エディタ作りの段階で力尽きるか、あるいはエディタ作りの中から様々なア
イディアを生み出していくかは、製作者次第です。

 ちなみに、マップデータとして埋め込むべきイベントとしては、特別イベン
トを除けば、トラップやトレジャーの設定、シークレットドアや一方方向通路
などがあります。

※モンスターとの遭遇確率などは、フロアをブロック単位で管理したほうがよ
  いと思われます。

 トラップとしては、ダメージトラップ(ピット)、シュート(下の階に落と
される)、テレポート、ターンフロア(行動を起こす毎に方向が変化する・・・
うっとうしいだけなので、今はあまり流行らない)などがあるでしょう。

 どちらにせよ、オブジェクトで管理していなかった頃は、ずいぶん苦労して
作ったと思われます(そのせいかどうかは知りませんがAppleII版Wiz#1は、デー
タタイプの豊富なPascalで書かれていました)

 ダンジョン製作は地味な作業ですが、ゲーム作りの9割以上がこういった地
味な作業なので、製作自身はいずれ苦痛になってきます。

 そうなってくると、頼みの綱は、プレイヤーからの期待だけです。

 プレイヤーを喜ばせる、という最大の楽しみ以外を求めてゲームを作り始め
ても、結局は挫折することが多いと思われます。

 なぜゲームをつくるのか?・・・それをお忘れなく。

   機械伯爵