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 newmulti_threadedpropagation path. - If a project has internal tools, text fields, or editor-like workflows, test whether
bevy_clipboardcan 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_foldertogether 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_folderdeadlock is FIXED (#23980). The previously reported deadlock when using hot folder reload with file watching has been resolved. If a project was avoidingload_folderdue to this bug, it’s safe to re-enable after upgrading to 0.19.FocusGainedhas a newFocusCausefield (#23993). Any project that pattern-matches onFocusGainedevent fields needs to update for the newFocusCauseenum. 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
VisibilityRangefor LOD transitions, test the fix when it merges — shadows currently pop when camera rotates. - GhostNode fix (#24001) pending. If any project uses
GhostNodefor 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_sceneexample. - 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 plaincommands.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::cursoris nowOption<(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_resourceto overwrite initialized resources. UseStartupsystem +ResMutinstead.
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_sceneregression 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 tobevy_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
WindowEventvariants 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_neqcan 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
DisableWhenetc. 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_cursorreferences.- 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 toLightProbesUniformbefore 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_clampedmethod enables direct curve sampling. First step toward root motion.- RenderVisibleEntitiesClass public (#24180) — if any project uses
bevy_mod_outlineor 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
ImageArrayLayoutfor 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
.bsnfile format support, add a note that onlybsn!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_pbrworkaround。- 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")或:Player加SceneComponentderive)允许组件自带出厂配置,子实体和附加组件在 spawn 时自动展开。- BSN 0.19 子集的局限:不能导出/序列化为
.bsn文件(等 0.20);GLTF 场景加载仍需旧的WorldAssetRoot;bsn!宏可能导致 debug symbol 膨胁(已有优化 commit)。- 决策树:纯 UI/2D 原型可用 main 分支尝鲜;需要编辑器/资产管线/GLTF/MOD 的项目继续用
bevy_world_serialization,等 0.20 。
Related pages
- bevy — Bevy engine/entity hub.
- bevy-game-development — Bevy/Rust game-development concepts and project practices.
- bevy-game-dev-2026-05 — May 2026 engine changes and tracking.
- bevy-migration-notes — Current watchlist and April 2026 migration notes.
- bevy-migration-2026-05 — May 2026 migration-sensitive changes.
- bsn — Bevy Scene Notation 概念笔记