自分が取り組んでいるゲームにXNAコンテンツパイプラインを適切に使用する方法を調査してきました。しかしながら、私は頭を包み込むのに苦労しており、最善の方法を確信できません。
具体的な例は、トップダウンの2D RPGスタイルのゲームです。マップを簡単に作成および編集できるユーティリティ(おそらくWindowsフォーム)を作成したいと考えています。各マップは1つ以上のグラフィックレイヤーで構成され、各レイヤーにはタイルのN x Nグリッドが含まれています。次に、各タイルはビットマップとして始まります。
上記の情報を与えられて、私は続行するためのいくつかの方法を見つけます:
- Content Pipeline XMLローダーと互換性のあるXMLファイルにマップ情報を保存します。各タイルは、対応するテクスチャアセットへの文字列参照として保存されます。テクスチャアセットがゲームプロジェクトに追加されます。
- Content Pipeline XMLローダーと互換性のあるXMLファイルにマップ情報を保存します。各タイルは、対応する.bmp / .pngファイルへのパスとして保存されます。
今、私は両方のアプローチについて本当に嫌いなことがあります。アプローチ1の主な問題は、マップの作成と.xnbテクスチャアセットの作成が完全に分離していることです。.xmlマップファイルはユーティリティによって作成され、テクスチャアセットはゲームのコンテンツに追加されます。これは、.xmlマップファイルとプロジェクト内のすべてのテクスチャアセットの同期を維持しようとするときに問題になります。
アプローチ2では、マップユーティリティを使用して、マップファイルの隣に適切な画像ファイルをすべて保持できます。しかし、このようなことをする必要はないようです。また、タイルごとに同じ画像をディスクからすばやくロードしないように、マップのロードについてよりインテリジェントにする必要があります。
だから私の質問です:コンテンツ生成ユーティリティ(マップエディターなど)を追加する場合、カスタムコンテンツ(マップファイル)がテクスチャアセットと常に同期していることを確認するための最良の方法は何ですか。また、私のマップエディターでは、テクスチャアセットを読み込んで表示する機能が必要になることにも注意してください。
どんな入力でも大歓迎です。