桝田方式によるユーザーストーリーの作り方(1)

このシリーズはF2Pの最初の3分間シリーズの続きで、同人誌で書いたことの続きでもある。
アイディア的には同時多発だと思うのだけど、僕が最初に聞いたのは桝田さんからだったので、桝田方式と呼んでいるゲームバランス…というか、ユーザーストーリーの作り方について、これからしばらく書いていこうと思っている。
僕は26年前の1989年に桝田さんから天外1作ってる時に、この方法を聞いて、実際にイース1・2でバランスを取り直す時に使ってちゃんとバランスがとれた。そして以降、成長が必要なゲームで、このやり方の変形を使わなかったことがない。
また、この方法を拡張していくことで、Progressive wall、マップの難易度デザイン、ユーザーストーリー、あらゆるものを統一的に扱うことが出来る考え方で、非常に応用性が高いので、ぜひ知ってもらいたいと思っている。

ユーザーストーリーは僕の独自用語。同僚はCustomer Journey Mapと呼んでいたけど、それのがいい気もするけど、ならばCustomer Journey Pathじゃねえかなとかちょっと思ったり。

まず、今回は基礎の基礎になる極めて単純な成長コントロールシートを用意した。
とてもシンプルなexcelファイルなのでダウンロードでもしていただきたい。

サンプルexcelファイル(ZIP圧縮済み)

ところで、このシートはgoogle spread sheetとか使うと一見かっこよさそうだが、現実はあのスプレッドシートはせいぜい1000行ぐらいから、使いものにならないほど遅くなるので、あんなもんはバランスを取る際には実用性は皆無である。
(2024年の注:google spreadsheetはこの頃よりは実用性はあるが、行数が伸びると破壊的に遅くなるのは変わらない)
ちなみに世界標準は間違いなくexcel。take 2でも韓国でもゲームロフトでも、excelを使わない会社を見たことはないw

このシートといろいろなテーブルを組み合わせにして、実際のバランスを作っていくのだけど、今回はこのテーブルの概念的な部分について説明していきたい。
まず一番左の”level”が、何かの「レベル」を表している。
この手の抽象化をするのが苦手な人はゲームのメカニクスの分析などで訓練したほうがいいのだけど、まあわかりにくいなら「キャラクタのレベル」とでも思っておけばいい。
次の列”TNL”は”Till Next Level”の略。
海外のオンゲーで使われる用語の流用。「次のレベルまで」ぐらいにイメージしておけばいい。
とても単純な数式でTNLは与えられるようになっている。

TNL = 前のTNL * 変数A + 変数B

変数A,変数Bおよび、最初に必要なTNLの初期値の3つが与えられるようになっている。
このTNLの式を変えるとバランスの取り方自体が大幅に変化するのだけど、ここでは良く使われるコンソールのRPGの経験値曲線の形式にしている。これを例えばax^n+bみたいなグラフにすれば、TNLの扱いも何も変わるので、このあたりの式を考えるのもゲームデザイナーの仕事の一つだ。
最後の累計がTNLの総和。

出ているグラフはTNLと総和がグラフとして見せられている。減衰型とか、関数をいじりまわすと、かなりグラフの形が変わるので、こんな風にグラフに出しておくのは重要だ。

なお、実際にexcelファイルを作っていくと、だいたいとんでもないサイズになっていくので、あんま大きくなった時はvlookupとかhlookupを駆使して、サマリーシートを作ることを強くオススメしておきたい。でないとホントにわからなくなるよ。某コンソールゲームでは、とんでもなく馬鹿でかいexcelシートでかつサマリーがなかったので(作ってる奴がとんでもなく記憶力のあるやつだったからだと思ってる)、自分でサマリーシートを自分で作る羽目になったのは、結構ヘッポコな思い出である。

さて。
このシートの中で重要なのはもちろんTNLだが、これを経験値と書いていないのには理由がある。なぜなら経験値からバランスを取ると、うまくいかないし、無駄だからだ。
例えば、TNLを経験値であると考えて、初期値を10、変数Aを1.09、変数Bを0として設定したとして、出来上がった曲線に「なんの意味があるのか?」
経験値の総和はいくらです、と決まっているだけで、なんの意味もない数字だ。敵の経験値がいかほどなのか、何からどれだけ経験値を得るのかが全くはっきりしない数字など、なんの意味もない。
つまり、そんなものを決めてもゲームバランスは作れない。
ではゲームバランスを取る時、最初に決めることはなにか?
まず第一に基準プレイヤーを決める。
基準プレイヤーとは自分の中にいる仮想の自分のゲームを遊んでくれているプレイヤーだ。これはゲームのジャンル・ターゲットで変わるが、数を狙いたいならコアゲーマーを狙い撃ちにするのは止めておいたほうがいいだろう。このペルソナについては後々、もっと細かく考えなければならないのだけど、現時点では基準プレイヤーがいる、とだけ決めておく。
次に何を決めるか?
コンソールゲームで終わりがあるゲームならば、問答無用で基準プレイヤーのクリアレベルを決めるのが望ましい。なぜなら、クリアレベルを決めるといろいろなものが決まるからだ。
例えば50レベルでクリア出来るとする。ラスボスがいるとすると、48であって、48.49と負け50で倒すと決められる。
中間のボスはどこにいるのだろう? 28で倒せると決めよう…というように、全部決めていくことが出来る。
また、いわゆるクリアという概念が存在しないゲームならエンドコンテンツをプレイするようになるレベルで決めるといいだろう。エンドコンテンツに向かってユーザーはどんな風に学習していくのかを記述すれば、実質的に上に書いたのと同じようにユーザーがどのように学習するのかを決定することが出来る。
F2Pの最初の3分間で書いたが、これがユーザーストーリー(独自用語)だ。

ところでこの方法はアクション主体でなおかつメカニクスに(永続的な)成長が含まれていないゲームや、パズルゲームなどに当てはめるのは難しい。ただ、現在のスマホF2Pで主流の3マッチタイプや主流とは言いがたいが一つのジャンルと言える物理パズルは、この方法のアレンジ版でプレイタイムを導き出すことが出来る。方法については…興味がある人は考えてみて欲しい。

では、ユーザーストーリーが(ある程度)決まったところで、どんなふうにしてバランスを取っていくのか?
極めて簡単でわかりやすい例を作る。
コンソールでドラクエみたいなRPG(古典的だ)を作っているとしよう。
バトルはランダムエンカウンターだとする(古典的だ)。敵味方は一体ずつで、対面形式のバトルだとしよう。まさにドラクエ1をイメージすればいいことになる。実に古典的だ。
バトルは平均して10秒かかり、バトルとバトルの間にはだいたい50秒あるとしよう。すると1分に一度の割合で戦闘をすることになる。
ここで基準プレイヤーがレベル50でクリアしていると設定しよう。つまりシートの”level”は文字通り、プレイヤーのレベルを表すことになる。
さらにサンプルのTNLは戦闘回数と決めてみよう。次のレベルに上がるのに必要な戦闘回数だ。
そしてレベル49の欄を見てみる。49の欄は2241(49⇒50の戦闘回数ってことになる)。
1分に1度戦闘をすることになるので、2241=2241分=37.3時間。
このコンソールRPGは、TNL=戦闘回数とすると、1分に一度バトルがある設定だと、現在約37時間ほどでメインストーリーがクリアされる設定になっていることがわかった。

つまりTNLを、なんらかの必要リソースを取得するために必要な「ナニカ」とし、それを取得するのに費やす時間を設定することで、全体のゲームのプレイタイムが導き出せるわけだ。
では次にこれをどのようにバランスに結びつけるのか?
というところで、こっから先はまた面倒くさいので続くのであった。
ちなみに面倒臭いので、この例を続けて使っていくので、ヨロシクである。

年末にコミケで某社の人たちにちょっと喋ったけど、ゲームをデザインすることの大半はこういったロジックを組み立てていくことであり、ロジックにミスがないかをチェックし、数字を埋めていく作業だ。UIのチェックをし、アートのチェックをし、動きのチェックをする作業だ。
あらゆることをドキュメントにするのが作業で、華麗なクリエイティブだの、秘伝のソースを混ぜるような作業はほぼない。
ゲームデザインってのは地味な仕事なのである。

LinkedIn にシェア
Pocket