# Bevy Genre Platformer

Route a Bevy 0.20 platformer: coyote time and jump buffer on Mover, gravity on...

- Repository: https://github.com/thedivergentai/Game-Dev-Agentic-Skills (917 stars)
- Category: Engineering
- License: LGPL-3.0
- Last updated: 2026-10-16
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill bevy-genre-platformer -g -a claude-code -y`
Codex: `npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill bevy-genre-platformer -g -a codex -y`
Cursor: `npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill bevy-genre-platformer -g -a cursor -y`
Gemini CLI: `npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill bevy-genre-platformer -g -a gemini-cli -y`

## Description

Route a Bevy 0.20 platformer: coyote time and jump buffer on Mover, gravity on FixedUpdate, one-way ledges, follow camera. Keywords: Bevy, platformer, coyote, Mover, FixedUpdate, Camera2d, ECS.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Bevy Platformer (thin router)

Genre router. Domain work lives in the Bevy skills below.

## When to use

Load this to route a platformer to movement, camera, and tiles.

## 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 `Update` or 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. Do not invent a genre plugin.

## Routing

- [bevy-character-movement](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/bevy-character-movement/SKILL.md) - Locomotion.
- [bevy-camera-systems](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/bevy-camera-systems/SKILL.md) - Follow camera.
- [bevy-tilemap](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/bevy-tilemap/SKILL.md) - Ground tiles.
- [bevy-2d-animation](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/bevy-2d-animation/SKILL.md) - Sprite clips.

## Examples

```toml
[dependencies]
bevy = "0.20"
```

Coyote time and the jump buffer live on the mover. Gravity and the jump write `velocity` in one system so they cannot race.

```rust
#[derive(Component)]
struct Mover {
    velocity: Vec2,
    grounded: bool,
    coyote: f32,
    jump_buffer: f32,
}

fn arm_jump(keys: Res<ButtonInput<KeyCode>>, mut movers: Query<&mut Mover>) {
    if !keys.just_pressed(KeyCode::Space) {
        return;
    }
    for mut mover in &mut movers {
        mover.jump_buffer = 0.15;
    }
}

The rest: https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/HEAD/skills/bevy-genre-platformer/SKILL.md
