Alright, that's all 12 PRs for #bevy that were ready this week. 12/12 on mergeability, which is always really nice.
In case you missed it, I *just* wrote a post about how Bevy's community review and merging process works! If you found this interesting and want to know a bit more about the details, give it a read :)
https://www.leafwing-studios.com/blog/triage-by-controversy/
#לוגמשחק_שבול
עשיתי שאפשר למקם את האובייקטים השונים על ידי לחיצה על קליק שמאלי בעכבר, והוזפתי צבעים
משחק
https://tmanon.github.io/learn_sandbox_proto
גיטהאב https://github.com/Tmanon/learn_sandbox_proto
#לוגמשחק_שבול #פיתוח_משחקים #bevy
#bevy's Assets v2 PR by @cart is merged! This is a wholesale rewrite of our asset handling system, taking into account the things we've learned over the past few years and the real need of serious #gamedev professionals.
It's been exciting to watch, as the community has helped him refine the core design, discover problems and requirements, and polish it up to a basically usable MVP. Asset preprocessing and dependencies!
Requirements: https://github.com/bevyengine/bevy/discussions/3972
The PR: https://github.com/bevyengine/bevy/pull/8624
Happy to share our upcoming Sudoku app led to another upstream fix, this time for #winit: https://github.com/rust-windowing/winit/pull/3083
Using a subset of the ASTER digital elevation model to deform the geometry of a sphere. Obviously its extremely exaggerated, but everything appears to line up!
This little pet project has taught me an awful lot more about geodetic systems, trig, and geometry than I ever learned in school.
#rust #gamedev #gis #nasa #geography #bevy
Announcing the coherent trackball camera plugin for #bevy. It uses an alternative technique based on the exponential map to induce intuitive camera rotations from mouse and touch inputs. You can try the Wasm/WebGL examples in your browser.
#bevy #bevyengine #gamedev #rustlang
Phew, I think that may have been the biggest #bevymergetrain of all time. Thanks a ton to all of the contributors, issue openers and reviewers to #bevy, it's remarkable to see the impact that some focused work from even a single individual can have over time.
Thanks for following along; I'll see y'all next week!
Hat tip to @alfredbaudisch for pointing me towards this cool proposal for some new scene/UI composition bits in #Bevy. A hot-reload-enabled, high-level scene description DSL on top of lower-level Bevy ECS code feels very exciting to me.
@cart has a really interesting comprehensive proposal about the future of #rust #ui in #bevy.
Some really interesting ideas there: a custom unusually terse scene format, data-driven UI definitions, unification between UI and gameplay scenes, hot reloading, reactivity and much more.
Great to see such heavy inspiration from the extensive community experiments!
#bevy, I would like to modify a #mesh by adding and deleting vertexes.
If I have a mechanism to add a vertex and edges on the outside of a shape and drop orphaned vertexes on the inside of the shape.
Is there a (comprehensible) way to update the index if we modify a `Mesh` in the above way?
I think this amounts to a "patch"; there's always some simplest way to represent the change. Is there such a thing?
Call me out if I make no sense.
General schooling and tips also appreciated!! ;-)
So #bevy has so many wonderful examples, but when you're looking for something simple in rendering, all of the examples tend to look way more complex than what you need. So I decide "naw, none of these are it", so I went and read a bunch of code & examples and wrote my own:
https://gist.github.com/dmlary/3822b5cda70e562a2226b3372c584ed8
Then some of the rendering people in the discord directed me to the post-processing example, and after understanding things I saw it was what I needed. Learning is great! (and updated my gist)
But as a break from the tile editing, I decided why not implement an infinite hex-grid shader in #bevy; I'm gonna need it eventually, right 🤷♂️.
So I started with looking at bevy_infinite_grid: https://github.com/ForesightMiningSoftwareCorporation/bevy_infinite_grid
Ok, very much in over my head. Went looking for a very dumb example of running a shader in bevy. No uniforms, no craziness, just let me act like this is shadertoy.
After three implementations (minimum to make something not cruft) I got saving & loading working. Also got layers working too!
The level editor finally hit a place where it was minimally functional, so I shared the code as reference for how to do a bunch of things in #bevy
At this point I took a few steps back and reconsidered what I was doing. I realized I shouldn't be saving #bevy Components for a map editor. This is a generic editor for the moment so I can learn things. The output should be a fixed format, not whatever trash I happen to have in my components at the time (there's a lot; you'll see).
So I took another approach:
Take the entities in the world and construct an intermediate Map representation, and serialize that.
I did this research into #bevy reflect internals because I started doing load/save with `bevy_save`. I was misuing it to generate multiple save files in user-specified locations. It gave me a good jumping off point, but ended up being a dead-end.
`bevy_save` deserialization is done via reflection. Right now every type (even nested types) must be registered with bevy_reflect for this to work. I also hit some Hash reflect headaches too.
Both of these have open PRs, so they'll be resolved.
Went down the rabbit-hole of #egui & #bevy. Managed to get something "functional", but it was utterly unmaintainable code. I built a tileset palette and was able to draw on screen, but it was limited in how I was using egui.
Code for the tileset picker: https://gist.github.com/dmlary/05d79ee097a3e4011655ead624b633bd