# IW4L：用使用者已安装的游戏运行《现代战争 2》的 Rust 运行时

> 以 Rust 基于 Bevy 和 wgpu 实现《使命召唤：现代战争 2》（2009）的独立运行时：通过原生 FastFile 读取器从使用者已安装的游戏中载入地图、模型、纹理和武器，并将其 Direct3D 9 着色器转换为 WGSL。已实现机器人、录像录制与回放，以及基于自定义 UDP 和 QUIC 主服务器的多人游戏；但 README 提醒游戏玩法仍不完整，存在缺失行为、错误和不同步。README 声明整个项目由大语言模型编写；NOTICE 列出参考过的社区项目，并说明曾用 Ghidra 阅读原版二进制文件。

- 类型：案例
- 目标：游戏
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-19
- 收录于：2026-11-02
- 原始资源：<https://github.com/vladtrc/iw4L>
- 一手来源：<https://github.com/vladtrc/iw4L/blob/acc57a5c9dd027db8eb5ef17c792fa69f059daa1/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/iw4l-mw2-rust-runtime-case/>
- 记录 JSON：<https://awesomerea.org/resources/iw4l-mw2-rust-runtime-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/iw4l-mw2-rust-runtime-case/index.md)

## 使用条件与局限

- **前提条件：**需要使用者自己的 MW2 多人游戏安装，BUILD.md 说明使用 Steam 版的 Windows 资源库；《黑色行动》和 MW3 的数据为可选。仓库和发行压缩包均不含游戏数据，CONTRIBUTING.md 禁止附带、提交或链接原版游戏文件。
- **前提条件：**使用 rustup 安装的稳定版 Rust 和 GNU Make 构建。Linux 需要 C/C++ 工具链及 X11、Wayland、ALSA、udev 和 xkbcommon 开发包；macOS 只需 Xcode 命令行工具。Windows 发行版是设有密码的 iw4l-windows.zip；放入服务器运营者提供的 .iw4l-server 描述文件后，iw4l.exe 会安装该运营者发布、经 SHA-256 校验的可执行文件更新。
- **局限：**发行版均为标注 demo 的构建，审阅时为 v0.1.0-demo.23。API、缓存和网络协议会随提交变化，因此多人游戏各方必须运行同一构建。
- **测试证据：**没有 CI 工作流，也没有 cargo 测试套件：make publish-check 会拒绝测试模块，唯一保留的检查是两个经所有者批准的端到端场景，它们使用使用者的游戏数据，在 MW2 地图上驱动真实客户端。项目未衡量与原版游戏的一致程度。
- **许可：**源码采用 Apache-2.0，附带两款 OFL 字体；游戏素材和商标仍归其所有者。
- **署名：**NOTICE 称未内置任何第三方源码，并列出开发中参考过的项目，包括 OpenAssetTools、IW4x、KisakCOD 和 Plutonium 反编译的《黑色行动 II》脚本。一份来源说明记录：因有报告称某个移动模块与 GPL 代码相似，该模块已被替换。

## 一手来源

1. <https://github.com/vladtrc/iw4L/blob/acc57a5c9dd027db8eb5ef17c792fa69f059daa1/README.md>
2. <https://github.com/vladtrc/iw4L/blob/acc57a5c9dd027db8eb5ef17c792fa69f059daa1/NOTICE>
3. <https://github.com/vladtrc/iw4L/blob/acc57a5c9dd027db8eb5ef17c792fa69f059daa1/CONTRIBUTING.md>
4. <https://github.com/vladtrc/iw4L/blob/acc57a5c9dd027db8eb5ef17c792fa69f059daa1/AGENT.md>
5. <https://github.com/vladtrc/iw4L/blob/acc57a5c9dd027db8eb5ef17c792fa69f059daa1/docs/BUILD.md>
6. <https://github.com/vladtrc/iw4L/blob/acc57a5c9dd027db8eb5ef17c792fa69f059daa1/docs/WINDOWS.md>
7. <https://github.com/vladtrc/iw4L/blob/acc57a5c9dd027db8eb5ef17c792fa69f059daa1/Makefile>
8. <https://github.com/vladtrc/iw4L/blob/acc57a5c9dd027db8eb5ef17c792fa69f059daa1/crates/approved_tests/README.md>
9. <https://github.com/vladtrc/iw4L/blob/acc57a5c9dd027db8eb5ef17c792fa69f059daa1/docs/provenance/movement-iw4.md>
10. <https://github.com/vladtrc/iw4L/blob/acc57a5c9dd027db8eb5ef17c792fa69f059daa1/LICENSE>
11. <https://github.com/vladtrc/iw4L/releases/tag/v0.1.0-demo.23>

## 同分区更多条目：游戏

- [Jazz² Resurrection：《爵士兔 2》的原生 C++ 重新实现](https://awesomerea.org/zh/resources/jazz2-resurrection-engine-case/index.md) · 案例
- [Kinoko：为精确回放幽灵记录而重新实现 Mario Kart Wii 物理引擎](https://awesomerea.org/zh/resources/kinoko-mkwii-physics-reimplementation-case/index.md) · 案例
- [LBA2 Remake：以 TypeScript 和 Three.js 重新实现 Little Big Adventure 1 与 2](https://awesomerea.org/zh/resources/lba2remake-little-big-adventure-case/index.md) · 案例
- [Legend of Legaia：Rust 移植与本地读盘的浏览器工具](https://awesomerea.org/zh/resources/legend-of-legaia-rust-port-case/index.md) · 案例
- [libd2：《暗黑破坏神II》1.14d 引擎组件库](https://awesomerea.org/zh/resources/libd2-engine-core-reconstruction-case/index.md) · 案例
- [librw：RenderWare Graphics 引擎的重新实现](https://awesomerea.org/zh/resources/librw-renderware-reimplementation-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
