claw-code/.guardrails/examples/python/game-tools/README.md

140 lines
4.2 KiB
Markdown

# Python Game Tools - 2026 Best Practices
**Stack:** Arcade 2.8, PyQt6, Data Visualization (Matplotlib, Plotly), Pydantic v2
**Target:** Arcade 2D UI overlays, loot probability visualization, data dashboards
**Last Updated:** 2026-03-14
---
## 2026 Best Practices
### Arcade 2D UI (Python)
| Pattern | Description | Use Case |
|---------|-------------|----------|
| **Sprite-based** | Sprite class for UI elements | Overlays, buttons |
| **Scene Manager** | Scene switching for UI flow | Menu → Game → Results |
| **Event-driven** | Pygame event handling | Input processing |
| **Delta Rendering** | Only redraw changed regions | Performance |
### Data Visualization
```
Matplotlib → Static charts, probability distributions
Plotly → Interactive dashboards, real-time updates
Seaborn → Statistical visualizations, heatmaps
```
### Transparency Patterns
| Feature | Description | Benefit |
|---------|-------------|---------|
| **Loot Display** | Transparent probability tables | Player trust |
| **Drop Animation** | Visual loot acquisition | Engagement |
| **Rarity Indicator** | Color + text (non-color dependent) | A11y |
| **Statistical View** | Distribution histograms | Data insight |
### Performance Targets
| Metric | Target | Measurement |
|--------|--------|-------------|
| **Frame Time** | <16ms (60 FPS) | `time.perf_counter()` |
| **Memory** | <150MB | `memory_profiler` |
| **Load Time** | <2s | Startup benchmark |
| **GC Pause** | <5ms | Profiler |
---
## Game Design Integration Patterns
### Arcade 2D UI Overlay
```
Layer System → UI layer above game layer
Alpha Blending → Transparent backgrounds
Event Propagation → UI events before game events
```
### Loot Probability Visualization
| Pattern | Description | Implementation |
|---------|-------------|----------------|
| **Probability Table** | Exact drop rates display | Pandas DataFrame |
| **Pie Chart** | Visual rarity distribution | Matplotlib |
| **Histogram** | Drop distribution over time | Plotly |
| **Expectation Curve** | Cumulative drop chance | Statistical plot |
---
## Accessibility Compliance (WCAG 2.2 Level AA)
| Requirement | Implementation | Verification |
|-------------|----------------|--------------|
| **Color Independence** | Text + icon + color for rarity | Grayscale test |
| **Keyboard Navigation** | Arrow keys, Enter, Escape | Manual audit |
| **Screen Reader** | Text descriptions for charts | axe-core |
| **High Contrast** | 4.5:1 minimum ratio | Contrast checker |
| **Reduced Motion** | Toggle for animations | Device testing |
---
## Ethical Engagement Standards
### No Dark Patterns
| Forbidden Pattern | Replacement |
|------------------|-------------|
| **Hidden Rates** | Transparent probability display |
| **False Scarcity** | Honest drop rate claims |
| **Manipulative Odds** | No misleading rarity labels |
| **Sunk Cost Display** | No "you're due" messaging |
| **Timer Pressure** | No artificial purchase timers |
### Transparency Requirements
```
- Display exact drop rates (e.g., "1.5%")
- Show total opens for statistical context
- Clear rarity definitions (Common/Rare/Legendary)
- No hidden weighting algorithms
- Honest RNG disclosure (no fake random)
```
---
## Code Examples
### arcade-ui-overlay.py
Arcade 2D UI overlay with layer management
See: [`arcade-ui-overlay.py`](./arcade-ui-overlay.py)
### loot-table-visualizer.py
Transparent loot probability display
See: [`loot-table-visualizer.py`](./loot-table-visualizer.py)
---
## Testing Guidelines
| Test Type | Tool | Target |
|-----------|------|--------|
| **Unit** | pytest | Per-commit |
| **Visual** | pytest-matchers | Per-PR |
| **A11y** | Manual audit | Per-component |
| **Performance** | pytest-benchmark | Per-sprint |
| **Integration** | pytest-asyncio | Per-release |
---
## Related Documents
- [AGENT_GUARDRAILS.md](../../docs/AGENT_GUARDRAILS.md) - Mandatory safety protocols
- [TEST_PRODUCTION_SEPARATION.md](../../docs/standards/TEST_PRODUCTION_SEPARATION.md) - Test/prod isolation
- [OPERATIONAL_PATTERNS.md](../../docs/standards/OPERATIONAL_PATTERNS.md) - Health checks, circuit breakers
---
**Authored by:** Claude Code (Anthropic)
**Document Owner:** Project Maintainers
**Review Cycle:** Per-sprint updates
**Last Review:** 2026-03-14