Skip to content

Implement dynamic BSN (.bsn asset format)#23576

Draft
pcwalton wants to merge 1 commit intobevyengine:mainfrom
pcwalton:dynamic-bsn-2
Draft

Implement dynamic BSN (.bsn asset format)#23576
pcwalton wants to merge 1 commit intobevyengine:mainfrom
pcwalton:dynamic-bsn-2

Conversation

@pcwalton
Copy link
Copy Markdown
Contributor

This is a work-in-progress, but I'm submitting it to get early feedback.

@pcwalton pcwalton added A-Scenes Serialized ECS data stored on the disk C-Feature A new feature, making something new possible labels Mar 30, 2026
@alice-i-cecile alice-i-cecile changed the title Implement dynamic BSN. Implement dynamic BSN (.bsn asset format) Mar 30, 2026
@alice-i-cecile alice-i-cecile added M-Release-Note Work that should be called out in the blog due to impact S-Needs-Review Needs reviewer attention (from anyone!) to move forward D-Complex Quite challenging from either a design or technical perspective. Ask for help! labels Mar 30, 2026
@github-actions
Copy link
Copy Markdown
Contributor

It looks like your PR has been selected for a highlight in the next release blog post, but you didn't provide a release note.

Please review the instructions for writing release notes, then expand or revise the content in the release notes directory to showcase your changes.

@alice-i-cecile alice-i-cecile added this to the 0.20 milestone Mar 30, 2026
@pcwalton
Copy link
Copy Markdown
Contributor Author

pcwalton commented Mar 30, 2026

It was pointed out that we could try to share the Bsn and BsnEntry structures. The problem with that is that those structures are singly linked and we can't refer to individual pieces within them easily. That will cause problems because we want editors to be able to maintain bidirectional links. Perhaps we could make the Bsn tree use a World? It would mean that bevy_scene2_macros would have to depend on bevy_ecs so that it can make a World, but that should be doable?

@cart Would appreciate your feedback here.

@pcwalton
Copy link
Copy Markdown
Contributor Author

cart mentioned on Discord that he prefers the design of this PR, where we have our own AST, parser, and lexer, because (1) it makes the differences, which are significant, between macro-BSN and asset-BSN more manifest and (2) because having a custom parser and lexer is less code to ship at runtime.

@cart cart moved this to Focus in @cart's attention Mar 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-Scenes Serialized ECS data stored on the disk C-Feature A new feature, making something new possible D-Complex Quite challenging from either a design or technical perspective. Ask for help! M-Release-Note Work that should be called out in the blog due to impact S-Needs-Review Needs reviewer attention (from anyone!) to move forward

Projects

Status: Focus

Development

Successfully merging this pull request may close these issues.

3 participants