Qual é o método usual de armazenar modelos 3D, texturas, sons e scripts (por exemplo, arquivos Lua) durante o desenvolvimento e em um release? Estou desenvolvendo um jogo com meus amigos principalmente em C ++; na fase de prototipagem, tivemos apenas uma única textura que foi salva como um cabeçalho C com o GIMP, mas é claro que essa abordagem não é bem dimensionada e aumenta muito o tempo de compilação.
No Windows, a prática usual é apenas despejá-los no %PROGRAMFILES%
subdiretório no qual o executável do jogo reside, talvez organizando-os em uma estrutura de árvore apropriada. No entanto, no Linux, a imagem parece muito mais complicada. O executável geralmente reside em /usr/bin
, enquanto os aplicativos armazenam seus outros arquivos /usr/share
, e acho que seria uma prática extremamente ruim colocar não executáveis /usr/bin
. No entanto, a estrutura de diretórios durante o desenvolvimento é totalmente diferente.
Eu poderia encontrar duas soluções possíveis diferentes:
- Deixe o executável encontrar os arquivos de ativos em relação a si próprio e instale o jogo em
/opt
. Em seguida, coloque links simbólicos para/usr/bin
. Durante o desenvolvimento, o caminho relativo dos ativos para os binários é o mesmo que durante a implantação. - Acesse os arquivos com um caminho absoluto definido como um símbolo do pré-processador. Deixe o processo de compilação (no nosso caso, raw
Makefile
s) cuidar de defini-lo como ele é adequado.
Ambas as abordagens me parecem um pouco deselegantes em um aspecto ou outro. Existe uma prática comum na indústria de desenvolvimento de jogos sobre isso?
As únicas perguntas relevantes que pude encontrar foram Determinar a localização dos ativos de jogos instalados / em disco e os caminhos do Diretório para recursos e ativos , mas eles não resolveram o problema de executar "a partir da árvore de origem".