複数のコンテナーにゲームオブジェクトを格納する
光でDRY、それだけで一つの容器に関連したゲームオブジェクトのコレクションを格納するのが望ましいと思われます。ただし、さまざまなコンテキストでこれらのオブジェクトのサブコレクションが必要になる場合があります。これらの特定のサブセットを特定のより適切なコンテナに保存するのが賢明な場合があります。これにより、たとえばオブジェクトがゲームの世界から削除された場合など、コンテナー全体でオブジェクトを追跡する作業が増加します。 そのような設計を単純化する可能性は何ですか?そして典型的なトレードオフは何ですか? 説明する: マルチプレーヤーロールプレイングゲームでは、サーバーは、IDによる検索に適したマップにゲームキャラクターのコレクションを保持する場合があります。 world map<id, Character> allCharacters キャラクターは特定のゲームレベルに常駐することもあります。レベルに存在するすべての文字を識別するために、現在そのレベルに存在する文字を保持する各レベルのコンテナを導入することが適切に思えるかもしれません。このようにして、そのレベルのすべてのキャラクターに共通のロジックを実行できます。 world map<id, Character> allCharacters [levels] level1 vector<Character> charactersOnPlayfield level2 vector<Character> charactersOnPlayfield ... さらに進んで、キャラクターがワールドと対話するとき、メッセージは範囲内のキャラクターにのみルーティングされるべきです。このインタレスト管理は、各レベルをセルのグリッドに分割することによって達成できます。各セルは、現在その上に立っているキャラクターを格納します。 world map<id, Character> allCharacters [levels] level1 vector<Character> charactersOnPlayfield [cells] cell1 vector<Character> charactersOnCell cell2 vector<Character> charactersOnCell ... level2 vector<Character> charactersOnPlayfield [cells] cell1 vector<Character> charactersOnCell cell2 vector<Character> charactersOnCell ... ... …