Jakub Zych 3792d61fdb Game scene: HUD + camera frame + status bar with live OBS sync
Streaming overlay for the Game scene. Reads the manifest written by
loading.sh (game name, subtitle, mic state) and pulls live state from
OBS WebSocket on the same connection that delivers music updates.

- Top HUD: TRANSMISSION ID / SIGNAL bars / UTC clock — same vibe as
  Landing/Loading, sized smaller so it doesn't dominate the gameplay.
- Camera frame (top-right, 480×270 with cyan corner ticks): decorative
  drop-target. The actual OBS camera source layers ON TOP; a centered
  placeholder (camcorder SVG + 'PLACE CAMERA HERE' + frame coordinates
  '2008, 100 · 480×270') shows during setup and gets covered when the
  camera source is positioned. Configurable via URL params:
  ?camera=Webcam&scene=Game.
- Status bar (bottom): solid gradient + cyan top edge so it reads on
  any gameplay background. Two lines:
    LIVE · GAME · SUBTITLE
    elapsed timer · mic state · now-playing track
- Live camera-frame sync: queries GetSceneItemEnabled on connect and
  subscribes to SceneItemEnableStateChanged, so toggling the camera's
  eye-icon in OBS hides/shows the frame within ~50ms — overrides the
  manifest's static value.
- Music sync: shares the same WS connection; now-playing line updates
  from mpd:state broadcasts.
- CRT overlays kept lighter than Landing (gameplay must remain readable).
2026-04-26 02:40:24 +02:00
Description
No description provided
3.5 MiB
Languages
HTML 31.5%
Blade 25.4%
PHP 18.9%
Shell 11.4%
Python 5.5%
Other 7.3%