戦闘時における二つの行動処理方式
雑記の記事はその多くが、書けるときに書きためておいて、少しずつ放出する方針を採っている。
ところがさまざまな事情により、記事の放出を寸止めすることがある。今日も訳あって、予定していた記事を投稿できなくなった。他サイトの都合が絡むものはタイミングが難しい。
こういうときは、かわりに頭に抱いている空想を放出することにしています。
あんまりこれをやると、どんどん露出狂に近づいていく。いずれ快感になり癖になったらと思うと気が気でなりません。
Desigeonの先の話。
Desigeonの戦闘は、二種類の行動処理方式を想定して作られている。
同一ターン内で、行動を順番に適用していく「A.順次行動制」と、すべてを同時に適用する「B.並列行動制」だ。
A.順次行動制
現在選択できる、唯一の方式。便宜上、順次行動制と勝手に名づけてある。
順次行動制では、参加者の行動を、速い順に並べ替えて、順番に解決していく。
誰かが行動すると、すぐに効果が現れて、結果が反映される。もし、足の速いファイターの攻撃で先にモンスターを倒してしまえば、そのモンスターの反撃はない。
ターン制のコンピュータRPGでは、ほとんどこの方針をとっている。ヘックス方式の戦術ゲームでも、ほとんど同じ。
B.並列行動制
もう一つの方式。便宜上、並列行動制と名づけてある。
並列行動制の概念
並列行動制では、同ターン内の全員の行動はすべて、同時発動とみなされる。必ずターン開始直前の状態を元に、成功判定やら威力算出やらが行われる。
たとえばAがBを攻撃し、BがAを攻撃したとき、双方に相手を殺してしまえば、相打ちになる。
そして「結果」が適用されるのは、ターンの終了時になる。
スリープの呪文でモンスターを眠らせても、同じターン内であれば同時に反撃がある。モンスターが眠るのは、ターンの最後になる。
速度差を出す場所
ターン内の行動をすべて、同時に処理するわけだから、同じターン内では、「速さ」に差が出ない。
そのかわり並列行動制では、行動が発動するまでのターン数に待ち時間を設ける。素早い者ほど、短い待ち時間で行動が発動する。
敵の半分のターン数で行動することができれば、敵が一回行動する間、こちらは二回行動できるわけだ。
行動入力のタイミング
プレイヤー側の行動入力は、行動を一つ終えるたびにメニューを表示して、入力してもらう。
行動のキャンセル
待ち時間中にある行動は、ターンごとにキャンセルして、行動を再選択することができる。
参考元ゲーム
並列行動制は、行動の発動までに待ち時間を必要とする『ルナティックドーン』シリーズだとか、攻撃を受けたらその場で反撃が発動する『ウルティマオンライン』なんかが参考元なんだけど、この二つには「相打ち」の概念がない。
『ファイナルファンタジー』シリーズの「アクティブタイムバトル」にも近いけど、やはり双方の同時行動による相打ちがない。
これらのゲームでは、リアルタイムで行動処理しているように見えて、ギリギリのところで順次処理するようになっているから、真の同時発動が発生しない仕様になっている。
Desigeonでは確実な同時処理をやりたかったので、構造をそのように配慮してある。
Desigeonは並列行動制をベースにしている
Desigeonは、内部的には「B.並列行動制」で実装されている。
「A.順次行動制」については見かけ上、そう見せかけているだけだ。「B.並列行動制」で実装しておけば、構造的にAにも対応しやすいが、その逆は面倒が多いと思った。
Desigeonを作ろうとした理由の一つに、Bのゲームを実験的に作ってみたかったという気持ちがある。だから、Bは今日時点ではまだ実現していないけれども、一種の悲願になっている。
というより、本当はBを先に実装するつもりだったんだけど、ゲームプレイヤーが受け止めるものとして無難な方はおそらくAなので、先行して出していくべきはAの方だろうと判断した経緯がある(おかげで、クラシックウィザードリィ風の作品をリリースすることができた)。
現実的にどちらが使いやすいか、どちらが好まれるか、ということとはまた別です。