MVP content for new book
Before we ship the current draft of the new book, I would like to have a) a complete replacement for all of the existing book content b) an overview of the major ECS features. The existing chapter structure is solid, but it is convenient to track the outstanding writing to be done here:
Data storage:
- [ ] World, very incomplete
- [ ] Queries, currently just a stub
- [ ] Disabling entities, no content, probably the wrong home for it?
Control flow:
- [ ] Handling Errors, no content
- [ ] Events, no content, blocked on event trait overhaul
- [ ] Observers, no content, needs reorganization
- [ ] Hooks, no content
Game loop:
- [ ] Input and windowing should be cut from MVP or given minimal content
- [ ] Rendering frames needs opinions on whether to keep or cut for MVP
- [ ] Custom loops needs short content talking about custom runners
Development practices:
- [ ] Fast compiles port existing content
- [ ] most other sections can / should be cut for MVP
Releasing projects:
- [ ] creating libraries for Bevy, should be moved from existing home buried in the bevyengine/bevy/docs
- [ ] cut everything else from MVP
Other chapters (audio, rendering, input etc) are solidly out-of-scope. We would like to add them later, but they should not be written yet, because they will draw resources away from shipping something valuable and achievable.
I would cut the Disabling chapter entirely. However, I am biased here: I think the Disabled component is a blunt instrument which requires expertise to be able to use well (as opposed to more selective disabling techniques like Visibility::Hidden, Display::None, layers, InteractionDisabled, or whatever Avian does to disable things - these have the benefit of having more predictable consequences).
I would split input and windowing into separate chapters. I think input is particularly important, whereas for most new users window stuff is just cut & paste from the examples.
Rendering frames seems like advanced stuff, more deep dive material for engine maintainers. After 3 years of working with Bevy, I have never needed to know about the render world or extraction.
One thing you didn't list is fixing links: there are several chapters where the hyperlinks need to be filled in. Also, the "States" chapter has a few sections at the bottom that haven't been filled in (like computed states).
Alternatively, if you really want to talk about disabling, then I would expand the scope of the chapter to talk about all of the ways you can disable an entity - with the Disable marker being the one of last resort.
Also, I would seriously consider adding a "Beyond Bevy" section at the very end that talks about resources outside of the Bevy engine proper. This would include links to the most important documentation sites and third-party crates.
One thing you didn't list is fixing links: there are several chapters where the hyperlinks need to be filled in. Also, the "States" chapter has a few sections at the bottom that haven't been filled in (like computed states).
Cleanup will be tracked in a different issue :)
Alternatively, if you really want to talk about disabling, then I would expand the scope of the chapter to talk about all of the ways you can disable an entity - with the Disable marker being the one of last resort.
I'm going to mention it briefly in the section on queries.
Also, I would seriously consider adding a "Beyond Bevy" section at the very end that talks about resources outside of the Bevy engine proper. This would include links to the most important documentation sites and third-party crates.
Out of scope.
I would split input and windowing into separate chapters. I think input is particularly important, whereas for most new users window stuff is just cut & paste from the examples.
Also out of scope.