例えば:
- 世界に10の部屋があるとしましょう。
- そして、世界には10のエンティティが住んでいるとしましょう。
- また、各エンティティには独自の「毎日のルーチン」があり、部屋で特定のアクションを実行し、部屋間を移動することもできます。
プレーヤーは一度に1つの部屋にしか入ることができないので、他のエンティティが他の部屋で画面外で実行しているアクションを追跡する良い方法は何ですか?
- 最も簡単なオプションは、すべてのフレームで10個のエンティティのそれぞれをチェックし、それらの位置/状態をチェックして、エンティティがいつでもプレイヤーがいる部屋にいるかどうかを判断することです。 (ただし、これは、特に部屋/エンティティの量が増加するにつれて、本当にリソースが重いと感じます。)
別のオプションは、ゲームの開始から経過した時間を追跡することです。各エンティティは、そのパターンがプレーヤーのいる部屋と交差するかどうかをチェックします。エンティティはこの特定の時間に同じ部屋にあると想定され、プレイヤーが現在の部屋と交差しないパターンのエンティティは、プレイヤーがパターンと交差する部屋に入るまで何もせず、その時点でのみかどうかを計算しますレンダリングする必要があります。(しかし、部屋と対話する場合、その時点での位置を決定するために、ルートと交差する部屋の状態を常に確認する必要がありますが、それはそれほど素晴らしいことではありません。)
私がやってきた3番目のオプションは、まずプレイヤーの場所と交差するルートのみを見て(前述のとおり)、次に部屋に入ると、プレイヤーがその部屋にいるかどうかを確認し、そうでない場合は部屋の状態と次の部屋に進むのにどれくらい時間がかかりますか。たとえば、管理人のNPCが部屋に入り、部屋の状態を確認し、プレイヤーによるこぼれがあることを確認し、それを掃除するのにかかる時間と経路がかかる時間を計算します。時間は次の部屋に入るためです。プレイヤーが部屋にいるかどうかを確認するだけです。レンダリングのためのNPCの正確な位置は、プレイヤーが部屋に入ったときにのみ計算されます。
しばらくブレインストーミングした後、私は3番目のオプションに来ましたが、おそらくこれらのようなものを処理するための既知のまたはより良い方法があるのだろうかと思いましたか?