戦闘時における二つの行動処理方式

雑記の記事はその多くが、書けるときに書きためておいて、少しずつ放出する方針を採っている。

ところがさまざまな事情により、記事の放出を寸止めすることがある。今日も訳あって、予定していた記事を投稿できなくなった。他サイトの都合が絡むものはタイミングが難しい。

こういうときは、かわりに頭に抱いている空想を放出することにしています。

あんまりこれをやると、どんどん露出狂に近づいていく。いずれ快感になり癖になったらと思うと気が気でなりません。


Desigeonの先の話。

Desigeonの戦闘は、二種類の行動処理方式を想定して作られている。

同一ターン内で、行動を順番に適用していく「A.順次行動制」と、すべてを同時に適用する「B.並列行動制」だ。

A.順次行動制

現在選択できる、唯一の方式。便宜上、順次行動制と勝手に名づけてある。

順次行動制では、参加者の行動を、速い順に並べ替えて、順番に解決していく。

誰かが行動すると、すぐに効果が現れて、結果が反映される。もし、足の速いファイターの攻撃で先にモンスターを倒してしまえば、そのモンスターの反撃はない。

ターン制のコンピュータRPGでは、ほとんどこの方針をとっている。ヘックス方式の戦術ゲームでも、ほとんど同じ。

B.並列行動制

もう一つの方式。便宜上、並列行動制と名づけてある。

並列行動制の概念

並列行動制では、同ターン内の全員の行動はすべて、同時発動とみなされる。必ずターン開始直前の状態を元に、成功判定やら威力算出やらが行われる。

たとえばAがBを攻撃し、BがAを攻撃したとき、双方に相手を殺してしまえば、相打ちになる。

そして「結果」が適用されるのは、ターンの終了時になる。

スリープの呪文でモンスターを眠らせても、同じターン内であれば同時に反撃がある。モンスターが眠るのは、ターンの最後になる。

速度差を出す場所

ターン内の行動をすべて、同時に処理するわけだから、同じターン内では、「速さ」に差が出ない。

そのかわり並列行動制では、行動が発動するまでのターン数に待ち時間を設ける。素早い者ほど、短い待ち時間で行動が発動する。

敵の半分のターン数で行動することができれば、敵が一回行動する間、こちらは二回行動できるわけだ。

行動入力のタイミング

プレイヤー側の行動入力は、行動を一つ終えるたびにメニューを表示して、入力してもらう。

行動のキャンセル

待ち時間中にある行動は、ターンごとにキャンセルして、行動を再選択することができる。

参考元ゲーム

並列行動制は、行動の発動までに待ち時間を必要とする『ルナティックドーン』シリーズだとか、攻撃を受けたらその場で反撃が発動する『ウルティマオンライン』なんかが参考元なんだけど、この二つには「相打ち」の概念がない。

ファイナルファンタジー』シリーズの「アクティブタイムバトル」にも近いけど、やはり双方の同時行動による相打ちがない。

これらのゲームでは、リアルタイムで行動処理しているように見えて、ギリギリのところで順次処理するようになっているから、真の同時発動が発生しない仕様になっている。

Desigeonでは確実な同時処理をやりたかったので、構造をそのように配慮してある。

Desigeonは並列行動制をベースにしている

Desigeonは、内部的には「B.並列行動制」で実装されている。

「A.順次行動制」については見かけ上、そう見せかけているだけだ。「B.並列行動制」で実装しておけば、構造的にAにも対応しやすいが、その逆は面倒が多いと思った。

Desigeonを作ろうとした理由の一つに、Bのゲームを実験的に作ってみたかったという気持ちがある。だから、Bは今日時点ではまだ実現していないけれども、一種の悲願になっている。

というより、本当はBを先に実装するつもりだったんだけど、ゲームプレイヤーが受け止めるものとして無難な方はおそらくAなので、先行して出していくべきはAの方だろうと判断した経緯がある(おかげで、クラシックウィザードリィ風の作品をリリースすることができた)。

現実的にどちらが使いやすいか、どちらが好まれるか、ということとはまた別です。