Files
iw4L/docs/INDEX.md
T
2026-10-07 20:30:21 +03:00

4.5 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: every root .iw4l-server is a server, hashed .zst, master by SHA, GitHub pre-release 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
MATERIALS.md compiled material state, preparation generations, dynamic dependencies and adaptation provenance changing material preparation or state admission
AUDIO.md client AudioRuntime, control/render/device threads, fixed slots, virtualization and offline PCM execution touching sound ownership, playback or callback resources
CUES.md compiled cue semantics, typed spatial/routing requirements, media decode policy and revision ownership changing cue or media preparation
FAMILIES.md family identity, native dependencies, map-selected characters and supported FPV combinations changing cross-family composition
WEAPONS.md weapon configuration resolution, published consumer projections, host rules and registry lifetimes changing attachments, combat or FPV preparation
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"