
Bevy Genre Party
Bevy 0.20 party router: local seats, shared scores, and minigame swaps as ECS data.
Install
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill bevy-genre-party -g -a claude-code -y- Repository
- thedivergentai/Game-Dev-Agentic-Skills917
- Category
- Engineering
- Updated
- 19d ago
- License
- LGPL-3.0
- Context cost
- Mediumabout 2,150 tokens
- Runs scripts
- No, instructions only
What it does
Bevy 0.20 party router: local seats, shared scores, and minigame swaps as ECS data. Use when routing a local party game. Keywords: Bevy, Party, minigame, score, ECS, router.
Bevy Party (thin router)
Genre router. Domain work lives in the Bevy skills below.
When to use
Load this for local minigame swaps and shared scores.
ECS shape
- Components hold the genre's per-entity flags as plain data. This file does not name new engine types.
- Resources hold run-wide counters (score, wave index, seed) via bevy-data-resources.
- Systems read those components on
Updateor the fixed timestep from bevy-master. Order them with.chain()when a later system must see the result. - Schedule: gameplay mode changes go through bevy-state-machines. This file registers only seat scores and the minigame swap.
Routing
- bevy-state-machines - Minigame mode.
- bevy-input-handling - Local devices. Gamepad exists.
- bevy-game-loop-time-trial - When a minigame is timed.
Scope
Local seats, the shared board, and the current minigame are plain data. Mode machines, devices, and timed rounds stay in the skills linked above.
| Call | Owner here | Leave to the linked skill |
|---|---|---|
| One seat earns the round | PartyBoard.award_pending, then clear it | Input devices in bevy-input-handling |
| Hub opens a race | CurrentMinigame on a just-pressed key | The state machine in bevy-state-machines |
| Score mode ends | bump round and the active seat, then return to hub | The timer in bevy-game-loop-time-trial |
[dependencies]
bevy = "0.20"
#[derive(Component)]
struct LocalSeat {
index: u8,
score: i32,
}
#[derive(Resource)]
struct PartyBoard {
active: u8,
round: u32,
award_pending: bool,
}
