ここで直面している課題が2つあるようです:配布とアセットパッケージです。
分布
アプリケーション全体を必要に応じてディレクトリにパッケージ化し、トップレベルのディレクトリを.zipファイルに配置します。その.zipファイルを配布します。ユーザーがzipを抽出すると、ゲームを実行するために必要なすべてのものが入ったフォルダーができます。
ファイルをどのように配置しますか?
- .dllは通常、実行可能ファイルと同じディレクトリにある必要があります(例外がありますが、簡単にするために...)
- アセット(画像、オーディオ)はどこにでも配置できますが、実行可能ファイルを参照してそれらを移動する場合は、これを考慮に入れるためにリソース読み込みコードを変更する必要があります。
私は通常次のようなことをします:
MyGame \ //トップレベルのディレクトリはプログラム全体を保持します
bin \ //コンパイルされたexeとともにDLLがここに移動します
res \ //ゲームリソースの最上位ディレクトリ
音楽\
音響効果\
ボイス\
cfg \ //デフォルトの構成ファイル(user-configsはユーザーディレクトリにあります)
MyGame.lnk //コンパイル済みexeへのショートカット
アセットパッケージ
ある種の圧縮ライブラリ(zlib、lzo)を使用して、すべてのゲームリソース(上記のres \ディレクトリ)を1つのファイルに圧縮できます。次に、アセットをゲームにロードするために、同じ圧縮ライブラリを使用してリソースのコンテンツをリアルタイムで抽出する必要があります。
次に、アセットにパッチを適用するとどうなりますか?次に、次のいずれかを実行する必要があります。まったく新しいアセットファイルをコンパイルしてユーザーに配布する(つまり、基本的には、既に持っているものをダウンロードし、さらにいくつかの追加を行います)、またはアップデーター(維持する別のプログラム)をビルドする必要があります。 )そして、物事がうまくいかず、アセットファイルが破損するという事実に対処してください...
正直なところ、それを機能させるのは簡単なことではなく、あなたの状況で見返りが見られません。10個のスプライトをカプセル化するには、単純なディレクトリで十分です。追加やパッチの適用は非常に簡単です。適切なディレクトリにダウンロードして実行するだけです。
インストーラーの構築
これは、Windowsをターゲットにしていることを前提としています...上記の設定が完了したら、ゲームのインストーラーのビルドに取り掛かることができます。Visual StudioがサポートしているClickOnceメソッドは絶対に避けます。これは一般的なWindowsインストーラーではなく、独自の癖が付いています。
このStackOverflowの質問を見てください。使用できるインストーラパッケージへの一連の役立つリンクが含まれています。最近、多くの人がWiXを気に入っているようです。自分で使ったことがありません。さらに、AdvancedInstallerとInnoSetupはどちらも一般的な選択肢です。