ASIcrisp/Dead-Island-Limit-Adjuster
GitHub: ASIcrisp/Dead-Island-Limit-Adjuster
一款《死亡岛》(2011 原版)的引擎限制调整模组,通过提升活跃 AI 预算上限让场景中可同时存在更多丧尸。
Stars: 0 | Forks: 0
# 死亡岛限制调整器(2011 版)
死亡岛限制调整器提升了原版游戏的存活 AI 预算,使得自定义生成器能够让更多的丧尸保持活跃状态,而不会受到原版 25 个 AI 上限的回收限制。它还公开了密度、可选的尸体保留、进程工作集调整、预设、严格的构建验证以及诊断日志。
## 支持的游戏
- 适用于 Windows 的原版死亡岛(2011 年发布),32 位
- 提供日期为 2012 年 1 月 13 日的补丁可执行文件集
- `game_x86_rwdi.dll` 时间戳:`0x4F10070E`
- `game_x86_rwdi.dll` SHA-256:`dccb7840b73ca04200d7d7e1e7eb6d3846ee954bb502b74da763e56c5ad63785`
这不适用于死亡岛:终极版或激流版。默认情况下会拒绝未知的构建版本,而不是盲目地进行地址补丁。
## 更改内容
| 设置 | 零售版 | 发布默认值 | 目的 |
| --- | ---: | ---: | --- |
| 最佳活跃 AI | 15 | 128 | 延迟大群丧尸下的相关性降低 |
| 最大活跃 AI | 25 | 256 | 提升存活 AI 准入上限 |
| 丧尸密度 | 1.00x | 1.00x | 在你提高它之前保持正常人口数量不变 |
| 尸体清理 | 启用 | 启用 | 可通过 `PreserveDeadBodies=1` 单独禁用 |
| 进程工作集 | Windows 管理 | 256–2047 MB 软目标 | 减少激进的修剪而不增加硬性上限 |
该模组本身不会生成丧尸。它移除了阻止地图脚本、开发者命令、修改器或其他模组维持大群丧尸存活的全局低预算限制。
## 安装说明
仅使用一种加载方法。
### 独立方法
1. 打开包含 `DeadIslandGame.exe` 的文件夹。
2. 将 `winmm.dll` 和 `DeadIslandLimitAdjuster.ini` 复制到该文件夹中。
3. 启动游戏。
4. 进入菜单后检查 `DeadIslandLimitAdjuster.log`。它应该显示 `Build validation: exact supported build` 和 `AI limit enforcement: active`。
独立的 WinMM 代理会转发所提供的引擎导入的每一个 WinMM 函数。它可以与单独的 `dsound.dll` 模组(如 rich-presence 或 crash-dump 包装器)共存。
### 现有 ASI loader 方法
1. 请勿安装此版本的 `winmm.dll`。
2. 将 `DeadIslandLimitAdjuster.asi` 和 `DeadIslandLimitAdjuster.ini` 复制到 `DeadIslandGame.exe` 旁边。
3. 让你现有的 ASI loader 加载该插件。
请勿同时安装 `winmm.dll` 和 `DeadIslandLimitAdjuster.asi`;这会导致调整器被启动两次。
## 预设
- `Balanced.ini`:64 最佳 / 128 最大。在普通 CPU 上进行初步测试的最佳选择。
- `Horde.ini`:128 最佳 / 256 最大,2 倍密度。
- `Extreme.ini`:256 最佳 / 512 最大,4 倍密度。在拥挤区域预计会出现严重的 CPU 负载。
要使用预设,请将其重命名为 `DeadIslandLimitAdjuster.ini` 并将其放置在 DLL 或 ASI 旁边。
## 重要限制
“无限内存”在技术上是不可能的。死亡岛是一个 32 位进程。提供的可执行文件已经是 Large Address Aware(大地址感知),但其地址空间仍然是有限的,并且引擎仍然需要 world streaming 来卸载远处的地图资源。完全禁用 world streaming 会增加崩溃和关卡过渡损坏,而不是修复它们。
因此,此模组更改了安全且相关的限制:
- 存活 AI 准入/相关性预算;
- 生成密度缩放;
- 可选的正常击败 AI 清理例程;
- Windows 工作集目标;
- 构建验证以及关卡过渡后的持续重新应用。
它不会永远保持每个地图区块、纹理、网格、声音、物理实体和被击败的 AI 处于加载状态。这些系统共享同一个有限的 32 位地址空间。
包含的 DLL 已交叉编译并针对提供的二进制文件进行了静态验证。由于此环境无法启动 Windows 游戏,因此首次游戏内检查是上述生成的日志。
## 推荐测试顺序
1. 从默认的 128/256 配置和 `PreserveDeadBodies=0` 开始。
2. 确认日志识别出确切的构建版本。
3. 以 25 个为步长生成丧尸,并观察帧时间和内存使用情况。
4. 在提高密度之前先提高 `MaximumActiveAI`。
5. 仅在短期测试中启用 `PreserveDeadBodies`;尸体消耗预算和内存的速度比存活 AI 更快。
如果丧尸仍在特定门口或地图边界消失,通常是脚本化的生成盒停用或关卡 streaming 过渡,而不是全局 25 个 AI 的上限。该模组有意不去绕过这些地图安全过渡。
## 从源码构建
Visual Studio 2022 配合 CMake:
```
build_vs2022.bat
```
选择 Win32/x86 平台。游戏无法加载 64 位的 DLL。
## 卸载说明
删除已安装的 `winmm.dll` 或 `DeadIslandLimitAdjuster.asi`、INI 文件以及生成的日志。不会修改任何存档数据或原版游戏文件。
标签:Bash脚本, DLL注入, 内存修改, 单机游戏, 参数调优, 客户端加密, 流量审计, 游戏Mod