New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Major Overhaul for the Bevy 0.5 Release #33
Conversation
Alright, I read through the ECS section, and here's my review (if some of this stuff is just not done yet, then just ignore it :) )
|
I wasn't aware that this problem was already solved! Could you point me to an example or help me write one?
WIP
Yeah, the wording can be better. I will address your comments. :)
I should probably move them into their own separate page under the "Advanced" section, rather than introducing them on the same page alongside basic queries.
Will do. Never personally seen that syntax, so I'm gonna have to go find it / look it up. |
Also, could someone help me with Run Criteria Labels? After searching through bevy api docs, I could not figure out how they are meant to be defined and used. I am not sure i understand them. I presume they are for the use case of reusing the same run criteria in multiple system sets? I know that a run criteria can be added to a system set, by adding it as a system. If using labels, where would they be defined, and how would they be used? Where can I find out more about this stuff? |
I used them to implement states, you should be able to find examples there. Using them to emulate closures should probably be under advanced patterns |
As a heads-up, you should probably update the page on generic systems to explain how they don't out-of-the-box with labels (see bevyengine/bevy#1497) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When talking about which Types are allowed in a System I would make two additions:
- Directly mention that the type needs to implement
SystemParam
- Structs that derive
SystemParam
and are only made of such Types are also valid.
I will merge this tonight (say, in ~6 hrs). Please provide any additional feedback you may have, until then. If there is any wrong or misleading information, please let me know. This is the most important type of feedback. If it is something with the wording or specific content, I'd prefer if you use the github review functionality to leave comments on the diff. If it is a missing feature / something left un-addressed, I'd prefer if you file a separate github issue, so that I can decide whether to address it here in this PR, or leave it for later. |
This can also be done very nicely with states. They are, of course, built out of Looping Run Criteria, but that's likely not obvious. |
This is not a great explanation. Added also triggers when you create a new entity with those components. Changed is also triggered whenever Added is. |
Outside of exclusive systems. |
(circular deps)
I actually struggle to imagine how the problem would be solved using states. I can easily imagine how to solve it using looping run criteria directly. That's why I wrote that statement like that. For now, I simply noted it, but if you could file an issue with some example or something to show me how it would actually be done, I'd consider expanding that section in the future. (change detection)
OK, I agree, I expanded that part to clarify. Also explicitly clarified the reliable nature of the new change detection 😄 (as you suggested in #45 ) (applying commands)
But exclusive systems are tied to stages anyway (afaik they have to run at the start or end of a stage), so it is effectively the same thing in practice (as in, you still need to understand and work with stages to control commands application). I think I'm gonna leave that as it is right now. This could be addressed in the future when I make the page about exclusive systems and direct world access. |
Creating this PR as a place for any feedback and review, if anyone from the community has any comments about the new version of the book that I am working on for the new Bevy 0.5 release.
Click here to read the rendered version of the new book.
The new version has major changes and significant reorganization. Many pages have been partly or entirely rewritten. I have tried my best to address any confusion that I noticed people in Discord running into, and to generally make the book a better introductory experience for people new to bevy.
If you have the time, I would really appreciate it if you could try to put yourself in the shoes of a bevy beginner and try to "learn from the book" (by reading the chapters/pages on introductory topics, etc.), and provide feedback on what that feels like.
New chapter structure:
Introductory pages on the basics of ECS have been expanded with extra text, to help teach users unfamiliar with the ECS paradigm. Most other things have also been expanded with more detail to help teach new users.
"Bevy Programming" pages have been revised to make explanations clearer and to better recommend good practices. I've tried to limit such recommendations to common confusions about the ECS paradigm, because I believe that these introductory chapters should be as unopinionated as possible.
Entirely new pages:
Pages with major rewrites or new content:
Addressed Issues:
not Page about working with GLTF in Bevy #2Meta organizational changes:
next
branch is the place for any work to cover new developments, in preparation for the next bevy release. It will stay published at the URL above.