Document Twitch video overlay milestone
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
_model: devlog-entry
|
||||
---
|
||||
schema_version: 1
|
||||
---
|
||||
title: Twungeon controls move into the Twitch video overlay
|
||||
---
|
||||
date: 2026-08-17
|
||||
---
|
||||
author: Codex and Christopher Chambers
|
||||
---
|
||||
summary: Twungeon replaced its component-style viewer popup with a transparent, responsive Twitch video overlay that reuses the authenticated controller while leaving the streamed dungeon visible.
|
||||
---
|
||||
tags: implementation, deployment, Twitch, Twitch Extension, video overlay, responsive UI, accessibility, testing
|
||||
---
|
||||
source_commit: a8a86852c0e06e518d816ea35400ef9878a365f3
|
||||
---
|
||||
body:
|
||||
|
||||
Twungeon's viewer controls now sit directly over the control area reserved in
|
||||
the stream instead of opening as a large Twitch Video Component popup. The
|
||||
production viewer uses Twitch's Video - Fullscreen placement with `extension`
|
||||
as its relative viewer path. The broadcast continues to provide the dungeon,
|
||||
players, Goblin, exit, status frame, and action log underneath the Extension.
|
||||
|
||||
The change deliberately reuses the existing controller and authoritative
|
||||
backend flow. Twitch identity sharing, short-lived Twungeon sessions, character
|
||||
ownership, movement, attack, self-heal, pass, action points, phase checks, and
|
||||
dead-character checks still use the same APIs and server-side rules. The root
|
||||
page remains the complete local and broadcast view, while `/extension` receives
|
||||
an overlay class before first paint and hides every noninteractive game surface.
|
||||
|
||||
Overlay placement is expressed through centralized percentage-based CSS
|
||||
variables for the control region rather than resolution-specific coordinates.
|
||||
Container-relative sizing keeps the directional pad and action buttons usable
|
||||
across normal, theater, fullscreen, narrow, and 4:3 players. The transparent
|
||||
document and empty overlay canvas reject pointer events; only the actual buttons
|
||||
restore them, so the rest of the video is not presented as a large clickable
|
||||
surface.
|
||||
|
||||
Development remains practical without Twitch. The loopback-only
|
||||
`/extension?dev=1&debug=1` mode exposes the existing synthetic viewer login and
|
||||
draws control-region boundaries. The flags are ignored on the deployed host.
|
||||
Operator documentation now identifies the Twitch dashboard setting as
|
||||
**Video - Fullscreen**, records the `extension` viewer path, and separates the
|
||||
manual dashboard change from repository deployment.
|
||||
|
||||
Live testing exposed a subtle transparency failure after the correct viewer
|
||||
path was saved. Although the document, body, and control region all computed to
|
||||
transparent backgrounds, the root `color-scheme: dark` declaration caused
|
||||
Chrome to paint the iframe canvas black. Dark color scheme now applies only to
|
||||
the full game page; overlay mode explicitly uses the normal transparent canvas.
|
||||
The stylesheet fix was deployed without restarting the Twungeon service, so the
|
||||
active in-memory run was preserved.
|
||||
|
||||
Validation covered linting, strict type checking, 24 domain tests, 10
|
||||
integration and multi-viewer tests, and a production build. Browser checks at
|
||||
1920×1080, 1280×720, and 1024×768 confirmed normalized placement, hidden
|
||||
noninteractive surfaces, button-only pointer handling, and transparent computed
|
||||
backgrounds. The deployed public stylesheet and viewer endpoint were verified
|
||||
after the final transparency correction.
|
||||
|
||||
The Twitch video-overlay implementation is recorded in
|
||||
[commit `a8a86852c0e06e518d816ea35400ef9878a365f3`](https://git.labyricorn.com/Labyricorn/Twungeon/commit/a8a86852c0e06e518d816ea35400ef9878a365f3).
|
||||
Reference in New Issue
Block a user