mirror of
https://github.com/vladtrc/iw4L
synced 2026-10-25 18:05:19 -04:00
65052d3f51
Decode Black Ops audio natively and load Black Ops II worlds, faction models, equipment, materials, lighting and weapon camouflage. Rework capsule collision, solid recovery, penetration, recoil, effects and sentry placement; synchronize late joins and player event delivery. Keep local skill ratings and signed player accounts. Show the selected community and master ping on the main menu. Add twenty asset-filtered class presets across IW4, IW5, T5 and T6, plus fifty-two unique player-style names shared by AI bots and dummies. Honor the chosen dev descriptor in the two-client approved scenario and credit contributors and weapon, map and attachment QA testers. Validated with the approved gameplay lifecycle and two-client dev-master scenarios, installed class-asset audit, bot-name uniqueness checks and Linux IW4/IW5/T5/T6 gameplay smoke runs. Foreign-weapon match-stat schema coverage remains incomplete.
3.8 KiB
3.8 KiB
docs/ — the one-page map
Short files (each ≤50 lines) on what lives where and how to poke the live game. Keep them this short: nobody opens a long file twice.
| file | about | when to read |
|---|---|---|
BUILD.md |
system packages per distro (Fedora / Debian / Arch), macOS, what the Windows cross build needs | before your first build |
RUN.md |
running (make map, --cmds), controls frozen until Playing, force_match_start, sync-by-default, the verb list and the traps |
before your first live run |
WINDOWS.md |
portable iw4l.exe: community updates, shortcuts into CoD, writable iw4l-artifacts/ |
building and running on Windows |
DEPLOY.md |
make release / publish / deploy: the play profile, hashed .zst, master by SHA, provision kept separate |
shipping a release, "why is the player on an old version" |
| Approved scenarios | gameplay lifecycle and two clients through the dev master | repeatable end-to-end checks |
MASTER.md |
your own master over ssh from the machine with the clone: cargo xtask master install, a self-signed certificate with no domain, what to hand players |
standing up a relay for yourself or your friends |
PERF.md |
native .pftrace — the only runtime truth; picking a UUID, the manifest, IW4L_PERF, SQL |
traces, scenario SQL, why a frame took 80 ms |
FFI.md |
native data ownership, lifetimes, nullability and Perfetto adapters | changing a native boundary or diagnosing trace failures |
BENCH.md |
make bench: the map-load waterfall and stage exclusive time, frame time as a span tree, the render/GPU/work counters, and the run package (manifest.json, summary.json); in-process, no trace needed |
"where did this run spend its time" |
RENDER.md |
the nine crates of the island, the frame path IR → cull → one drawsurf list → tess → material → SM3 → wgpu, GPU-side ownership, the d3d9_* border |
touching the picture, techsets, lighting |
AUDIO.md |
client AudioRuntime, control/render/device threads, fixed slots, virtualization and offline PCM execution | touching sound ownership, playback or callback resources |
ANIM.md |
three floors: anim_iw4 (facts and curves), xmodel_runtime (tree and pose), who picks the clip (sim / render_frontend/adapters/anim/) |
viewmodel, skeleton, bone hits |
MAP-LOAD.md |
map load: the session → assets → install transaction, the load_prepared_match walk, the lane by ZoneGame, the artifact cache |
a zone won't load, an asset went missing, "why didn't the match come up" |
ENTITIES.md |
the TickInput → sim::step → Snapshot funnel, the entity_iw4 taxonomy (EntityState / Centity / ET_* / trajectories), what sits where in sim |
gameplay, networking, replay |
SIM-STEP.md |
sim::step: one TickInput → Snapshot funnel for authority, prediction and replay; StepReason; what makes a step deterministic |
touching the step, prediction or replay |
SKILL.md |
local Elo ratings, account persistence and migration | changing skill updates or account synchronization |
GSC-RUNTIME.md |
GSC → executable IR → Bevy runtime; args, arrays and tables still share one Runtime |
implementing gameplay or script execution |
GSC-POSTFX.md |
script vision, color correction, blur, DoF and bloom | authoring or debugging GSC post effects |
BOTS.md |
host AI: the per-tick pipeline, what a probe that never ran may not claim, the shared query budget, resumable routes, fighting from a position | bot decisions, bot movement, "why is it standing there" |