在此存储库中,您将找到 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 配合使用。
对代码进行更改的 Mod(dll/asi、限制调节器)将不起作用。这些 mod 所做的一些事情已经在 re3 中实现了(大部分 SkyGFX、GInput、SilentPatch、宽屏修复),其他的可以轻松实现(增加 limis,请参阅config.h
),其他的只需重写并集成到代码中直接地。带来不便敬请谅解。
使用 premake 时,如果您希望通过构建后脚本将可执行文件移动到 GTA3 根文件夹,您可能需要将 GTA_III_RE_DIR 环境变量指向 GTA3 根文件夹。
使用git clone --recursive https://github.com/halpz/re3.git
克隆存储库。然后cd re3
进入克隆的存储库。
对于使用 premake 的 Linux,请继续:在 Linux 上构建
安装python和conan,然后运行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
对于使用 premake 的 MacOS,请继续:在 MacOS 上构建
对于使用 premake 的 FreeBSD,请继续:Building on 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 作为 re3 的子模块,但您也可以使用 LIBRW 环境变量来指定您自己的 librw 的路径。
如果您觉得需要,您还可以使用 CodeWarrior 7 使用提供的 codewarrior/re3.mcp 项目来编译 re3 - 这需要原始 RW33 库和 DX8 SDK。不过,与 MSVC 版本相比,该版本不稳定,主要是作为参考。
只要它不是 Linux/跨平台框架/兼容层,存储库上所有不在预处理器条件(如 FIX_BUGS)后面的代码都是与原始二进制文件完全相反的代码。
我们不接受自定义代码,只要它不是通过预处理器条件包装的,或者它是 Linux/跨平台骨架/兼容层。
我们只接受这些类型的 PR;
我们有一个编码风格文档,但没有得到很好的遵循或执行。
不要使用 C++11 或更高版本的功能。
re3 于 2018 年春季的某个时候启动,最初是为了测试游戏内的反向碰撞和物理代码。这是通过使用 dll 将游戏的单个函数替换为相反的函数来完成的。
经过一番工作后,该项目休眠了大约一年,并于 2019 年 5 月再次被提起并推送到 github。当时我(aap)已经反转了大约 10k 行代码,并估计最终游戏有大约 200 行代码25万。其他人很快也加入了这项工作(按时间顺序是 Fire_Head、shfil、erorcun 和 Nick007J,Serge 稍晚一些),我们在 2019 年整个夏天取得了非常快的进展,之后步伐放慢了一点。
由于新冠病毒大流行开始期间每个人都呆在家里,每个人都有很多时间再次开发 re3,我们终于在 2020 年 4 月得到了一个独立的 exe(当时大约有 18 万行)。
经过最初的兴奋并进一步修复和完善代码后,reVC 于 2020 年 5 月上旬开始,从 re3 代码开始,而不是从头开始用 dll 替换函数。经过几个月的基本稳定进展后,我们认为 reVC 于 12 月完成。
从那时起,我们开始了 reLCS,目前该工作正在进行中。
我们觉得我们没有能力向该代码授予许可证。
该代码只能用于教育、文档和修改目的。
我们不鼓励盗版或商业用途。
请保持衍生作品开源并给予适当的认可。