Construindo GTA VC e GTA III de código aberto no Linux

imagem



Provavelmente não existe tal pessoa aqui que não jogaria GTA (ou pelo menos não tenha ouvido falar sobre isso). A primeira versão 3D da série foi lançada há cerca de 20 anos. Foi o GTA III. GTA: Vice City foi lançado um ano depois. Apesar disso, esses jogos ainda não são apenas jogados, mas também criados por mods. Esses jogos foram portados para muitas plataformas, mas infelizmente o Linux (até recentemente) foi contornado. A única maneira de jogar Linux era com vinho. Mas recentemente tudo mudou.



A notícia chamou minha atenção - Os desenvolvedores concluíram a engenharia reversa de GTA III e Vice City e lançaram portas para diferentes plataformas .



E como sigo tudo relacionado às fontes (vazamentos, descobertas, etc.), e também gosto de construir software a partir das fontes - é claro que não poderia ignorar isso. Pelas notícias, percebi que os entusiastas publicaram o código-fonte para GTA III e GTA: VC. Minha alegria não conheceu limites. Eu fui imediatamente ao github para obter mais informações.



Principais melhorias (em relação a Miami):



  • Correção de muitos bugs menores e maiores.
  • Os arquivos do usuário (salvos e configurações) agora são armazenados no diretório raiz do GTA.
  • As configurações agora são armazenadas no arquivo reVC.ini (elas estavam originalmente em gta_vc.set).
  • Adicionado menu de depuração (disponível por CTRL + M).
  • Câmera livre (câmera de depuração). CTRL + B - liga / desliga. Quando ativada, a câmera pode ser movida livremente em todo o mapa.
  • Removidas telas de carregamento entre as ilhas.
  • E algumas outras correções / melhorias, incluindo correções para outras plataformas.


Observação: esses parâmetros podem ser configurados no arquivo core / config.h . Alguns parâmetros podem ser alterados diretamente no jogo (usando o menu de depuração), enquanto o resto exigirá reconstrução.



Passemos ao mais interessante, ou seja, a montagem de miami (GTA: VC).



Nós precisamos:



  • Distribuição Linux (Ubuntu, Debian, Mint, etc);
  • Arquivos originais (ativos) do kit de distribuição do jogo VC (no caso de uma construção GTA III, os arquivos GTA III serão necessários de acordo).
  • GCC.
  • Algumas bibliotecas e arquivos de cabeçalho.


Eu uso o Linux Mint 19.3 como sistema operacional (baseado no Ubuntu 18.04 LTS). Você pode instalar compiladores gcc como este (se não estiver instalado):



sudo apt install build-essential
      
      





Instalando as bibliotecas necessárias:



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





Aqui vamos parar e considerar com mais detalhes. Ontem passei meia hora procurando uma solução para o problema de compilação devido ao meu descuido. É claramente afirmado no GitHub que a versão da biblioteca glfw deve ser pelo menos 3.3, enquanto os repositórios do Ubuntu 18.04 têm 3.2. Portanto, se você tiver um kit de distribuição construído no Ubuntu 18.04 (ou a versão da biblioteca glfw for inferior a 3.3 no repositório), essa biblioteca deve ser compilada a partir dos fontes. Mas não há nada difícil aqui. Baixando o arquivo github.com/glfw/glfw/releases/download/3.3.2/glfw-3.3.2.zip



Descompacte-o em qualquer pasta. Vamos para a pasta descompactada e executamos os seguintes comandos:



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





A biblioteca da versão necessária está instalada. Agora clonamos o repositório:



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





Não vai demorar muito. Após a clonagem, o tamanho da pasta reVC é de cerca de 120 MB (dos quais 70 MB é uma pasta .git).



Em seguida, vá para a pasta reVC e inicie premake5Linux:



./premake5Linux --with-librw gmake2
      
      





Levará alguns segundos para gerar os arquivos de construção.

Nota: Se você usar a arquitetura arm / arm64, então você precisa construir o utilitário premake5Linux a partir dos fontes e, em seguida, executá-lo com o parâmetro indicado acima.



Agora a própria assembléia. As seguintes configurações estão disponíveis para a construção:



- debug_linux-x86-librw_gl3_glfw-oal

- debug_linux-amd64-librw_gl3_glfw-oal

- debug_linux-braço-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



Acho que tudo está claro a partir dos nomes. O principal é não confundir amd64 e arm64 (esqueci sonolento ontem à noite, então não consegui entender porque a montagem não ocorre).



Vá para o diretório reVC / build e execute make com sua configuração. No caso da versão de depuração para amd64, você precisa:



make config=debug_linux-amd64-librw_gl3_glfw-oal
      
      





A compilação é rápida o suficiente. No meu antigo laptop (Asus X55A, Pentium B970 2x2,3 GHz e 4 GB de memória), a versão de depuração levou 2 minutos para ser construída. 10 segundos (arquivo de saída = 30,4 MB), liberação - 4 minutos. 44 segundos (tamanho do arquivo = 43,8 MB). Por experiência própria, direi que em muitos casos geralmente é o oposto.



Se a compilação transcorreu sem erros, o binário reVC estará na pasta reVC / bin / your_configuration / Debug_or_Release /.



Copie a pasta original com GTA: VC em algum lugar (se desejar, você pode excluir todos os arquivos da raiz - não precisamos deles). Em seguida, copie nosso binário reVC para a pasta do jogo. Em teoria, o jogo já pode ser iniciado, e até jogado. Mas o texto em alguns itens do menu não será exibido corretamente:



imagem



Para corrigir isso, copie as pastas de substituição de reVC / gamefiles para a pasta do jogo. Porém, neste caso, o jogo será em inglês.



Agora vamos examinar o menu de depuração:



imagem



Para habilitar ou desabilitar o menu de depuração - pressione CTRL + M.



  • Cam - tudo relacionado à câmera.
  • Cheats - vários cheats.
  • Depurar - Exibe várias informações de depuração, posição do jogador, etc.
  • Depurar Renderizar - Você pode ocultar ou exibir vários objetos, veículos, edifícios, pedestres, mostrar os caminhos de veículos e pedestres, etc.
  • Jogo - Teletransporte para qualquer lugar (primeiro você deve colocar uma marca no mapa). Você também pode lançar absolutamente qualquer missão.
  • Partícula - não sei o que é.
  • Render - Algumas correções, configurações de fps, configurações de gráficos ...
  • Spawn - Veículos de Spawn.
  • Hora e clima - Configure a hora e o clima.


Construir GTA III não é diferente, exceto para clonar o repositório:



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





Sobre mods: texturas, scripts, modelos devem funcionar. Mas dll / asi, CLEO não funcionará. Alguns recursos desses mods já estão implementados no re3, alguns podem ser configurados no arquivo config.h.



Links relacionados:



github.com/GTAmodding/re3

Instruções de montagem para

binários GTA III Ready reVC para Mac, Linux, Windows

Ready re3 binários para Mac, Linux, Windows

Visualize o repositório no Visual Studio Code



Lifehack: Se você alterar o github no link do github .com em github1s.com, o repositório pode ser visualizado no conveniente Visual Studio Code.



All Articles