【雑記】イベントのテキストフォーマットを考える

今日は外出のため、開発作業は休み。

昨日中断していたイベントの分析の続きを少し。

風のタクトの序盤のシナリオの一部で、展開を箇条書きにしたものを再掲しよう。

主人公リンクは生まれ故郷プロロ島にいる。

・見張りの塔で妹にばあちゃんが探していたと告げられる。
・ばあちゃんに会うと緑の服を授けられる。
・再び見張りの塔にいくと妹から望遠鏡を渡される。
・望遠鏡をのぞくと女の子が大鷲に連れ去られている場面に出くわす。女の子はその後、同じ島にある森の中に落ちてしまう。
・妹に促され、森に女の子を捜しに行く。
・森のダンジョンの奥で女の子を発見する。
・森を出ると今度は妹が同じ大鷲にさらわれてしまう。

これをシステム化する際にどういう軸を抽出するかは人それぞれだと思う。

俺の場合、いろいろ考えた末、次の五つの軸で各イベントを分解してみようと思う。

A.イベントの発生条件
B.イベントのルーチン(イベントで実際に画面上に起こる出来事)
C.イベントのフェーズ(複数のイベントが1つのシナリオを構成する場合のイベントの進行状況)
D.イベントの分岐(プレイヤーの行動によっては後続のイベントが変化する場合もあるだろう)
E.イベントのフラグ(イベント達成時にどういう情報を保持するか)

ちなみに最初にあげたシナリオ展開の箇条書きは、上記の軸を元にあらすじ化したものだ。
これを今の軸でさらに分解するとこんな風に表すことが出来ると思う。

・見張りの塔で妹にばあちゃんが探していたと告げられる。
A.見張りの塔に初めて登る
B.妹アリルとのダイアローグ
C.妹救出の物語としてみると、最初のフェーズということになる
D.なし
E.最初のシナリオなので、仮にEVT_1というフラグとすると、ここにこのイベントのフェーズを入れておけばいいだろう。

と、こういう具合に分解できる。

これをさらに、アーキテクチャとデータに分解してみる。

A.見張りの塔に初めて登る
アーキテクチャとしては、場面の開始前にイベントの発動条件をチェックする処理が必要ということがわかる。
データとしては、場面の一意識別子が必要となる。

つまり、ゲームシーケンスとして、場面を移動した場合、移動後の場面の処理の前に、イベント発動条件をチェックする機構が無ければならない。
イベント定義ファイルには、1.場面の開始前イベントであること、および2.どの場面のイベントか、が定義されていれば良いことになる。

とまあ、こんな感じで、既にあるモデルケースを分析することで、なんとかイベント定義ファイルのフォーマットと、イベント処理のアーキテクチャが見えてきたところである。

来週は、これを実際に実装してみたいと思う。

5年前

コメントを残す

メールアドレスが公開されることはありません。