Neste repositório você encontrará o código-fonte totalmente revertido para GTA III (filial master) e GTA VC (filial de miami).
Foi testado e funciona em Windows, Linux, MacOS e FreeBSD, em x86, amd64, arm e arm64.
A renderização é feita pelo RenderWare original (D3D8) ou pela biblioteca de reimplementação (D3D9, OpenGL 2.1 ou superior, OpenGL ES 2.0 ou superior).
O áudio é feito com MSS (usando dlls do GTA original) ou OpenAL.
O projeto também foi portado para Nintendo Switch, Playstation Vita e Nintendo Wii U.
Ainda não podemos construir para PS2 ou Xbox. Se você estiver interessado em fazê-lo, entre em contato conosco.
Implementamos uma série de mudanças e melhorias no jogo original. Eles podem ser configurados em core/config.h
. Alguns deles podem ser alternados em tempo de execução, outros não.
Seria bom ter/fazer as seguintes coisas:
As modificações de ativos (modelos, textura, manuseio, script, ...) devem funcionar da mesma maneira que no GTA original em sua maior parte.
Os scripts CLEO funcionam com CLEO Redux.
Mods que fazem alterações no código (dll/asi, ajustadores de limite) não funcionarão. Algumas coisas que esses mods fazem já estão implementadas no re3 (muito do SkyGFX, GInput, SilentPatch, correção Widescreen), outras podem ser facilmente alcançadas (aumentando os limites, consulte config.h
), outras simplesmente terão que ser reescritas e integradas ao código diretamente. Desculpe pela inconveniência.
Ao usar o premake, você pode apontar a variável de ambiente GTA_III_RE_DIR para a pasta raiz do GTA3 se desejar que o executável seja movido para lá por meio do script pós-construção.
Clone o repositório com git clone --recursive https://github.com/halpz/re3.git
. Em seguida, cd re3
no repositório clonado.
Para Linux usando premake, prossiga: Construindo no Linux
Instale python e conan e execute build.
conan export vendor/librw librw/master@
mkdir build
cd build
conan install .. re3/master@ -if build -o re3:audio=openal -o librw:platform=gl3 -o librw:gl3_gfxlib=glfw --build missing -s re3:build_type=RelWithDebInfo -s librw:build_type=RelWithDebInfo
conan build .. -if build -bf build -pf package
Para MacOS usando premake, prossiga: Construindo no MacOS
Para FreeBSD usando premake, prossiga: Construindo no FreeBSD
Supondo que você tenha o Visual Studio 2015/2017/2019:
premake-vsXXXX.cmd
na pasta raiz.A Microsoft interrompeu recentemente os downloads do SDK DX9. Você pode baixar uma versão arquivada aqui: https://archive.org/details/dxsdk_jun10
Se você escolher OpenAL no Windows, você deve ler Executando a compilação OpenAL no Windows.
premake tem uma opção
--with-lto
se você deseja que o projeto seja compilado com Link Time Optimization.
Existem várias configurações em config.h, você pode dar uma olhada lá.
re3 usa mecanismo de renderização de substituição RenderWare completamente homebrew; biblioteca. librw vem como submódulo de re3, mas você também pode usar a variável de ambiente LIBRW para especificar o caminho para sua própria librw.
Se sentir necessidade, você também pode usar o CodeWarrior 7 para compilar re3 usando o projeto codewarrior/re3.mcp fornecido - isso requer as bibliotecas RW33 originais e o SDK DX8. A compilação é instável em comparação com as compilações do MSVC e destina-se principalmente a servir como referência.
Contanto que não seja uma camada de esqueleto/compatibilidade de plataforma cruzada/linux, todo o código no repositório que não está atrás de uma condição de pré-processador (como FIX_BUGS) é um código completamente revertido dos binários originais.
Não aceitamos códigos personalizados, desde que não sejam agrupados por meio de condições de pré-processador ou seja linux/esqueleto de plataforma cruzada/camada de compatibilidade.
Aceitamos apenas esses tipos de PRs;
Temos um documento de estilo de codificação que não é seguido ou aplicado muito bem.
Não use recursos do C++ 11 ou posterior.
re3 foi iniciado na primavera de 2018, inicialmente como uma forma de testar colisão reversa e código de física dentro do jogo. Isso foi feito substituindo funções únicas do jogo por suas contrapartes invertidas usando uma dll.
Depois de um pouco de trabalho, o projeto ficou inativo por cerca de um ano e foi retomado e enviado para o github em maio de 2019. Na época, eu (aap) havia revertido cerca de 10 mil linhas de código e estimei que o jogo final teria cerca de 200- 250 mil. Outros rapidamente se juntaram ao esforço (Fire_Head, shfil, erorcun e Nick007J em ordem de tempo, e Serge um pouco mais tarde) e fizemos um progresso muito rápido durante o verão de 2019, após o qual o ritmo desacelerou um pouco.
Devido a todos terem ficado em casa durante o início da pandemia de Corona, todos tiveram muito tempo para trabalhar no re3 novamente e finalmente conseguimos um exe independente em abril de 2020 (cerca de 180 mil linhas até então).
Após a empolgação inicial e a correção e o polimento adicional do código, o reVC foi iniciado no início de maio de 2020 começando com o código re3, e não começando do zero, substituindo funções por uma dll. Após alguns meses de progresso praticamente constante, consideramos que a reVC foi concluída em dezembro.
Desde então, iniciamos o reLCS, que atualmente está em andamento.
Não nos sentimos em condições de conceder uma licença a este código.
O código deve ser usado apenas para fins educacionais, de documentação e de modificação.
Não incentivamos a pirataria ou o uso comercial.
Por favor, mantenha o código aberto do trabalho derivado e dê o devido crédito.