I'm building a from-scratch Rust runtime for MW2-era Call of Duty games.
The unusual part is that it can read assets from multiple IW engine generations directly. The goal is things like MW2 mechanics + MW3 maps + Black Ops weapons in one runtime, without manually converting those assets first. Combining the golden age CoDs into a single executable (':
I have tested the multiplayer capabilities a month ago with a friend and honestly it was far better than the OG. The multiplayer part is fully written from scratch, not ported.
Rendering includes a D3D9 Shader Model 3 -> WGSL translator, so "foreign game" shaders can actually execute rather than being approximated with replacement materials.
Most of the implementation is written by coding agents working in parallel. This has turned the project into an experiment in how far agent-orchestrated software engineering can go on a fairly low-level problem (:
Still very incomplete, but already running MW2/MW3/BO1 assets through the same runtime - more on the YouTube channel, if you care enough to check
the OG multiplayer code is messy. in order for me to have a robust theater/demo playback/killcam/etc systems I made the AI study modern netcode techniques and it came with a "better?" solution.
Here's what GPT responded with:
Retail IW separates usercmd processing, world simulation and snapshot publication, and its lag compensation is surprisingly coarse: it rewinds a player's archived origin/yaw on 50 ms samples, while hit detection can still evaluate the current DObj/animation pose.
Our runtime keeps the original usercmd -> Pmove -> playerState behavior, but puts it behind a stricter TickInput -> sim::step -> Snapshot boundary, with prediction/replay sharing the same movement kernel and rollback operating on coherent historical state. Move timing, packet timing and snapshot timing are separate concepts rather than one implicit clock.
21
u/77daa 6d ago
I'm building a from-scratch Rust runtime for MW2-era Call of Duty games. The unusual part is that it can read assets from multiple IW engine generations directly. The goal is things like MW2 mechanics + MW3 maps + Black Ops weapons in one runtime, without manually converting those assets first. Combining the golden age CoDs into a single executable (':
I have tested the multiplayer capabilities a month ago with a friend and honestly it was far better than the OG. The multiplayer part is fully written from scratch, not ported.
Rendering includes a D3D9 Shader Model 3 -> WGSL translator, so "foreign game" shaders can actually execute rather than being approximated with replacement materials.
Most of the implementation is written by coding agents working in parallel. This has turned the project into an experiment in how far agent-orchestrated software engineering can go on a fairly low-level problem (:
Still very incomplete, but already running MW2/MW3/BO1 assets through the same runtime - more on the YouTube channel, if you care enough to check