Parece que há dois desafios que você enfrenta aqui: distribuição e embalagem de ativos.
Distribuição
Empacote seu aplicativo inteiro em diretórios como achar melhor e, em seguida, coloque o diretório de nível superior em um arquivo .zip. Distribua esse arquivo .zip. Quando seus usuários extraírem o zip, eles terão uma pasta com tudo o que precisam, prontos para executar o jogo.
Como você coloca seus arquivos?
- Suas .dlls geralmente precisam estar no mesmo diretório que o executável (há exceções, mas por uma questão de simplicidade ...)
- Seus ativos (imagens, áudio) podem estar onde você quiser, mas se você os mover em referência ao seu executável, precisará modificar o código de carregamento de recursos para levar isso em consideração.
Eu costumo fazer algo assim:
O diretório de nível superior MyGame \ // mantém todo o programa
bin \ // dlls vão aqui junto com o exe compilado
res \ // diretório de nível superior dos recursos do jogo
música\
efeitos sonoros\
voz\
cfg \ // arquivos de configuração padrão (user-configs vão no diretório user)
MyGame.lnk // atalho para exe compilado
Embalagem de Ativos
Você pode usar algum tipo de biblioteca de compactação (zlib, lzo) para compactar todos os recursos do jogo (o diretório res \ acima) em um único arquivo. Então você precisa usar a mesma biblioteca de compactação para extrair o conteúdo de seus recursos, em tempo real, para carregar seus ativos no jogo.
Então, o que acontece quando você deseja consertar seus ativos? Em seguida, você deve: compilar um arquivo de ativos totalmente novo e distribuí-lo aos seus usuários (para que eles estejam essencialmente baixando novamente o que eles já têm, mais as poucas adições), ou você precisa criar um atualizador (outro programa para manter ) e lide com o fato de que as coisas podem dar errado e seu arquivo de ativos será corrompido ...
Honestamente, não é exatamente trivial fazer isso funcionar e não vejo o resultado da sua situação. Um diretório simples deve ser suficiente para encapsular seus 10 sprites e é muito mais fácil adicionar e corrigir coisas: basta fazer o download para o diretório certo e pronto.
Construindo um instalador
Isso pressupõe que você esteja mirando no Windows ... depois de concluir o procedimento acima, você poderá criar um instalador para o seu jogo. Eu evitaria a todo custo os métodos ClickOnce suportados pelo Visual Studio. É não o seu instalador típico do Windows e vem com seu próprio conjunto de peculiaridades.
Dê uma olhada nesta pergunta do StackOverflow - ela contém um conjunto de links úteis para os pacotes do instalador que você pode usar. Muitas pessoas hoje em dia parecem gostar do WiX . Eu nunca o usei. Além disso, AdvancedInstaller e InnoSetup são escolhas populares.