レベルデザイン(難易度)を調節する【Unityフルーツキャッチ】

ゲームの土台はほとんど完成したと思います。

今後は、ゲームの難易度を調整することで更に面白いゲームに仕上げていきたい所です。

というわけで、今回はフルーツキャッチのレベルデザインについて考えていきます。

スポンサーリンク

レベルデザインを調節しよう

今のままでもゲームとして成り立つんですけど、意外と単調なんですよね。

例えば、フルーツが落下してくる間隔と速度は常に同じです。また、制限時間が60秒なので途中で飽きてしまいそうですよね。

この状態でステージ数を増やしても、ユーザーが満足できるものとは考えにくいです。

まずは、簡単に出来るレベルデザインとして、制限時間を短くすることと、フルーツの速度等を経過時間に応じて変えるようにします。

基本的にゲームは、序盤は優しく、終盤に差し掛かると難しくなるのが一般的です。ゲームが開始してしばらくは、今の状態で良いと思います。ある程度時間が経ってくると慣れてくるはずなので、徐々に難しくしていきます。

制限時間を短くする

流石に60秒は長すぎるので、半分の30秒にしましょう。

過去に作成した「Director」スクリプトを開きます。

制限時間を30秒にする

制限時間として宣言していた「time」の値を「30.0f」に変更しましょう。

フルーツのパラメータを調節する

まずは、パラメータを調節するためのメソッドを作成します。

「fruitGenerator」スクリプトを開きます。

パラメータのメンバメソッドを追加

こんな感じで、パラメータを一括で変更するパラメータメソッドを作りましょう。

spanが落下間隔、speedが落下スピード、percentがフルーツの割合になります。

割合の変数をもう1つ増やすことで、時間に応じて更に細かくフルーツの割合を変更することも出来ますね。とりあえず、時間が経過するにつれてりんごの割合を増やし、スイカの割合を減らすようにしています。

次に、「fruitController」スクリプトを開きます。

スピードを変更する

これまで、落下速度は「Time.deltaTime」を使っていましたが、一定の速度になってしまうので、こちらでもspeedを宣言してyの引数を「this.speed」に変更します。

先ほどのジェネレータスクリプトの52行目にてスピードを代入して落下速度を反映します。

ここまで出来たら再び「Director」スクリプトを開いてパラメータを調節しましょう。

Updateメソッドの中で時間に応じてパラメータを調節する処理を追加しました。

ゲーム開始後10秒間は、フルーツの生成間隔を1秒、落下速度を-0.03f、りんごの比率を50%と優しめに設定しています。

10秒経過する度に、徐々に難しくなっていきます。生成間隔は短くなりますが、落下速度が速くなり高得点を獲得できるスイカの出現率が下がります。

本来ならば、生成間隔を長くしないとフルーツをたくさん獲得できてしまい、高得点に繋がりやすいと思うんですけど、ゲームの終盤にフルーツがあまり降らないと盛り上がりに欠けてしまうので、生成間隔は段々と短くするようにしました。

その分高得点であるスイカの出現率が下がっているので、バランスはとれているはず。

とりあえず制限時間が過ぎたら、フルーツが降らないようにするために、spanの値に大きな値を設定しています。後からクリア画面等を用意することになると思います。

スクリプトを保存したらゲームを実行して動作を確認してみましょう。

パラメータを調節したフルーツキャッチゲーム

ゲーム終盤はフルーツの雨あられといった感じになっていますね!

上のパラメータの設定はほんの一例ですので、お好みの値にしてクオリティの高いゲームを目指してみては如何でしょうか。