すごろくの自動生成について考える 1/5
そろそろBULLETの作業が面倒な作業ばかり残るようになってきたので、現実逃避にすごろくの自動生成でも考えよう。
もっとも、今の俺はデッドラインもなく、「現在のタスク」もないはずで、つまり「現実」がないんだから逃避も何もないんだが、気持ち的にまだ職業プログラマー気質が抜けてないので、どうしても「BULLETやらなきゃ」ってなっちゃうんだよな。
脱線脱線。
そう、すごろくの自動生成を考えよう。
ちょっとシリーズ物にする。何回続くか分からないので、今日は全?回中の1回目ということで。
※2013年2月20日追記、全5回になりました。
すごろくとは
そういやすごろくってなんだっけ・・?というところから入る。
えー、すごろくとは、Wikipedia先生が言うにはこういうものらしい。
http://ja.wikipedia.org/wiki/すごろく
その名の由来はさいころを2個振り、双方とも最大値である6のゾロ目がいかに出るかが形勢を左右したゲームであったため、「雙六」あるいは異字体として「双六」という字が当てられるようになった(「雙」・「双」は同じ意味を持つ)という説がある。
なるほどー。
で、このすごろくがほにゃほにゃあって、絵双六ってのが出てくるそうな。
絵双六(えすごろく、双六)というのは、上記の盤双六の影響を受けて発達した遊戯で、紙に絵を描いてさいころを振って絵の上のマスの中にある駒を進めて上がりを目指すものである。
まあ、いろいろあるけど、このサイコロで絵の上を進めて上がりを目指すってのが、今一般的なすごろくかなと。
いろいろなすごろく
多分すごろくで一番ヒットしたのって、モノポリーなんじゃないのという気はする。
いただきストリートや桃鉄は基本的にモノポリーの亜種といっていいかなと。
さいころ使って無くてもすごろくっぽいものは結構あって、代表格が人生ゲーム。
あれはルーレット使ってる。
ある意味一番面白くすごろくをしていたといえるのはドカポンかなとも思う。
ドカポンはサイコロの出目を操作するアイテムが充実してたのがよかった。なんか目押しっぽいのも出来るし。
でも、どれも絵双六の基本ルールである「上がりを目指す」って概念が薄い。
人生ゲームは一番早く上がると確かボーナスが出たと思うけど、ボーナスは加算されるだけで基本的には資産で決まるし。
多分ファミリーゲームとしては、点数競う方が着順競うより特に中盤戦で盛り上がりやすいんだろうけど。
子供の頃からすごろくってよくやったけど、実はあんまり「これ」ってのは無いよなぁという印象。
強いて言えばドラクエ3のSFCリメイクで出たすごろく場がすごろくっぽかったくらい?
まあ、俺のゲームの記憶なんてSFCで止まってるから、カルドセプトとかも知らないけどね。
概要読む限りではカルドセプトもモノポリー系と思われるので、ゴールを目指すすごろくでメガヒットしたのはやっぱり無いんじゃないかなと。
すごろくの基本ルールを考える
すごろくの基本ルールって、なんか厳密な定義がなさそうなので、とりあえず不思議のすごろくを考えるために今ちょっと考えて不思議のすごろく用に定義しちゃおうか。
不思議のすごろくは、結構純粋にダンジョンを攻略するゲームなんだけど、そのダンジョンがすごろくになっていて、そのすごろくが自動生成されるというもの。
こんなんですかね。
- 一つのダンジョンは複数のフロアで構成される
- 一つのフロアでの最長距離は最大100マスくらい(6が出続けても17ターンかかる)
- 一つのダンジョンでの最大フロア数は未定義(極端な話1万フロアあってもかまわない)
- 振るサイコロは基本的に一つ(アイテムとかで変更することは可能かも)
- 1ターンに振ったサイコロの出目だけ進める
- フロアは固定のスタート地点から出発し、固定のゴール地点を目指す。複数のゴールは無い
- スタートからゴールまでは片道通行で、戻れない
- ゴールまで1歩の距離で6個が出ても、ゴールマスには必ず止まる
- ドラクエ3リメイクのすごろくのように、サイコロを振る前に先のマスを見渡すことが可能
- 分かれ道をどちらに進むかは自分で決める
- すごろくは自動生成するが、事前自動生成であり、自動生成済みすごろくを何度も遊ぶことが可能
ポイントは片道通行、スタート・ゴールは一つ、ゴールは出目関係なく止まる、分かれ道はあってそれは自分で選択という辺り。
フェーズ分け
多分、最大四つのフェーズに分けられる。
- フロアサイズ決定フェーズ
- スタート地点とゴール地点決定フェーズ
- 通路決定フェーズ
- マス決定フェーズ
フロアサイズ決定フェーズ
100マスが最大ということは最大で100x100の盤面を最初に作る。
これはまあ、適当にそのダンジョンに対する事前条件みたいな各種数値があって、その数値を基に決めるんじゃないかな。
スタート地点とゴール地点決定フェーズ
実際に生成したフロアを基に、多分最初にスタートとゴールを決める。
この時点ではあんまり距離を気にしなくていいのかも。隣接だけしないようにすれば成立はする。
通路決定フェーズ
これが肝なんだけど、スタートとゴールを結ぶ道を作る。
マス決定フェーズ
通路まで決まったら、あとは適当にルールに乗っ取ってマスの内容を決める。
通路決定フェーズのアルゴリズムについて
まあ、ここは次回にするんですけども。
基本的には、出発地点から東西南北のどれかに適当に伸ばしていって、ゴールについたらそれを通路にする。
ゴールまでの距離が短すぎたら最初からやり直し。
っていう、完全ランダムでも出来るとは思う。
ただそれだとつまらないから、ある程度直線の通路を作ったり、適当に分かれ道を作ったりする必要があるので、その辺の具体的なアルゴリズムを考えていきたいというところですな。
続き
すごろくの自動生成について考える 2/5
http://d.hatena.ne.jp/tsugehara/20130104/1357270438
すごろくの自動生成について考える 3/5
http://d.hatena.ne.jp/tsugehara/20130105/1357353691
すごろくの自動生成について考える 4/5
http://d.hatena.ne.jp/tsugehara/20130220/1361334869
すごろくの自動生成について考える 5/5
http://d.hatena.ne.jp/tsugehara/20130225/1361791529