Кажется, что здесь есть две проблемы: распространение и упаковка активов.
распределение
Упакуйте все ваше приложение в каталоги по своему усмотрению, затем поместите каталог верхнего уровня в ZIP-файл. Распространите этот файл .zip. Когда ваши пользователи распакуют архив, у них будет папка со всем необходимым для запуска игры.
Как вы размещаете свои файлы?
- Ваши .dll обычно должны находиться в том же каталоге, что и исполняемый файл (есть исключения, но для простоты ...)
- Ваши ресурсы (изображения, аудио) могут быть там, где вы хотите, но если вы переместите их со ссылкой на свой исполняемый файл, вам придется изменить код загрузки ресурсов, чтобы учесть это.
Я обычно делаю что-то вроде этого:
MyGame \ // каталог верхнего уровня содержит всю программу
bin \ // dll идут сюда вместе с скомпилированным exe
res \ // каталог игровых ресурсов верхнего уровня
Музыка\
Звуковые эффекты\
голос \
cfg \ // файлы конфигурации по умолчанию (пользовательские конфигурации идут в пользовательский каталог)
MyGame.lnk // ярлык для скомпилированного exe
Упаковка активов
Вы можете использовать какую-то библиотеку сжатия (zlib, lzo), чтобы сжать все ваши игровые ресурсы (указанная выше директория res \) в один файл. Затем вам нужно использовать ту же библиотеку сжатия для извлечения содержимого ваших ресурсов в режиме реального времени, чтобы загрузить свои ресурсы в вашу игру.
Что происходит, когда вы хотите исправить свои активы? Затем вы должны либо: скомпилировать целый новый файл ресурсов и распространить его среди своих пользователей (чтобы они по сути заново загружали то, что у них уже есть, плюс несколько добавлений), либо вам нужно создать программу обновления (другую программу для поддержки). ) и иметь дело с тем, что что-то может пойти не так, и ваш файл активов будет поврежден ...
Честно говоря, это не совсем тривиально, и я не вижу отдачи в вашей ситуации. Простого каталога должно быть достаточно для инкапсуляции ваших 10 спрайтов, и гораздо проще добавлять и исправлять вещи: просто нужно загрузить их в правильный каталог и все готово.
Сборка установщика
Предполагается, что вы ориентируетесь на Windows ... после того, как вы выполнили вышеперечисленное, вы можете приступить к созданию установщика для вашей игры. Я бы во что бы то ни стало избегал методов ClickOnce, которые поддерживает Visual Studio. Это не ваш типичный установщик Windows и поставляется с собственным набором причуд.
Взгляните на этот вопрос StackOverflow - он содержит набор полезных ссылок на пакеты установщика, которые вы можете использовать. Многим людям сегодня нравится WiX . Я никогда не использовал это сам. Кроме того, AdvancedInstaller и InnoSetup являются популярными вариантами.