Parece que hay dos desafíos que enfrenta aquí: distribución y empaquetado de activos.
Distribución
Empaquete toda su aplicación en directorios como mejor le parezca, luego coloque el directorio de nivel superior en un archivo .zip. Distribuya ese archivo .zip. Cuando los usuarios extraigan el archivo zip, tendrán una carpeta con todo lo que necesitan listo para ejecutar el juego.
¿Cómo colocas tus archivos?
- Por lo general, sus archivos .dlls deben estar en el mismo directorio que el ejecutable (hay excepciones, pero en aras de la simplicidad ...)
- Sus activos (imágenes, audio) pueden estar donde los desee, aunque si los mueve en referencia a su ejecutable, tendrá que modificar su código de carga de recursos para tener esto en cuenta.
Usualmente hago algo como esto:
MyGame \ // el directorio de nivel superior contiene todo el programa
bin \ // dlls van aquí junto con el exe compilado
res \ // directorio de nivel superior de recursos del juego
música\
efectos de sonido\
voz\
cfg \ // archivos de configuración predeterminados (las configuraciones de usuario van en el directorio de usuarios)
MyGame.lnk // acceso directo a exe compilado
Embalaje de activos
Puede usar algún tipo de biblioteca de compresión (zlib, lzo) para comprimir todos los recursos del juego (el directorio res \ anterior) en un solo archivo. Luego, debe usar la misma biblioteca de compresión para extraer el contenido de sus recursos, en tiempo real, para cargar sus activos en su juego.
Entonces, ¿qué sucede cuando quieres parchear tus activos? Luego tiene que: compilar un archivo de activos completamente nuevo y distribuirlo a sus usuarios (para que esencialmente vuelvan a descargar lo que ya tienen, más un puñado de adiciones), o tenga que construir un actualizador (otro programa para mantener ) y lidiar con el hecho de que las cosas pueden salir mal y su archivo de activos se corromperá ...
Honestamente, no es exactamente trivial hacer que funcione y no veo la recompensa en su situación. Un directorio simple debería ser suficiente para encapsular sus 10 sprites y es mucho más fácil agregar y parchear cosas: solo necesita descargarlos en el directorio correcto y listo.
Construyendo un instalador
Esto supone que está apuntando a Windows ... una vez que tenga lo anterior abajo, puede trabajar en la construcción de un instalador para su juego. Evitaría a toda costa los métodos ClickOnce que admite Visual Studio. Es no es el típico programa de instalación de Windows y viene con su propio conjunto de peculiaridades.
Eche un vistazo a esta pregunta de StackOverflow : contiene un conjunto de enlaces útiles a paquetes de instalador que puede usar. A mucha gente en estos días parece gustarle WiX . Nunca lo he usado yo mismo. Además, AdvancedInstaller e InnoSetup son opciones populares.