Construyendo GTA VC y GTA III de código abierto en Linux

imagen



Lo más probable es que no exista tal persona aquí que no juegue GTA (o al menos no haya oído hablar de él). La primera versión en 3D de la serie se lanzó hace unos 20 años. Fue GTA III. GTA: Vice City salió un año después. A pesar de esto, estos juegos todavía no solo se juegan, sino que también se crean mediante mods. Estos juegos se han portado a muchas plataformas, pero desafortunadamente Linux (hasta hace poco) fue ignorado. La única forma de jugar Linux era vino. Pero recientemente todo ha cambiado.



La noticia me llamó la atención: los desarrolladores han terminado la ingeniería inversa de GTA III y Vice City y han lanzado puertos para diferentes plataformas .



Y como sigo todo lo relacionado con la fuente (fugas, descubrimiento, etc.), y también me gusta compilar software desde la fuente, por supuesto que no podría ignorar esto. De las noticias, me di cuenta de que los entusiastas han publicado el código fuente de GTA III y GTA: VC. Mi alegría no conoció límites. Inmediatamente fui a github para obtener más información.



Mejoras importantes (con respecto a miami):



  • Se corrigieron muchos errores menores y mayores.
  • Los archivos de usuario (guardados y configuraciones) ahora se almacenan en el directorio raíz de GTA.
  • La configuración ahora está almacenada en el archivo reVC.ini (originalmente estaba en gta_vc.set).
  • Menú de depuración agregado (disponible con CTRL + M).
  • Cámara libre (cámara de depuración). CTRL + B - activar / desactivar. Cuando está habilitado, la cámara se puede mover libremente por todo el mapa.
  • Se eliminaron las pantallas de carga entre islas.
  • Y algunas otras correcciones / mejoras, incluidas correcciones para otras plataformas.


Nota: estos parámetros se pueden configurar en el archivo core / config.h . Algunos parámetros se pueden cambiar directamente en el juego (usando el menú de depuración), mientras que el resto requerirá una reconstrucción.



Pasemos a lo más interesante, a saber, el montaje de miami (GTA: VC).



Nosotros necesitamos:



  • Distribución de Linux (Ubuntu, Debian, Mint, etc);
  • Archivos originales (activos) del kit de distribución del juego VC (en el caso de una compilación de GTA III, los archivos de GTA III serán necesarios en consecuencia).
  • GCC.
  • Algunas bibliotecas y archivos de encabezado.


Yo uso Linux Mint 19.3 como sistema operativo (basado en Ubuntu 18.04 LTS). Puede instalar compiladores gcc como este (si no está instalado):



sudo apt install build-essential
      
      





Instalación de las bibliotecas necesarias:



sudo apt install libopenal-dev libglew-dev libglfw3-dev libsndfile1-dev libmpg123-dev
      
      





Aquí nos detendremos y consideraremos con más detalle. Ayer estuve media hora buscando una solución al problema de compilación debido a mi descuido. En GitHub se indica claramente que la versión de la biblioteca glfw debe ser al menos 3.3, mientras que los repositorios de Ubuntu 18.04 tienen 3.2. Por lo tanto, si tiene un kit de distribución integrado en Ubuntu 18.04 (o la versión de la biblioteca glfw es inferior a 3.3 en el repositorio), esta biblioteca debe compilarse a partir de las fuentes. Pero aquí no hay nada difícil. Descarga del archivo github.com/glfw/glfw/releases/download/3.3.2/glfw-3.3.2.zip



Descomprímalo en cualquier carpeta. Entramos en la carpeta descomprimida y ejecutamos los siguientes comandos:



mkdir glfw-build
cd glfw-build
cmake -DBUILD_SHARED_LIBS=ON ../
make -j2
sudo checkinstall
      
      





La biblioteca de la versión requerida está instalada. Ahora clonamos el repositorio:



git clone --recursive -b miami https://github.com/GTAmodding/re3.git reVC
      
      





No tardará mucho. Después de la clonación, el tamaño de la carpeta reVC es de aproximadamente 120 MB (de los cuales 70 MB es una carpeta .git).



A continuación, vaya a la carpeta reVC y ejecute premake5Linux:



./premake5Linux --with-librw gmake2
      
      





Tardará un par de segundos en generar los archivos de compilación.

Nota: Si usa la arquitectura arm / arm64, entonces necesita construir la utilidad premake5Linux a partir de las fuentes y luego ejecutarla con el parámetro indicado arriba.



Ahora el propio montaje. Las siguientes configuraciones están disponibles para la creación:



- debug_linux-x86-librw_gl3_glfw-OAL

- debug_linux amd64 librw_gl3_glfw-OAL

- debug_linux-brazo-librw_gl3_glfw-OAL

- debug_linux-arm64-librw_gllf3_release_linux-release_lf

-release-olf-release_llf-release_ref_release_ref_release_llf

- ole -librw_gl3_glfw-oal

- release_linux-arm-librw_gl3_glfw-oal

- release_linux-arm64-librw_gl3_glfw-oal



Creo que todo está claro por los nombres. Lo principal es no confundir amd64 y arm64 (pasé por alto el sueño anoche, entonces no pude entender por qué no se produce el ensamblaje).



Vaya al directorio reVC / build y ejecute make con su configuración. En el caso de la versión de depuración para amd64, debe:



make config=debug_linux-amd64-librw_gl3_glfw-oal
      
      





La compilación es lo suficientemente rápida. En mi vieja computadora portátil (Asus X55A, Pentium B970 2x2.3 GHz y 4 GB de memoria) me tomó 2 minutos construir la versión de depuración. 10 seg. (Archivo de salida = 30,4 MB), liberación - 4 min. 44 segundos (tamaño de archivo = 43,8 MB). Por mi propia experiencia diré que en muchos casos suele ser todo lo contrario.



Si la compilación pasó sin errores, entonces el binario de reVC estará en la carpeta reVC / bin / your_configuration / Debug_or_Release /.



Copie la carpeta original con GTA: VC en algún lugar (si lo desea, puede eliminar todos los archivos de la raíz, no los necesitamos). Luego copie nuestro binario reVC en la carpeta del juego. En teoría, el juego ya se puede lanzar e incluso jugar. Pero el texto de algunos elementos del menú no se mostrará correctamente:



imagen



Para solucionar esto, copie las carpetas de reemplazo de reVC / gamefiles a la carpeta del juego. Sin embargo, en este caso, el juego estará en inglés.



Ahora repasemos el menú de depuración:



imagen



Para habilitar o deshabilitar el menú de depuración, presione CTRL + M.



  • Cam: todo lo relacionado con la cámara.
  • Trucos: varios trucos.
  • Depurar: muestra diversa información de depuración, posición del jugador, etc.
  • Render de depuración: puede ocultar o mostrar varios objetos, vehículos, edificios, peatones, mostrar las rutas de vehículos y peatones, etc.
  • Juego: teletransportación a cualquier lugar (primero debes poner una marca en el mapa). También puedes lanzar absolutamente cualquier misión.
  • Partícula: no sé qué es.
  • Renderizar: algunas correcciones, configuraciones de fps, configuraciones de gráficos ...
  • Spawn - Genera vehículos.
  • Hora y clima: configure la hora y el clima.


La construcción de GTA III no es diferente, excepto por la clonación del repositorio:



git clone --recursive https://github.com/GTAmodding/re3.git
      
      





Acerca de las modificaciones: texturas, scripts, modelos deberían funcionar. Pero dll / asi, CLEO no funcionará. Algunas características de estos mods ya están implementadas en re3, algunas se pueden configurar en el archivo config.h.



Enlaces relacionados:



github.com/GTAmodding/re3

Instrucciones de

ensamblaje para los binarios de GTA III Ready reVC para Mac, Linux, Windows

Ready re3 binarios para Mac, Linux, Windows

Ver el repositorio en Visual Studio Code



Lifehack: Si cambia github en el enlace de github .com en github1s.com, luego el repositorio se puede ver en el conveniente código de Visual Studio.



All Articles