Files
iw4L/docs/INDEX.md
T

5.2 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
PRESENTATION.md fire product receipts, immutable UI lookup owners, editor capabilities and appearance refusals changing presentation ownership or retry policy
THEATER.md saved films and clips, previews, local editor controls, camera keys and cut export playing or editing a recording
KILLCAM.md archived cameras, life clipping, sound and FX transitions projectile or autonomous weapon killcams
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
POSTFX.md authored map-family film, bloom and highlight profiles; remaining effects comparing game-family presentation
GSC-POSTFX.md script vision, color correction, blur, DoF and bloom authoring or debugging GSC post effects
KILLSTREAKS.md EMP ownership and sentry script/engine boundaries, including the missing visible turret aim pose checking killstreak damage or sentry rotation
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"