# bevy-ecs

Держит агента в рамках ECS-модели Bevy: плагины, компоненты и ресурсы, системы с Query. Пригодится, когда проект на Rust уже тянет bevy и пора наводить порядок в системах.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 5100 установок · ★ 4506
- Автор: gamedev-skills
- Лицензия: Apache-2.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/gamedev-skills/awesome-gamedev-agent-skills/tree/HEAD/skills/other-engines/bevy-ecs/SKILL.md
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/skills/bevy-ecs

## Что делает

Скилл держит агента в рамках ECS-модели Bevy: `App` с плагинами, компоненты и ресурсы, системы с `Query`, `Res` и `Commands`. Новые примеры рассчитаны на Bevy 0.20 — если в `Cargo.lock` стоит другая минорная версия, этот код не соберётся. Скилл велит остаться на своей версии и открыть её migration guide вместо тихого апгрейда.

Внутри рабочий порядок: сначала прочитать `Cargo.toml` и `Cargo.lock`, потом регистрировать системы в `Startup` и `Update`. Данные по сущности описываются через `#[derive(Component)]`, глобалы через `#[derive(Resource)]`. С 0.19 ресурс лежит на собственной сущности, поэтому обе производные на одном типе писать не нужно. Движение считается через `time.delta_secs()`.

Отдельный блок про поломки. Паника `error[B0001]` на двух запросах к одному компоненту лечится через `With`/`Without` или `ParamSet`, а `Camera2dBundle` и `SpriteBundle` из 0.16 больше не существуют. Спавн через `Commands` виден только на следующем sync point, порядок систем не гарантирован, пока не добавлен `.chain()`.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill bevy-ecs -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/bevy-ecs/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/bevy-ecs/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill bevy-ecs -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/bevy-ecs/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill bevy-ecs -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/bevy-ecs/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install gamedev-skills/awesome-gamedev-agent-skills bevy-ecs
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/bevy-ecs/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill bevy-ecs -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/gamedev-skills/awesome-gamedev-agent-skills --path skills/other-engines/bevy-ecs
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/bevy-ecs/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill bevy-ecs -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/gamedev-skills/awesome-gamedev-agent-skills/tree/HEAD/skills/other-engines/bevy-ecs/SKILL.md

## Когда брать
- собрать `App` с `DefaultPlugins` и разнести `Startup` и `Update`
- перевести спавн с бандлов на отдельные компоненты после 0.16
- развести два запроса к `Transform`, которые дают панику `error[B0001]`
- сделать движение независимым от частоты кадров через `time.delta_secs()`
- выстроить `apply_damage` перед `check_deaths` через `.chain()`

## Примеры запросов агенту
- В `Cargo.toml` уже есть `bevy`. Собери `App` с `DefaultPlugins`, зарегистрируй `setup` в `Startup`, а движение игрока в `Update`.
- Падает с `error[B0001]` на двух запросах к `Transform` — разведи их через `With<Player>` и `Without<Player>`.
- Хочу волны врагов по таймеру: система со `run_if` и дельта времени из `time.delta_secs()`.

## Похожие
- [game-development](https://affpapa.org/nevibecode/skills/sickn33-game-development.md) — скилл · 3800 установок
- [unity-ecs-patterns](https://affpapa.org/nevibecode/skills/unity-ecs-patterns.md) — скилл · 12027 установок
- [aws-ecs-fargate](https://affpapa.org/nevibecode/skills/aws-ecs-fargate.md) — скилл · 349 установок
- [aws-ecs](https://affpapa.org/nevibecode/rules/aws-ecs.md) — правило · ★ 3579
- [playcanvas-engine](https://affpapa.org/nevibecode/skills/playcanvas-engine.md) — скилл · 2300 установок
- [game-developer](https://affpapa.org/nevibecode/skills/game-developer.md) — скилл · 6400 установок

Из того же набора: [gamedev-skills/awesome-gamedev-agent-skills](https://affpapa.org/nevibecode/by/gamedev-skills/awesome-gamedev-agent-skills.md) — 77 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
