¿Cuál es el método habitual para almacenar modelos 3D, texturas, sonidos y secuencias de comandos (por ejemplo, archivos Lua) durante el desarrollo y en una versión? Estoy desarrollando un juego con mis amigos principalmente en C ++; En la fase de creación de prototipos, solo teníamos una única textura que se guardaba como un encabezado C con el GIMP, pero, por supuesto, este enfoque no escala bien y aumenta los tiempos de compilación en gran medida.
En Windows, la práctica habitual es simplemente volcarlos en el %PROGRAMFILES%
subdirectorio en el que reside el ejecutable del juego, quizás organizándolos en una estructura de árbol adecuada. Sin embargo, en Linux la imagen parece mucho más complicada. El ejecutable generalmente reside en /usr/bin
, mientras que las aplicaciones almacenan sus otros archivos /usr/share
, y creo que sería una práctica extremadamente mala colocar no ejecutables /usr/bin
. Sin embargo, la estructura del directorio durante el desarrollo es totalmente diferente.
Podría proponer dos posibles soluciones diferentes:
- Deje que el ejecutable encuentre los archivos de activos relativos a sí mismo e instale el juego
/opt
. Luego coloca enlaces simbólicos a/usr/bin
. Durante el desarrollo, la ruta relativa de los activos a los binarios es la misma que durante la implementación. - Acceda a los archivos con una ruta absoluta que se define como un símbolo de preprocesador. Deje que el proceso de compilación (en nuestro caso, raw
Makefile
s) se encargue de definirlo como sea adecuado.
Ambos enfoques me parecen poco elegantes en un aspecto u otro. ¿Existe una práctica común en la industria del desarrollo de juegos sobre esto?
Las únicas preguntas relevantes que pude encontrar fueron Determinar la ubicación de los recursos del juego instalados / en el disco y las rutas del Directorio para los recursos y los activos , pero no resolvieron el problema de ejecutar "desde el árbol de origen".
fuente