[Manual] オンラインセッションの高速化

 この話、前にも書いたような気がするんですが。
 前エントリ「誘導因子の背景(2) ~ オンセ」で書いた「オンセには先読みが重要」話の延長線上でちょっと思い出したことがあったんで。
 まあ【誘導因子】と直接はつながらないんですけどね。

「先読み」と「先行入力」

 前エントリ「誘導因子の背景(2) ~ オンセ」では、特に〈参加者〉同士の発言にまつわる「先読み」の話をしたわけですけど、では「先読み」が大事な理由はなにかと言うと、その最たるものは“「先行入力」によって時間を有効利用すること”なわけです。
 で、まあその「先行入力」ってのは当然、キャラ同士の会話だけでは無いわけで。

 特にオンセで時間のかかる処理といえば、様々な判定があります。
 それも戦闘処理が一番手間がかかります。通常なら会話で済むところも、戦闘ではちゃんと判定しないとゲームのルールが崩壊してしまう*1[戦闘ではちゃんと判定しないとゲームのルールが崩壊してしまう] = ほとんど全ての TRPG が「ウォーシミュレーションゲームの変法」であり、最大のリスクを「死」としている以上、それに関するルールを疎かにするとゲームの前提が崩壊することが多い。ため、これは支払わなければならないコストと言えます。

 で。
 この判定を、極端に短縮する方法は実にシンプルです。
 先に振っちゃえばいい(笑)

例1 : 攻撃の処理

 当然のことなんですが、手順を分解してみると一目瞭然で。
 たとえば『GURPS』で命中判定をするまでの、オフラインセッションにおける標準的な判定の流れは、以下のとおりです。(攻撃者を[A]、被攻撃者を[B]と表記します)

  1. [A]が[B]への命中判定を行う。
  2. (1)判定が成功していれば[B]が回避判定を振る。
  3. (2)判定が失敗していれば[A]がダメージ判定を振る。
  4. (3)判定の結果を[B]に反映する。

 ……とまあ、だいたいこんな感じです。
 これをオンライン向けに「先行判定」で短縮すると、

  1. [A]が[B]への命中、ダメージ判定のダイスを振っておく。
  2. [B]が回避判定を行い、失敗すれば(1)のダメージ判定を反映する。

 ……となる。
 ものすごい大雑把な話ですが、たとえば 1 行程に 1 分間かかるものとすると、1 キャラあたり 1 ターンにかかる時間は 4 分から 2 分に短縮される計算です。これがもし 10 人が入り乱れる戦闘だった場合、1 ターンあたりの処理は 40 分から 20 分に短縮される*2[40 分から 20 分に短縮される] = これはひどく粗い値。実際はゲームマスターが一元管理している NPC の処理は当然早くなる。またプロセスの間にかかる時間を 1 分として計算した場合、これは「30 分から 10 分に短縮される」ということにもなる。さすがにそこまで短縮できるかどうかは怪しいが。わけです。
 まあ後者、先行入力型では (2) の処理に若干手間取るんで、たとえば 1 分じゃ済まないこともあるわけですが、それでも標準的な処理よりかは早く片付きます。*3[標準的な処理よりかは早く片付きます] = ダメージの計算はキャラクターを管理するプレイヤーが一人で行えばいいので、回避判定で失敗したとしても、その後の処理はゲームのバックヤードに回ることになる。その結果、朦朧、気絶、死亡などのコンディション変化が発生するときは自己申告で行ってもらえばよい。ここは性善説を適用する。
 そもそも回避判定に失敗したときのダメージの反映は、ちゃんとターン冒頭で行動宣言をしてからの処理である*4[ちゃんとターン冒頭で行動宣言をしてからの処理である] = 実際のプレーでは、行動の宣言と処理を分割しないで遊んでいることも少なくない。特にオンラインでは手間がかかるので、この分割を意図的に避ける手法もある。場合、基本的には他の〈参加者〉の行動には影響しないので、気にする必要はありません。

例2 : 通常の行為判定

 戦闘の先行入力は分かりやすい時間短縮なんですが、もうちょっと細かいところまで見ていくと、通常の行為判定でも同じことをやる意義は充分にある。
 やり方は簡単で、行動宣言と同時に、先に判定を振っちゃえばいい。

 これもまあプロセス分解してみましょうか。
 標準的なオフラインのプロセスでは、

  1. [A]が行動宣言をする。
  2. ゲームマスターが判定方法を宣言する。
  3. (2)を反映して[A]が判定をする。
  4. (3)の結果をゲームマスターが宣言し、反映する。

 となります。
 これを先行入力すると、

  1. [A]が行動宣言して判定のダイスを振っておく。
  2. (1)の結果をゲームマスターが宣言し、反映する。

 ……ものすごい大雑把ですが(笑)

 たとえばプレイヤーはキャラクターの持っているスキルの中から、状況にあったものを宣言して判定しておき、ゲームマスターはその結果を反映するわけです。
 もちろんこれはリスクの大きな行動――落ちたら死ぬかもしれない崖を降りる等――では、プレイヤーも判定に失敗したときのことを警戒するので機能しません。が、リスクの小さな行動――たとえば何かの知識を思い出す等――には格別に機能します。

「先行入力」を許容するために

 「先行入力」による判定は、プレイヤーにとって残念な結果になることがあります。たとえば判定でクリティカルが出たのに効果が無かったとか、ダメージ判定が最大値だったのに回避されたとか、何度か連続して失敗した判定ばかり結果を反映されたとか。
 「先行入力」にはこうした無駄が必ず発生しますが、その辺は最初から納得しておくしかありません。それがイヤなら標準的な処理を行うことをオススメします。

 なお、僕がゲームマスターを務めるセッションでは、「先行入力」による判定はなるべく拾うようにしてます。
 プレイヤーは情報が不足していると思ったら「先行入力」で勝手に判定を行い、ゲームマスターはそれに応じて必要になりそうな情報を出す……という暗黙裡の関係を作っておくと、ゲームマスターはゲームの体を崩さずに「ぶっちゃける」ことも可能になります。

【余談】
 特に戦闘処理の高速化に関しては、知る限りでは『ソード・ワールドRPG』が革新的だったと思います。モンスターの攻撃力や打撃力、防御力などを定数にすることで、こうした先行入力がシステムに取り込まれ、戦闘の高速化が図れました。
 パラメータの定数化はゲームのイレギュラー性を低下させるため、嫌われる向きもありますが、ゲームマスターにとっては戦闘バランスの計算が立ちやすく、侮れないデザイン手法と言えるでしょう。
 これは蛇足ですが、ヒーローポイントみたいなリソースって、ゲームマスターがシナリオデザインの手抜きをするのにありがたいんですよね。ちょっとムチャな設定をしていてもヒーローポイントでゴマカシが効く(笑)

References

References
1 [戦闘ではちゃんと判定しないとゲームのルールが崩壊してしまう] = ほとんど全ての TRPG が「ウォーシミュレーションゲームの変法」であり、最大のリスクを「死」としている以上、それに関するルールを疎かにするとゲームの前提が崩壊することが多い。
2 [40 分から 20 分に短縮される] = これはひどく粗い値。実際はゲームマスターが一元管理している NPC の処理は当然早くなる。またプロセスの間にかかる時間を 1 分として計算した場合、これは「30 分から 10 分に短縮される」ということにもなる。さすがにそこまで短縮できるかどうかは怪しいが。
3 [標準的な処理よりかは早く片付きます] = ダメージの計算はキャラクターを管理するプレイヤーが一人で行えばいいので、回避判定で失敗したとしても、その後の処理はゲームのバックヤードに回ることになる。その結果、朦朧、気絶、死亡などのコンディション変化が発生するときは自己申告で行ってもらえばよい。ここは性善説を適用する。
4 [ちゃんとターン冒頭で行動宣言をしてからの処理である] = 実際のプレーでは、行動の宣言と処理を分割しないで遊んでいることも少なくない。特にオンラインでは手間がかかるので、この分割を意図的に避ける手法もある。