10 Challenges for Bevy UI Frameworks #11100
Replies: 6 comments 12 replies
-
I really like the idea of a set of "game UI" examples to benchmark UI solutions. It's much better than 7GUIs as it's specialized for desktop apps, or even just the bevypunk example we've been going with for a while… Thank you for taking the time to write this down. I'll definitively try to implement them in cuicui. Can we add an additional criteria on (2)? I would like to see tooltip on hover. It seems like a reasonable thing, and it's how it works in Minecraft. |
Beta Was this translation helpful? Give feedback.
-
here's my implementation for challenge 1 using
what follows is some assorted information/thoughts about
|
Beta Was this translation helpful? Give feedback.
-
here's my implementation for challenge 2 using video
haalka_challenge02.mp4
misc notes
all thoughts and criticism are welcome and appreciated :) |
Beta Was this translation helpful? Give feedback.
-
Thanks for starting this, it seems like a great idea and I look forward to more submissions. I am looking at this from a user perspective, not a Bevy dev. There has been only 2 submissions so far from the same dev, but it would be very beneficial for me as a user to have a clear separation between what is the code that the users will need to write vs what is the code provided by the framework. I know that for the evaluation from a Bevy dev perspective both are very important, but a clear demarcation between the two would help looking at the challenges from a Bevy user point of view too (eg: as I user I just want to know how to place and style a Is this something that could be added to the general evaluation rules? |
Beta Was this translation helpful? Give feedback.
-
here's my implementation for challenge 4 using video
haalka_challenge04.mp4run the challenge by cloning the repo and doing
misc notes
|
Beta Was this translation helpful? Give feedback.
-
My Challenge 1 Implementation for using Rxy UI https://github.com/ycysdf/rxy_ui/blob/main/examples/game_ui_challenges/game_menu.rs |
Beta Was this translation helpful? Give feedback.
-
In the past few months, there has been a lot of ongoing development in the Bevy UI space.
Some examples of active projects:
bevy_ui
kayak_ui
bevy_dioxus
bevy-lunex
cuicui
belly
bevy_egui
These projects cover vastly different approaches on how to design and manage your UI. This makes it increasingly harder to maintain an overview of the project's capabilities and to compare them among each other.
To this end, I propose a set of 10 UI challenges, which we can try to implement in each framework. This should give us a rough overview of what's easy and what's hard to do in which plugin, as well as giving us roughly comparable examples of implementation code.
I tried to select the challenges with these criteria:
However, I must make the following disclaimers:
If you are a developer of a Bevy UI framework, feel free to take on any of these challenges, implementing them as an example to your library. Then you can create a comment on this post, linking to the code and ideally with a screenshot/video showcasing how it looks like.
If you want you can also add an analysis of which points were easy and which ones hard to implement in your framework!
Challenges
1. Game Menu
Motivation
Menus are needed for almost every game.
Here we can showcase basic input functionality like buttons, sliders, and dropdowns.
Acceptance Criteria
2. Inventory
Motivation
Inventories are also important in a broad range of game genres.
This can be used to test drag and drop, as well as a combination of image and text elements.
Furthermore, a tooltip implementation is tested.
Acceptance Criteria
3. Health Bar
Motivation
Again, widely used feature in multiple genres.
Uses world-space UI and an information flow from the game to UI.
Acceptance Criteria
4. Responsive Menu
Motivation
A combination of responsive design, for games which need to save multiple display sizes and formats. And nine-patch UI, which is a common styling solution in games.
Acceptance Criteria
5. Character Editor
Motivation
This example showcases how a 3D scene can be integrated in the UI as well as having an information flow from UI to 3D scene.
Additionally, we feature a simple text input and a scroll box.
Acceptance Criteria
6. HUD
Motivation
Needed in many games.
Showcases how UI can be overlayed on top of 3D scenes and how it can be aligned in the different corners.
Acceptance Criteria
7. Bug Report Form
Motivation
This example might not be as widely applicable, but showcases complex text input.
Acceptance Criteria
8. Scoreboard
Motivation
Another commonly used UI element, which features a grid layout and a mix of images and text.
Acceptance Criteria
9. Dark/Light Theme
Motivation
Having theming options makes it easier to adjust the design of the UI at later stages of the development, avoiding hard-coding the style properties.
Acceptance Criteria
10. Design Specification
Motivation
Most of the other example feature on widgets and features, but of course styling is a major part of UI.
In this challenge, a design specification should be followed as closely as possible.
Acceptance Criteria
I didn't find a good open source design specification yet, please let me know if you find one!
Beta Was this translation helpful? Give feedback.
All reactions