-
非落ちゲー
アクションパズルを作りたいと思ったのは、たぶんぷよぷよの影響だろう。
以前からも作りたいという気持ちはあったのだが、ゲームボーイ版ぷよぷよSUNを買って、
それが一層強くなったのだと思う。
しかしいわゆる落ち物は、数も多くあり、今さら作っても「またか」と思われるだけだろう。
そこで重力を排除し、なおかつ連鎖の組めるものを作ることにした。
-
重力のない世界
作るものを決めたのはいいが、実際に考えてみるとかなり大変だった。
落ち物では当たり前のように使われてきた方法がまったく使えないのだ。
具体的には次のような問題があった。
- パネルが消える条件とその後の処理
落ち物では、同じ色の玉を何個かつなげると消えるという条件でも、消えた後に上にある玉が落ちてくれるので、連鎖が起こる。
ところが、重力をなくしてしまうと、その方法では連鎖が起きない。
これを解決するために、パネルに矢印を書いておいて、それを消すと矢印の方向にパネルが移動するという方法を考えた。
しかし、この方法ではパネルが様々な方向に動き、それを予測するのが難しくなる。
そこで、パネルが消えたら周りのパネルを変化させるという方法を使うことにした。
そして、パネルに数字を書いておき、同じ数字のパネルを隣りあわせると消えるというものにした。
さらに、パネルを消すと、その周りのパネルの数字が増える。
このルールによって連鎖が組めるようになった。
- パネルの置ける場所
これも重要な問題だった。
重力がないからといって、どこにでもおけるようにはできない。
なぜかというと、ある連鎖のパターンがわかっていた場合、それと全く同じようにすることができるからだ。
結局直前に置いたマスの周囲8マスにおけるというものにした。
そして周囲が全部埋まっていたら即ゲームオーバーになる。
これは少し厳しいようにも思えたが、注意してプレイすれば大丈夫のようなのでそのまま採用した。
- 制限時間
落ち物では、プロックやパネルが次第に下がってきて、下に他のブロックがあったり、床があったりすると着地する。
プレイヤーはその制限時間の間にプロックをどこに置くのか考えなければならない。
落ち物でない場合にはこれを表現するのが難しい。
パネルを置いた後、次のパネルを置くまでの時間をグラフ等を使って表すという方法も考えられるが、
それではわかりにくいだろう。
それに、制限時間が過ぎた後に、パネルをどこに置くようにするかというのも問題である。
仕方がないので、次のパネルを置くまでの制限時間ではなく、ゲームが終了するまでの制限時間にした。
例えば、100秒が与えられたら100秒以内にどれだけスコアを稼げるかを競うのである。
それだけではつまらないので、連鎖をしたら制限時間が少し延びるようにした。
これによって連鎖のメリットがより大きくなる。
- 対戦プレイ
落ち物を対戦でプレイすると、消したパネルの数や連鎖数などによって、相手に邪魔パネルを送ることができる。
これも重力の恩恵を受けていて、邪魔パネルは上から降ってくるか、下からわき上がってくるかのどちらかである。
落ち物でない場合には、どこに邪魔パネルを置いていいのかわからなかった。
考えた末、対戦はなしにして、その代わりにパズルモードというのを入れることにした。
これは数枚の邪魔パネルがでてきて、それを消していくものだ。
邪魔パネルの数は少なく、出る場所はランダムである。
このようにしてアドアドのルールが作られていった。
-
クラスを使ってみる
いつもはフォームを1枚だけ使ってプログラムを組むのだが、今回はクラスを使ってみることにした。
そのためかかなり面倒なことをして、リストも長くなってしまった。
しかしプログラムが部品化されているので、改造は楽なはずである。(実際にはやっていないのでなんともいえない。)
プログラムを解析してみると、クラス間でのやりとりが行われていることがわかると思う。
-
最後に
今回は非落ちゲーを作ったわけだけど、別に落ち物が嫌いだというわけではない。
ただ今までプレイしてきたのとは少し違ったゲームを作りたかっただけである。
落ち物でありながら、新しいものを含んでいるゲームを考えてみるのもまた面白いかもしれない。