Marathon
大規模なPvPvEロケーションにおけるアクティビティ、目標、エンカウント、ワールドシステムの設計。
ケーススタディ
エンカウント制御システム
『Marathon』では、フィールド内の戦闘に、恣意的に見えない予測不能さが必要だった。3つの地表ゾーンと1つのエンドゲーム用屋内エリアでは、すべての敵が同じ処理負荷の上限を共有していた。個別のエンカウントが一つのエリアで上限を使い切り、別のエリアを空にしてしまう可能性があった。さらに、単にAI数を増やすことなく、セッションの経過とともに危険度を高める必要があった。私は4つのロケーションすべてのフィールドエンカウントを設計・実装し、同じ制約のもとで全体を管理するシステムをエンジニアリングと共同で構築した。
各配置を独立したスクリプトとして扱うのではなく、再利用可能なエンカウント・プレハブを定義した。各プレハブには、敵部隊の編成、出現方法、戦闘ジオメトリ、部隊がその空間をどう占有するかを決める段階的な判断ロジックまで、一つの戦闘に必要な要素をまとめた。配置データ側で、出現する場所と時間、発生確率と優先度、より優先度の高いコンテンツに枠を譲る条件を加えた。エンジニアリングがツールとエンジン側のコントローラーを実装し、私はプレハブの制作、配置、調整を担当した。
セッション開始時、アクティブなゾーンがコントローラーを生成した。コントローラーは、戦闘員とエンカウント種別に加え、優先度、難易度、場所、経過時間を追跡し、各プレハブに開始、停止、再出現、撤退、差し替えを指示した。ハードリミットで上限超過を防ぎ、除外ルールで必須アクティビティ用の余力を確保し、経過時間に応じてより難しい組み合わせを許可した。最終的に、すべてのAIスポーンがこのシステムを経由するようになった。
「ロックダウン」は、この基盤を一つの完成したアクティビティに展開した例だった。発生時間帯に入ると、セキュリティ船がダメージフィールドで対象地点を封鎖する。プレイヤーは防護用の消費アイテムを使って侵入し、フィールドを無効化し、携行型ドライブを施錠された報酬キャッシュに挿入する。その後、敵対クルーが介入する可能性のあるなかで、3ウェーブの敵からキャッシュを防衛する。完了すれば戦利品を確定で獲得でき、ドライブも戻るため、さらに危険な地点へ挑戦できた。ローンチ時の出現率は30%。1回のランで最大3地点を連続して攻略し、リスクと獲得可能な報酬を段階的に高められた。コントローラーを経由することで、「ロックダウン」は必要な戦闘員枠を確保しながら、ゾーン全体を上限以内に保てた。
これはプロシージャルな戦闘ではない。戦闘そのものはすべて手作業で設計されたまま、発生する時間と場所、そして共存できるエンカウントの組み合わせだけが変化した。これにより、処理負荷の上限を超えたり、必須コンテンツに必要な戦闘員枠を不足させたりせず、セッションごとにゾーンの印象を変えられた。共通ラベルを使い、シーズンをまたいでエンカウント群をまとめて再調整したり、問題のあるものをパッチなしでJSONから無効化したりもできた。最終的に、このコントローラーはゲーム内のすべてのAIスポーンが通る必須経路になった。