Boolean operations in 3D are quite heavy. But fortunately, each wall can be represented as two 2D planes.
To determine which 2D shape I need to cut from the mentioned planes, I add a special plane in Blender with "Cutout" name. This is what The Sims series do.
And for all doors located on a wall I triangulate combined vertices using earcutr. The library API doesn't fit well with Bevy, but it does the trick.
Love #blender for #gamedev? Wish #bevy had an interactive scene editor? The @bevy community continues to make incredible things: dynamically generated UI to modify #rust data via reflection??
So after a lot of blood , sweat & tears (or coffee, debugging, and swearing ?) The first release of the tooling to add & edit #Bevy components in #Blender is OUT !!
You can now make an export of your registry, and have the Blender add-on generate a custom UI for you for all your (and Bevy's built in) components !
On the menu:
Today I released my first (two) #rust crates! 🎉
mesh_to_sdf generates a signed distance field from a 3D mesh and its client lets you visualize it to fine-tune the parameters (and more).
It's agnostic to your math library, so you start using it right now with #bevy#fyrox or your favorite math library / game engine.
Alright, Monday morning rolls around, so that means it's time for another round of #bevymergetrain. As the #bevy community prepare for the 0.13 launch of our #opensource#rust game engine, let's take a look at the community-reviewed PRs that are ready to merge!
#bevy Just made a youtube video on my first game in back to back weeks. It's not the best.(It's my first lmao). Will work on an actual game project in 2 weeks
Another #bevy#indiedev team has announced their game-in-progress, Architect of Ruin! Who said that #rust only has game engines ;) It's a fantasy colony survival game; looks a lot like Rimworld in terms of initial mechanics?
Brandon Reinhardt, the team lead, is actually a former coworker of mine, and I've taken a peek at this code base! Still very early, but I have a lot of faith in the team's ability to both design and ship a fun, interesting game :D
I just gave a introductory talk on reflection in #rust and #bevy for the inaugural unofficial Bevy meetup. The full talk and Q&A will be posted later (along with the great talks from my co-speakers), but for now, you can see the full slides with speaker notes! If you've ever wondered "what the fuck is reflection?", this is a fun digestible introduction!
If you want to hear a bit about how we implement and use reflection in #bevy for #gamedev, this is a nice approachable 15 minute talk with questions at the end!
I've been using #bevy 's SystemParam API a lot lately. Together with #rustlang GATs and the ECS it's very powerful.
It's easy to share behaviour while still being flexible on a case by case basis.
Adding content is easier, giving lots of depth to my game.
e.g.: To add a new Upgrade, I just specify which components to get from the ECS via SystemParam and a couple lines how to combine them, then use a generic system.
It speeds up adding a new Upgrade a lot, so I can implement more of them.
It was an interesting task and I learned a lot about how meshes are represented internally.
Initially I used 8 vertices for each wall. But then I discovered that if I needed a different color and normal for each side, then I needed a different vertex! So I reworked the mesh generation to make 20 vertices per mesh (for each side with no bottom).
To implement object buttons reloading when changing metadata files, I simply added a system that respawns buttons when metadata changes. Complete separate preview system automatically updates the image. So convenient.