Case study
IW4L: a Rust runtime that plays Modern Warfare 2 from the user’s installed game
Implements a standalone runtime for Call of Duty: Modern Warfare 2 (2009) in Rust on Bevy and wgpu, loading maps, models, textures and weapons from the user’s installed game through native FastFile readers and translating its Direct3D 9 shaders to WGSL. Bots, demo recording and replay, and multiplayer over custom UDP with a QUIC master are implemented, while README warns that gameplay remains incomplete, with missing behavior, bugs and desyncs. README states that the whole project is written by an LLM; NOTICE names the community projects consulted and says the original binaries were read with Ghidra.
- Targets
- Game
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
Requirements & limits
- Prerequisites: Needs the user’s own MW2 Multiplayer installation, which BUILD.md describes as the Windows depot of a Steam copy; Black Ops and MW3 data are optional. The repository and release archives contain no game data, and CONTRIBUTING.md forbids attaching, committing or linking original game files.
- Prerequisites: Builds with stable Rust through rustup and GNU Make. Linux needs a C/C++ toolchain and X11, Wayland, ALSA, udev and xkbcommon development packages; macOS needs only the Xcode command-line tools. The Windows release is a password-protected iw4l-windows.zip; given a server operator’s .iw4l-server descriptor, iw4l.exe installs SHA-256-verified executable updates from that operator.
- Limits: Releases are tagged demo builds, v0.1.0-demo.23 at review. APIs, caches and the wire protocol change between commits, so multiplayer peers must run the same build.
- Testing evidence: No CI workflow or cargo test suite: make publish-check rejects test modules, and the only permanent checks are two owner-approved end-to-end scenarios driving real clients on MW2 maps with the user’s game data. Fidelity to the original game is not measured.
- License: Apache-2.0 source with two bundled OFL fonts; game assets and trademarks remain their owners’.
- Attribution: NOTICE says no third-party source is vendored and names references read during development, including OpenAssetTools, IW4x, KisakCOD and Plutonium’s decompiled Black Ops II scripts. A provenance note records replacing a movement module after reported similarities to GPL code, without establishing copying.
About this entry
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · vladtrc/iw4L · Revision acc57a5
- NOTICE GitHub · vladtrc/iw4L · Revision acc57a5
- CONTRIBUTING.md GitHub · vladtrc/iw4L · Revision acc57a5
- AGENT.md GitHub · vladtrc/iw4L · Revision acc57a5
- docs/BUILD.md GitHub · vladtrc/iw4L · Revision acc57a5
- docs/WINDOWS.md GitHub · vladtrc/iw4L · Revision acc57a5
- Makefile GitHub · vladtrc/iw4L · Revision acc57a5
- crates/approved_tests/README.md GitHub · vladtrc/iw4L · Revision acc57a5
- docs/provenance/movement-iw4.md GitHub · vladtrc/iw4L · Revision acc57a5
- LICENSE GitHub · vladtrc/iw4L · Revision acc57a5
- https://github.com/vladtrc/iw4L/releases/tag/v0.1.0-demo.23
More in Games
- Skate 3 Rust Engine: a Bevy rewrite built on Skate 3 reverse-engineering research · Case study
- RenderDoc · Tool
- AssetRipper · Tool
- Cpp2IL · Tool
- Il2CppDumper · Tool
- RenderDoc MCP · Integration