Skip to content
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

Refactor nannou crate in terms of bevy and new bevy_nannou_* plugins #956

Open
mitchmindtree opened this issue Jan 18, 2024 · 0 comments
Open
Labels

Comments

@mitchmindtree
Copy link
Member

After the major plugin work is complete (i.e. #954, #955 and others introduced in #952), the idea is to simplify the nannou crate by wrapping bevy with our new plugins and removing all our custom application and event loop logic to ease nannou's maintenance burden.

The ideal goal is to enable an API as close as possible to the original in order to reduce breakage and churn around existing projects and examples.

This will likely require some consideration around the nannou::App and Frame types. We should review their uses throughout the examples to guide how we go about this.

"Sketches" and "Apps"

Most examples fall into two categories:

  1. Sketch (just a view function).
  2. App (model, update, view and occasionally other event functions).

We might want to consider only providing the short-hand for sketches, and for Apps which tend to be more sophisticated, encourage using a more standard bevy structure? This comes to mind as nannou Apps tend to be quite similar to bevy apps in structure, though strictly less flexible than the bevy modular system approach. All that said, it might still be worth providing a basic App wrapper to avoid having users need to think about bevy's resource system. It's wroth keeping in mind the more we wrap bevy with higher-level app abstractions, the more of a maintenance burden we'll undoubtedly add back into nannou.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Backlog
Development

No branches or pull requests

1 participant