docs(plans): add playful visual feedback milestone
This commit is contained in:
+18
-3
@@ -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
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user