Bevy Projects

This page tracks ZoOL’s Bevy repositories, prototypes, and project-specific implementation notes.

Known project areas

  • Gold Miner / Golden Miner remake work
  • bevy_fog_of_war
  • Other Bevy experiments and game prototypes under ZoOL’s workspace

Immediate watchpoints from 2026-04-24

  • If a local project customizes Bevy feature flags, especially around no_std, wasm, or selective crate composition, audit assumptions around transform parallelism and the new multi_threaded propagation path.
  • If a project has internal tools, text fields, or editor-like workflows, test whether bevy_clipboard can replace ad hoc platform integration.
  • If a project uses ray picking or plans richer hover/selection logic, evaluate the new custom hit metadata path before building side-channel lookup tables.
  • Future upgrades should include a quick grep for renamed UI widget drag-state components after the Core* prefix cleanup.

Immediate watchpoints from 2026-04-25

  • For browser / wasm builds, retest rendering examples that use motion blur, deferred rendering, or custom compositing; WebGL2 motion blur improved, but related web rendering issues remain active in the tracker.
  • For any editor-like Bevy tool, combine the 2026-04-24 clipboard work with the new BRP screenshot example as a possible path toward remote visual regression tests or screenshot-based debugging.
  • If a project uses AssetServer::load_folder together with -F dev / file watching, reproduce the reported deadlock before depending on hot folder reload in daily workflows.
  • If UI code reacts to focus events or implements select-all-on-focus behavior, remove local duplicate-event filters only after confirming the project is on a revision with the deduplication PR.

Immediate watchpoints from 2026-04-26

  • IME support is a big deal for ZoOL’s Chinese-targeted projects. If any project has text input that needs to accept Chinese/Japanese/Korean characters, the new IME support (#23841) should be evaluated immediately upon upgrading to 0.19.
  • Shadow map optimization (#23713) means multi-camera or mini-map scenes will be cheaper to render. Worth benchmarking existing rendering-heavy projects against 0.19 when it ships.
  • Number input widget (#23842) and clipboard support (from 2026-04-24) together make a strong case for building editor/debug tooling directly in Bevy rather than reaching for external tools.
  • 0.19 is approaching fast (95% milestone completion). Start planning upgrade testing: identify which projects are on which Bevy version, and prepare a test matrix for the open regressions (#23114, #23183, #23464, #23470).
  • Asset processing fix (#23984) resolves a stuck-directory bug; if any project experienced asset loading stalls, this fix should resolve them.

Immediate watchpoints from 2026-04-27

  • load_folder deadlock is FIXED (#23980). The previously reported deadlock when using hot folder reload with file watching has been resolved. If a project was avoiding load_folder due to this bug, it’s safe to re-enable after upgrading to 0.19.
  • FocusGained has a new FocusCause field (#23993). Any project that pattern-matches on FocusGained event fields needs to update for the new FocusCause enum. Text input behavior now differs by focus cause (mouse click vs. tab/auto-focus), matching HTML standards.
  • Web/wasm builds targeting single-threaded mode can now use web_asset_cache (#23994). If a project needs web asset caching on constrained targets, test this feature.

Immediate watchpoints from 2026-04-28

  • 0.19 milestone is 93% complete but with 21 open issues (up from 11 — new issues were added to the milestone). Most are rendering regressions. Start testing projects against main now to catch issues early.
  • Visibility range shadows have a pending fix (#23996). If any project uses VisibilityRange for LOD transitions, test the fix when it merges — shadows currently pop when camera rotates.
  • GhostNode fix (#24001) pending. If any project uses GhostNode for UI layout abstraction, this fixes tree synchronization bugs after add/remove.
  • WebGL2 rendering fix pending (#23982) — mesh view bind group layout created on demand, reducing sampled texture count. If any project targets WebGL2, this should fix the broken 3d_scene example.
  • spotlight/rect_light examples are broken (#23997). If any project uses spot or rect area lights, check rendering output on upgrade.

Immediate watchpoints from 2026-05-01

  • Scene Components (#24008) is a paradigm shift. When upgrading to 0.19, any project that manually spawns scenes after components (e.g. commands.spawn(Player::default()); commands.spawn(SceneRoot(...))) should evaluate replacing the pattern with #[derive(SceneComponent)] plus BSN inheritance syntax (:Player). This is the new canonical way to bind components to scenes, but plain commands.spawn(Player::default()) does not expand the scene.
  • Chinese text input jitter is FIXED (#24032). If any project has text input with Chinese characters, this is the fix for the cursor jitter issue (#23931). Note the API change: TextLayoutInfo::cursor is now Option<(bool, Rect)>.
  • Dynamic light shadows now work correctly (#24038). If any project has rotating point/spot lights (torches, rotating lights, etc.), shadows will be fixed in 0.19.
  • 0.19 is at 96% (14 open issues). Release is very close. Now is the time to start testing projects against main branch.
  • Beware AppExit hang on 0.18.1 (#24035) if using screenshot harnesses or insert_resource to overwrite initialized resources. Use Startup system + ResMut instead.

2026-05-02 watchpoints

  • TextLayout API migration: When upgrading to 0.19, replace TextLayout::new_with_justify(...)TextLayout::justify(...), new_with_linebreak(...)linebreak(...), new_with_no_wrap()no_wrap().
  • WebGL2 rendering: 3d_scene regression fixed by #23982 (mesh view bind group layout on demand). If targeting web, retest after upgrade.
  • 0.19 release readiness: 14 open issues remain, mostly platform-specific rendering bugs. No release date announced yet.

2026-05-03 watchpoints

  • 0.19 release is imminent. Release notes (#24029) are being drafted, with images for post-processing and parallax correction. Start preparing project-specific upgrade testing now.
  • CAS + SMAA flickering fixed (#24066). If any project combines CAS sharpening with SMAA anti-aliasing, the flicker bug at non-zero sharpening strengths is now resolved for 0.19.
  • Milestone scope expanded: 0.19 went from 14 to 22 open issues as new edge cases were filed. Don’t treat the increased open count as a regression — the total issues closed also increased (349→359). This is normal release-finalization behavior.

2026-05-05 watchpoints

  • 0.19 is at 97.7% — release could drop this week. If any Bevy project is on a published version (0.18.x), start testing against main NOW. The feathers API graduation and wgpu bump are the two biggest signals.
  • Feathers API is no longer experimental. If any project uses bevy_experimental_feathers, rename the feature flag to bevy_feathers. With Scene Components, feathers is the final-form Bevy UI toolkit — worth evaluating for any project that currently uses custom UI or the older bevy_ui widgets.
  • DX12 rendering may be fixed. If any project targets Windows and uses 3D rendering, the wgpu bump to 29.0.3 should resolve the long-standing black meshes bug. Verify on actual DX12 hardware.
  • Window events now work correctly. If any project matches on WindowEvent variants to detect resize, this will now work — but check for duplicate events if also using dedicated message readers.
  • New ECS APIs worth adopting: Commands::insert_resource_if_neq can replace custom resource-change-detection helpers. 10% faster resource access from sparse set storage is free with the upgrade.

2026-05-06 watchpoints

  • 0.19 still not released. 384/396 (97.0%), 12 open. The wait continues — continue testing against main.
  • Disabled/Enabled scoped components (#24142) — new ECS feature. If any project has custom state-driven entity disable/enable logic, evaluate whether DisableWhen etc. can simplify the code.
  • Feature flag reshuffle (#22488) — watch if this lands in 0.19. Projects with custom feature sets may need to audit bevy_window, bevy_input_focus, custom_cursor references.
  • Quit on RenderErrors (#24131) — if merged for 0.19, projects that currently gracefully handle render device loss (especially on WebGL2/wasm) may exit instead.

2026-05-07 watchpoints

  • 0.19 is at 99% — release could drop ANY DAY. 395/398 closed, only 3 open issues (all rendering regressions). If any project is on 0.18.x, this is the time for final integration testing against main.
  • Quit on RenderErrors is NOW DEFAULT (#24131). If any project currently survives render errors (especially WebGL2/wasm builds that encounter device loss), add explicit error handler opt-out.
  • EnvironmentMapUniform removed (#24095). If any project references EnvironmentMapUniform, update to LightProbesUniform before upgrading.
  • OverflowClipMarginBox → VisualBox (#24154). Simple rename, but grep ahead of time.
  • Disable/Enable now recursive (#24158). If a project was working around the non-recursive behavior of Disabled/EnableOnEnter/etc., those workarounds can be removed.
  • bsn! codegen reduced (#24124). Build times and debug symbol size should improve for projects using bsn! macros heavily.
  • New rendering regression #24162 — shadows disappear after minimize/restore. Filed by andriyDev, added to 0.19 milestone.

2026-05-08 watchpoints

  • 0.19 at 98.5% — release still imminent. 398/404 closed, 6 open (3 new since May 7). No release yet; v0.18.1 still latest.
  • AnimationClip curve sampling (#24152) — if any project has custom animation/motion systems, the new sample_clamped method enables direct curve sampling. First step toward root motion.
  • RenderVisibleEntitiesClass public (#24180) — if any project uses bevy_mod_outline or custom visibility systems, this unblocks third-party rendering crate porting.
  • World::register_resource deprecated (#24168) — grep for usage before 0.19 upgrade.

2026-05-09 watchpoints

  • 0.19 at 99.3% — release could drop any hour. 417/420 closed, only 3 open issues (all visibility-range shadow regressions). Release note sprint confirms final preparation.
  • Resource hooks & immutable resources (#24164) — evaluate if custom resource-change-detection wrappers can be replaced by built-in hooks after 0.19 upgrade.
  • Tileset grid support (#24132) — if any project uses tilemaps or sprite sheets, evaluate ImageArrayLayout for grid workflows.
  • OpenType font variations (#24088) — if any project needs variable fonts (weight/width/slant axes), this is now supported in 0.19.
  • Directional light shadow caching fix (#24199) — if any project uses directional light shadows, verify stale-cache bug is resolved after upgrade.

2026-05-10 watchpoints

  • 0.19 at 98.8% — still not released. 418/423 closed, 5 open. Merge train slowed to one trivial PR (#24214). Release remains imminent but milestone scope expanded by 2 new issues.
  • Action: Continue monitoring main branch; 0.19 could ship any day. No code changes needed today.

2026-05-11 ~ 2026-05-13 watchpoints

  • 0.19 at 98.1% — release gated on GPU culling revert. 423/431 closed, 8 open. The biggest variable is #24252 (revert GPU visibility range culling). If it merges, 0.19 could ship within 24-48 hours.
  • Shadow flickering fixed (#24216, JMS55, May 12). Windows 11 Vulkan users will no longer see one-frame shadow flicker after minimize/restore. If any project was observing this, verify after upgrade.
  • No urgent action items for ZoOL’s projects from this 3-day window. Continue monitoring main branch for 0.19 release.

How to use this page

  • Keep high-level project status here.
  • Create separate entity/query pages when a project accumulates substantial notes.
  • Link reusable technical lessons back to bevy-game-development.
  • Keep upgrade-sensitive notes summarized in bevy-migration-notes.

2026-05-16 watchpoints

  • 0.19 milestone: 434/445 (97%), 11 open. Post-rc.1 freeze continues. Only 1 PR merged since May 14 (#24243 Solari BRDF — no user-facing impact). No rc.2 yet.
  • No action needed for ZoOL’s projects. The Solari BRDF fix is rendering-internal; none of ZoOL’s current projects use the path tracer directly.
  • **Watch 24309 — if your blog posts mention .bsn file format support, add a note that only bsn! macros are available in 0.19.

2026-05-21 watchpoints

  • 🚨 rc.1 blockers 全部解决 — #24282(编译失败)、#24279(crates.io 命名冲突)、#24352(2D 崩溃回归)均已修复。rc.2 应很快发布。
  • 2D 项目安全 — #24359 修复了 #24352 的 2D/non-PBR 崩溃。无需 bevy_pbr workaround。
  • bsn! 支持 const/unsafe — #24336 合并。如果 BSN 场景中需要 const 表达式或 unsafe 操作,现在可以直接使用。async 不支持(类型系统限制)。
  • Resource derive 支持 require — #24322 合并。如果 Resource 需要依赖其他组件,可以在 derive 时使用 #[require(...)]
  • 0.19 milestone: 448/457 (98%), 9 open. 从 15 open 降到 9 open — 6 个修复。距离发布非常近。^[https://github.com/bevyengine/bevy/milestone/40]
  • 无紧急行动项。 等待 rc.2 后做最终集成测试。

BSN 知识汇总

  • BSN (Bevy Scene Notation)是 Bevy 0.19 落地的声明式场景语法层,与底层的 SceneComponent / Scene 补丁系统构成四大支柱之一。
  • bsn! / bsn_list! 宏用声明式语法替代命令式 commands.spawn((...)),典型场景如简单按钮可从 ~20 行缩减到 ~5 行。
  • :Entity 继承语法(如 :button("Ok"):PlayerSceneComponent derive)允许组件自带出厂配置,子实体和附加组件在 spawn 时自动展开。
  • BSN 0.19 子集的局限:不能导出/序列化为 .bsn 文件(等 0.20);GLTF 场景加载仍需旧的 WorldAssetRootbsn! 宏可能导致 debug symbol 膨胁(已有优化 commit)。
  • 决策树:纯 UI/2D 原型可用 main 分支尝鲜;需要编辑器/资产管线/GLTF/MOD 的项目继续用 bevy_world_serialization,等 0.20 。