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.
About this entry
The description was reviewed against primary sources.
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
- Jazz² Resurrection: a native C++ reimplementation of Jazz Jackrabbit 2 · Case study
- Kinoko: reimplementing Mario Kart Wii’s physics engine for exact ghost replay · Case study
- LBA2 Remake: a Little Big Adventure 1 and 2 reimplementation in TypeScript and Three.js · Case study
- Legend of Legaia: a Rust port with disc-local browser tooling · Case study
- libd2: Diablo II 1.14d engine-core libraries · Case study
- librw: a re-implementation of the RenderWare Graphics engine · Case study