docs(plans): add playful visual feedback milestone

This commit is contained in:
2026-09-10 22:08:02 +03:00
parent abb3ff27b7
commit 2501345740
10 changed files with 294 additions and 38 deletions
+18 -3
View File
@@ -22,9 +22,9 @@ exit silhouettes remain distinct, and Player 2 uses a dashed secondary
treatment so ownership does not depend on color alone.
The closed and opened arched exits show the existing locked and opened exit
states. The crystal represents the existing vision artifact. Spikes appear only
with local blocked-movement feedback and do not add a trap, damage, protocol,
or server-state feature.
states. The crystal represents the existing vision artifact. The spike symbol
is kept as a local catalog asset but is not shown for blocked movement; it does
not add a trap, damage, protocol, or server-state feature.
## Input contract
@@ -51,6 +51,21 @@ For every projection, the browser translates only the received cells so the
authoritative `self` cell stays under the centered avatar; this also keeps the
avatar off a wall when the visible projection reaches a maze boundary.
## Feedback and message rail
The browser stores the direction for each outstanding move request. Only after
a matching server `blocked` rejection does it shake the already rendered maze
in the attempted direction for at most 340 ms; it shows no blocked-move text or spike
notice. A matching `rate_limited` rejection darkens and blurs only the maze for
at most 520 ms. Each effect has one restartable timer and is cleared on pause,
result, reset, disconnect, and control reset. Reduced-motion mode uses a static
maze border cue for blocked movement instead of a shake.
All remaining Russian system messages use one `role=status` live message rail
above the application top bar. One connection-loss message has highest priority
and remains until a successful recovery; other messages deduplicate, replace
lower-priority content, and dismiss after 2.6 seconds.
Commands use the version-one protocol envelope and contain intention data only:
```json
+13 -6
View File
@@ -44,8 +44,9 @@ marker.
The gameplay icon family is locally authored SVG artwork derived from the
approved running-player, key, arched-exit, crystal, opened-exit, and spike
reference silhouettes. The spike icon communicates only blocked movement or a
wall collision; it never represents a trap or a new gameplay mechanic.
reference silhouettes. The spike icon remains a catalog asset only; blocked
movement uses the maze feedback defined below and never represents a trap or a
new gameplay mechanic.
WCAG AA contrast certification and dedicated color-vision-deficiency palettes
are not MVP requirements.
@@ -102,8 +103,10 @@ are not MVP requirements.
- Connection details and the Wi-Fi settings link belong in a secondary panel,
not in the persistent status row.
- Countdown, pause, and result states appear as modal overlays above the map.
- Errors and rejected actions appear as contextual tooltips or notices near
the relevant control or status area.
- Textual system notices use one live message rail above the top bar and player
status area. It shows one message at a time: connection loss has highest
priority and persists until recovery; all other messages replace lower
priority content, deduplicate by event, and dismiss after 2.6 seconds.
- The lobby uses separate blocks for players, observers, and match actions.
- Network provisioning uses the same colors, type, controls, and humor as the
game application.
@@ -121,8 +124,12 @@ are not MVP requirements.
- Player zoom and pan controls are not part of the MVP.
- Use different colors plus labels, outlines, shapes, or icons to distinguish
player ownership and object types.
- Give immediate visual feedback when movement is rejected by a wall without
revealing hidden state.
- A server `blocked` rejection shakes the visible maze opposite the attempted
cardinal movement for at most 340 ms, without text or spike notice. A
`rate_limited` rejection darkens and blurs only the maze for at most 520 ms,
also without text. Repeated feedback restarts one bounded effect of each type.
- Reduced-motion mode replaces the blocked shake with one static directional
border cue; rate-limit feedback remains immediate and non-animated.
## 8. Responsive behavior