Skip to content

UI Central Dogma and A High-Level Compositional Design#22

Closed
alice-i-cecile wants to merge 4 commits intobevyengine:mainfrom
alice-i-cecile:ui-central-dogma
Closed

UI Central Dogma and A High-Level Compositional Design#22
alice-i-cecile wants to merge 4 commits intobevyengine:mainfrom
alice-i-cecile:ui-central-dogma

Conversation

@alice-i-cecile
Copy link
Copy Markdown
Member

RENDERED

This meta-RFC lays out a vision for work to be done to achieve a complete solution for bevy_ui. By breaking the problem down into a central dataflow and many competing UI-like behaviors, we can create a modular design that can be designed, implemented and replaced in smaller chunks and reused in flexible ways for designs that straddle gameplay and "classical UI".

This is intended to be an extremely collaborative process: please comment and make pull requests aggressively.

This RFC contains several benchmark paper prototypes, intended to be designed and completed by community members to share their visions of what an ideal UI looks like. Feel free to submit yours in the appropriate section (in a collapsible section) regardless of how many you've completed or the status of your prototypes / RFCs.

P.S. This RFC uses the proposed lightly tweaked template from #21 to improve clarity <3

@B-Reif
Copy link
Copy Markdown

B-Reif commented Apr 27, 2021

@B-Reif
Copy link
Copy Markdown

B-Reif commented Apr 28, 2021

To expand on "external tools":

Data-driven
...
How do we interface with external tools, if at all?

A few developer tools to consider:

  • An inspection tool, like a browser's dev tools or the React devtools, can help for inspecting the current state
  • A changelog, like the Redux devtools, can help for inspecting app state and action history
  • A "headless" mode can help for testing without rendering

It's worth considering these kinds of tools when designing the API. For instance, these kinds of tools usually benefit from serializable state.

@alice-i-cecile
Copy link
Copy Markdown
Member Author

Two more examples I'd like to add:

  1. A sudoku grid: lots of subtle complexity there. Was completely infeasible under the current UI; see: User experience report: `bevy_ui` in Bevy 0.5 bevy#2235.
  2. A dynamically generated flow-chart. Very very useful for our editor.

Each example's unique challenges are defined, and then a detailed list of requirements is given.
Below that, we collect examples of alternative paper prototypes, labelled with the RFCs / approaches used.

TODO: add more benchmark prototypes from [#1974](https://github.com/bevyengine/bevy/issues/1974).
Copy link
Copy Markdown

@DavidVonDerau DavidVonDerau Jun 5, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants