Skip to content

feat: add Bevy engine support - #104

Merged
striderZA merged 10 commits into
masterfrom
feat/bevy-engine-support
Aug 10, 2026
Merged

feat: add Bevy engine support#104
striderZA merged 10 commits into
masterfrom
feat/bevy-engine-support

Conversation

@striderZA

Copy link
Copy Markdown
Owner

Summary

Adds Bevy as a first-class engine in the OCGS framework, at parity with SFML 3 / Raylib.

What's included

  • engine-bevy module (both .agents/modules/ and .opencode/modules/ trees) with a single bevy-specialist agent covering ECS, 2D/3D rendering, bevy_ui, assets, audio, input, Cargo build, and WASM/mobile. Installed in both harnesses.
  • 12 version-pinned reference docs at docs/engine-reference/bevy/ — VERSION (pinned Bevy 0.19.0, HIGH knowledge-gap risk), breaking-changes, deprecated-apis, current-best-practices, and 8 module guides (ecs, 2d, 3d, ui, asset, input, audio, testing). Every API claim is source-verified against official Bevy 0.19 sources (migration guides, docs.rs) with citations — including 0.19-specific breaks beyond the LLM cutoff (gamepad as component via Query<&Gamepad>, MessageWriter/Message split, mesh/material components, resources-as-components, DespawnOnEnter/DespawnOnExit same-state fix).
  • /setup-engine integration — Bevy in guided selection, honest tradeoffs, genre guidance, HIGH-risk knowledge-gap baseline, technical-preferences template, specialist routing table, and a Cargo.toml + main.rs scaffold.
  • Cross-cutting updates — AGENTS.md (engine choice, modules list, specialists), README module table, init-template skill, engine-code rule (Rust/Bevy zero-alloc example), agent roster.
  • MCP: Bevy Remote Protocol documented (document-only, per the no-speculative-dependencies guardrail).

Verification

  • node tests/agents/validate.mjs — PASS, 100% coverage (207 agents)
  • npm run test:plugins — 158/158 pass
  • Module install round-trip succeeded in both harnesses; engine-bevy left installed
  • Manual /setup-engine Bevy flow: all 9 checkpoints PASS

Notes

  • Design spec + implementation plan live locally in the gitignored docs/superpowers/ directory (not committed, per user instruction).
  • Two deferred minor findings (triaged non-blocking by final review, logged in the local SDD ledger):
    1. docs/engine-reference/bevy/VERSION.md Key Crates table has no per-row Source column (matches raylib parity; citations in report).
    2. The local Task 8 verification report's source-URL totals understate raw/unique link counts by 2-4 per file (report-evidence nit only; all files exceed the ≥1 URL requirement).

…reaking-changes, deprecated-apis, current-best-practices)

Task 2 of Bevy engine support: source-verified reference set for Bevy 0.19.0
(2026-06-18), covering 0.16->0.17, 0.17->0.18, 0.18->0.19 transitions.
Every entry cites the official migration guide or release page.
- breaking-changes.md: drop dead 0-17-to-0-18/#bevy-render-reorganization anchor; attribute mesh/image bevy_render re-export removal to 0.17 (per 0-16-to-0-17 guide)
- VERSION.md: label Key Theme rows as X-to-X+1 transitions (themes were off-by-one; 0.19 row duplicated 0.18); note 0.19 is latest with no 0.19-to-0.20 guide yet
- VERSION.md: Skybox moved to bevy_light in 0.19 (from bevy_core_pipelines), not part of the 0.17 split
- deprecated-apis.md: un-garble MergeMeshError 'Don't use' cell (0.16 name; was a struct)
Quick-reference guides for Bevy 0.19.0: ecs, 2d, 3d, ui, asset, input,
audio, testing. Every API name verified against docs.rs bevy 0.19.0
pages and the official migration guides; reuses Task 2 verified facts
(breaking-changes, deprecated-apis). Documents 0.16->0.19 renames:
Message/MessageWriter/MessageReader, WorldAssetRoot, Resources-as-
components, removed *Bundle structs, Gamepad-as-component, no PhysicalKey,
Touches resource, LoadState, load_builder, FontSource/FontSize.
Task 7 of the Bevy engine support plan: add Bevy to every user-facing
engine enumeration in AGENTS.md (engine choice, note, available modules,
setup-engine example, Engine Specialists), README.md and init-template
module tables, engine-code.md cross-reference plus Rust/Bevy example
pair (delta_secs verified against docs/engine-reference/bevy/modules/2d.md),
and agent-roster.md Engine Leads.
- VERSION.md: correct bevy_light 0.17 light-type list (AtmosphereEnvironmentMapLight, not Atmosphere); note Atmosphere added in 0.19
- breaking-changes.md: DespawnOnEnter/DespawnOnExit now trigger on same-state transitions only since 0.19 (0.18 had the bug); remove wrong 0.18 attribution
- current-best-practices.md: mirror the same attribution fix
@striderZA
striderZA merged commit f116a8f into master Aug 10, 2026
4 checks passed
@striderZA
striderZA deleted the feat/bevy-engine-support branch August 10, 2026 05:17
@striderZA striderZA mentioned this pull request Aug 10, 2026
striderZA added a commit that referenced this pull request Aug 10, 2026
## Summary

Follow-up to #104 (Bevy engine support) plus release prep for v0.13.0.

### Fixed
- **Bevy agent frontmatter leak**: removed OpenCode-only `mode`/`model`
fields from the canonical `.agents/agents/bevy-specialist.md` (the only
one of 52 canonical specialists carrying them) so it matches every
sibling engine specialist and the harness-agnostic contract.
- **Stale doc counts**: bumped `21 modules -> 22` and `51 agents -> 52`
across README.md and AGENTS.md (6 locations) left behind by the Bevy
module/agent addition.

### Added
- CHANGELOG.md entry for v0.13.0.

### Verification
- `node tests/agents/validate.mjs` -> PASS, 207/207, 100% coverage
- `npm run test:plugins` -> 158/158 pass
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant