3分間でプレイヤーをゲームから追い出すお気に入りの式 [難度] = sqrt([経過フレーム数] * 0.0001) + 1 これで10800フレーム（3分）後に難度が約2.04倍になりプレイヤーはやられる。生き延びても後は真綿で首をしめるように難度がじりじり上昇 — ABA (@abagames) 2014年5月29日

ということを昔tweetして、今でも基本こんな感じで問題ないとは思っている。ただ全てのミニゲームでこの難度曲線でうまくいくかというとそうとも限らない。場合によってはもっととっとと難度を上げたほうが緊張感が出て良かったり。

この辺の感覚は実際にゲームとして遊べるものにしないと分かりにくい。なので難度曲線を可視化＆調整した上でゲームに反映する物を作ってみた。

diffi-tween

右で曲線を調整して左をクリックしてプレイ。上から落ちてくる岩を避けて下さい。難度の上昇具合が分かりやすいようtweetの式よりは難度の上がり方はだいぶ速い。デフォルトだと30秒で2倍になる。

曲線はその計算式 (sqrt, linear, pow)と上昇具合 (climb)、あとGame & Watch式に一定時間ごとにがくんと難度が下がるノコギリ波 (saw)の調整ができるようになっている。また複数のパラメタに対して難度が設定できる。今回の例だと岩の落下速度 (speed)と大きさ (size)。

難度に影響を受けるパラメタが複数あると調整はより難しい。また、パラメタには難しくなってもプレイヤーの技量でなんとかなりそうと思えるものと、難しくなるとどうしようもない感が出るものがあって、今回の例だと前者が落下速度、後者が大きさ。速く落ちてくる分にはマウスさばきでなんとかなりそうだけど、デカイのが降ってくるのはどうしようもなく理不尽な印象を受ける。

緊張感を持たせるためには前者はlinearでゲーム序盤からどんどん難しくしてしまってたまにノコギリ波でゆるめる、後者はsqrtで頭打ちするようにして不条理感を減らす。例えば以下のグラフのように。

speed: linear, size: sqrt

ただこのへんは好みの問題なのでその方針が一意にいいとはいえず。落下速度も十分に上がってしまえば理不尽な難度感が出てしまうのは結局同じだし。

speed: pow

これは極端にpowで上げたけど20秒くらいから無理ゲー。そもそもpowで難度曲線を書く必要がある場面ってあるのかしらんという根本的な疑問も。

このような調整UIが必要かはともかく、ポチポチ変更して体感を試してみるくらいしか適切な難度曲線を書く手法はないのかねえ。