Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions apps/web/tf2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ Deliver faithful TF2 gameplay and presentation at `https://playsrc.online/tf2`.
- Assemble the TF2 game, selected TF2 rulesets, simulation, networking, presentation, assets, and product UI.
- Own browser lifecycle, input, settings, navigation, and application state.
- Measure one positive integer CSS-pixel presentation viewport from the shared application content box; coalesce content-box, visual-viewport, orientation, fullscreen, pointer-lock, and DPR notifications into one animation-frame publication shared by Rendering and every VGUI owner. Zero size suspends publication, duplicate records are inert, and teardown removes every observer, listener, media query, and pending frame.
- Play the configured Valve WebM once per page process while Main Menu VGUI initializes hidden, inert, unfocusable, and accessibility-hidden; admit exact audio/video through a browser gesture, accept Escape skip, and reveal the ready menu atomically. Drive Console map loading through the configured `stamp_background_map` layer and 380×112 VGUI loading dialog using only owner-reported status/progress, then preserve pause/resume/disconnect, TF2 HUD resources, and persistent Options through the game-owned adapters. HUD/GameUI/Options resources share the selected desktop condition, and HUD geometry reapplies exact proportional coordinates on integer viewport changes. Standard and Advanced Options construct independently on first request, and hidden Options perform no frame work.
- Play the configured Valve WebM once per page process while GameUI initializes hidden, inert, unfocusable, and accessibility-hidden; admit exact audio/video through a browser gesture, accept Escape skip, and atomically reveal the build-selected `background_2fort` BasePanel image beneath the full-viewport proportional override and independently selected character. Reapply standard/widescreen base media, wider/taller override conditions and design-space geometry on viewport changes; hide the ordinary background and character in gameplay/loading/pause without discarding selection, then restore them after disconnect. Drive Console map loading through the separate configured `stamp_background_map` layer and 380×112 VGUI loading dialog using only owner-reported status/progress. HUD/GameUI/Options resources share the selected desktop condition, and HUD geometry reapplies exact proportional coordinates on integer viewport changes.
- Adapt typed VGUI console submissions to owner-defined command and convar operations. `map <catalog-map-name>` selects one declared map; `map https://<allowed-origin>/<path>/<map-name>.bsp` is an explicit bounded playsrc acquisition operation and is not a TF2 parity capability.
- Own typed `cl_showfps 0|1|2` and `cl_showpos 0|1|2` values, immutable diagnostic inputs, exact catalog revisions/current-value output, and explicit unavailable distinctions; VGUI owns the bounded diagnostic panel.
- Run one direct-BSP TF2 worker with Rust-owned Source Simulation pacing, physical-button held/release identity across simultaneous inputs, 15 ms latest-value browser clock admission with ordered suspension transitions, display-cadence camera sampling, raw pointer movement when supported, post-command teleport-angle rebasing, bounded Blob-backed map/presentation caching, exact cached model-header reconstruction, Three.js/WebGPU bundled static world plus inline brush models, selected-teamspawn camera initialization, Source-signed pointer look, physical left/right Shift crouch, separate VGUI mount, exact blocker ledger, and generation-safe map replacement.
- Run one direct-BSP TF2 worker with Rust-owned Source Simulation pacing, physical-button held/release identity across simultaneous inputs, 15 ms latest-value browser clock admission with ordered suspension transitions, display-cadence camera sampling, one bounded required display frame for each newly visible Particle effect identity, raw pointer movement when supported, post-command teleport-angle rebasing, bounded Blob-backed map/presentation caching, exact cached model-header reconstruction, Three.js/WebGPU bundled static world plus inline brush models, selected-teamspawn camera initialization, Source-signed pointer look, physical left/right Shift crouch, separate VGUI mount, exact blocker ledger, and generation-safe map replacement.
- Select `mat_hdr_level 0|1|2` through profile-distinct map generations; cache bounded StudioModel artifacts; execute projectile PCF phases in the worker; and apply Rust-produced PVS face candidates plus typed environment counts without gameplay feedback. Do not configure `jump_beef` course state until an accepted Tempus core and exact zone-contact definition are supplied.
- Consume PSSN v8 random/audio/Collision/pusher/Entity/locker facts, 123 brush descriptors, collision-selected moving marks, PMRQ v5/PMPO v4 hand-plus-item/ammunition frames, PSMP v3 facing, Particle v3 materials/sheets/trails, typed alpha discard, complete Water view plans, Source Audio, and configured macOS SourceScheme fonts. IVP remains explicit: sticky fire is rejected before spawn. Native glyph-raster and aligned target captures remain blockers.
- Consume PSSN v8 random/audio/Collision/pusher/Entity/locker facts, 123 brush descriptors, collision-selected moving marks, PMRQ v5/PMPO v4 hand-plus-item/ammunition frames with depth-isolated post-world viewmodel rendering, PSMP v3 facing, Particle v3 materials/sheets/trails, exact PMST v2 state for all 12 selected Particle materials, typed alpha discard, complete Water view plans, Source Audio, and configured macOS SourceScheme fonts. IVP remains explicit: sticky fire is rejected before spawn. Native glyph-raster and aligned target captures remain blockers.
- Keep the package-owned all-class TF2 core separate from the compact Soldier/Demoman direct-map session until one complete adapter can replace the current authority. Keep Demo, Networking, and Replay unmounted until TF2 recorded-state decoding/presentation and the declared upload/control experience exist; never route recorded commands through Simulation.

Run the checked end-to-end browser procedure with `bun run verify:browser jump_beef`. It captures the startup movie's first/middle/final frames, hidden Main Menu admission, Escape skip, desktop/mobile loading background/dialog, cold/warm gameplay, disconnect without startup replay, and one-interrupt shutdown at 1,280×720 and 390×844.
Expand Down
Loading