이 저장소에서는 GTA III(마스터 브랜치) 및 GTA VC(마이애미 브랜치)에 대해 완전히 역전된 소스 코드를 찾을 수 있습니다.
Windows, Linux, MacOS 및 FreeBSD, x86, amd64, arm 및 arm64에서 테스트되었으며 작동합니다.
렌더링은 원본 RenderWare(D3D8) 또는 재구현 librw(D3D9, OpenGL 2.1 이상, OpenGL ES 2.0 이상)에 의해 처리됩니다.
오디오는 MSS(원래 GTA의 dll 사용) 또는 OpenAL을 사용하여 수행됩니다.
이 프로젝트는 Nintendo Switch, Playstation Vita 및 Nintendo Wii U로도 이식되었습니다.
아직 PS2나 Xbox용으로 빌드할 수 없습니다. 그렇게 하는 데 관심이 있다면 우리에게 연락하세요.
우리는 원래 게임에 여러 가지 변경 사항과 개선 사항을 적용했습니다. core/config.h
에서 구성할 수 있습니다. 그 중 일부는 런타임에 전환할 수 있지만 일부는 전환할 수 없습니다.
다음과 같은 것들이 있으면 좋을 것입니다.
자산 수정(모델, 텍스처, 처리, 스크립트 등)은 대부분 원본 GTA와 동일한 방식으로 작동해야 합니다.
CLEO 스크립트는 CLEO Redux와 함께 작동합니다.
코드(dll/asi, 제한 조정자)를 변경하는 모드는 작동하지 않습니다 . 이러한 모드가 수행하는 일부 작업은 이미 re3(SkyGFX, GInput, SilentPatch, Widescreen 수정의 대부분)에 구현되어 있고, 다른 작업은 쉽게 달성할 수 있으며(제한 증가, config.h
참조), 다른 작업은 간단히 다시 작성하여 코드에 통합해야 합니다. 곧장. 불편을 끼쳐드려 죄송합니다.
premake를 사용할 때 실행 파일을 빌드 후 스크립트를 통해 해당 폴더로 이동하려면 GTA_III_RE_DIR 환경 변수를 GTA3 루트 폴더로 지정하는 것이 좋습니다.
git clone --recursive https://github.com/halpz/re3.git
사용하여 저장소를 복제하세요. 그런 다음 복제된 저장소에 cd re3
.
premake를 사용하는 Linux의 경우 다음을 진행하세요. Linux에서 빌드
Python과 Conan을 설치한 후 빌드를 실행합니다.
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
premake를 사용하는 MacOS의 경우 다음을 진행하세요. MacOS에서 빌드
premake를 사용하는 FreeBSD의 경우 다음을 진행하세요: FreeBSD 기반 구축
Visual Studio 2015/2017/2019가 있다고 가정합니다.
premake-vsXXXX.cmd
변형 중 하나를 실행합니다.Microsoft는 최근 DX9 SDK 다운로드를 중단했습니다. 여기에서 보관된 버전을 다운로드할 수 있습니다: https://archive.org/details/dxsdk_jun10
Windows에서 OpenAL을 선택하는 경우 Windows에서 OpenAL 빌드 실행을 읽어야 합니다.
링크 시간 최적화를 사용하여 프로젝트를 컴파일하려는 경우 premake에는
--with-lto
옵션이 있습니다.
config.h에는 다양한 설정이 있습니다. 여기서 살펴보는 것이 좋습니다.
re3은 완전히 자체 제작한 RenderWare 대체 렌더링 엔진을 사용합니다. librw. librw는 re3의 하위 모듈로 제공되지만 LIBRW 환경 변수를 사용하여 자신의 librw에 대한 경로를 지정할 수도 있습니다.
필요하다고 생각되면 CodeWarrior 7을 사용하여 제공된 codewarrior/re3.mcp 프로젝트를 사용하여 re3를 컴파일할 수도 있습니다. 이를 위해서는 원본 RW33 라이브러리와 DX8 SDK가 필요합니다. 하지만 빌드는 MSVC 빌드에 비해 불안정하며 대부분 참조용으로 사용됩니다.
Linux/크로스 플랫폼 뼈대/호환성 레이어가 아닌 한 전처리기 조건(예: FIX_BUGS) 뒤에 있지 않은 저장소의 모든 코드는 원본 바이너리에서 완전히 반전된 코드입니다.
전처리기 조건을 통해 래핑되지 않거나 Linux/크로스 플랫폼 뼈대/호환성 레이어인 경우에는 사용자 정의 코드를 허용 하지 않습니다 .
우리는 이러한 종류의 PR만 허용합니다.
우리는 잘 따르지 않거나 시행하지 않는 코딩 스타일 문서를 가지고 있습니다.
C++11 이상의 기능을 사용하지 마세요.
re3는 처음에는 게임 내에서 역충돌 및 물리 코드를 테스트하는 방법으로 2018년 봄에 시작되었습니다. 이는 dll을 사용하여 게임의 단일 기능을 반대 기능으로 대체함으로써 수행되었습니다.
약간의 작업 끝에 프로젝트는 약 1년 동안 휴면 상태에 있었고 다시 선택되어 2019년 5월에 github에 푸시되었습니다. 당시 나(aap)는 약 10,000줄의 코드를 역전시켰고 최종 게임에 약 200- 250,000 다른 사람들도 신속하게 노력에 동참했고(Fire_Head, shfil, erorcun 및 Nick007J는 시간 순서대로, Serge는 조금 나중에) 2019년 여름 내내 매우 빠른 진전을 이루었고 그 후 속도가 약간 느려졌습니다.
코로나 팬데믹이 시작되는 동안 모든 사람이 집에 있었기 때문에 모두가 다시 re3 작업에 많은 시간을 할애했고 마침내 2020년 4월에 독립 실행형 exe를 얻었습니다(그때까지 약 180,000개 라인).
초기의 흥분과 코드 수정 및 개선 이후 reVC는 기능을 dll로 교체하는 처음부터 시작하는 것이 아니라 re3 코드에서 시작하여 2020년 5월 초에 시작되었습니다. 몇 달 동안 꾸준히 진행된 끝에 우리는 reVC가 12월에 완료된 것으로 간주했습니다.
그 이후로 우리는 reLCS를 시작했고 현재 작업이 진행 중입니다.
우리는 이 코드에 라이센스를 부여할 수 있는 입장에 있지 않다고 생각합니다.
코드는 교육, 문서화 및 모딩 목적으로만 사용해야 합니다.
우리는 불법 복제나 상업적 사용을 권장하지 않습니다.
파생 작업을 오픈 소스로 유지하고 적절한 크레딧을 제공하십시오.