2:44 Just a minor note here. The reason the CSG Boxes cause so much lag is because the polygons have to be recalculated when two CSGs are children of the same CSGCombiner and collide. If the CSG Boxes were to be parented differently (instanced differently under a Node3D, using different combiners, etc.) then they would pose no more overhead than using a Blender Mesh. CSGs are one of Godot's most powerful tools, and I'm glad they're getting the respect they deserve.
Good to know about the performance not being too much of a hit and that you can make hollow blocks... The problem I run into with CSG blocks is editing the UVs becomes a pain as it's only really designed to block out your level and lacks more advanced futures of a level editor, which is why I use Cyclops instead, but every once in a while the Cyclops blocks fail to create proper collision geometry, so I end up using CSG blocks as glue.
I've understand the reason, but I much prefer traditional method like Cyclops Level Builder. Adding a texture material to each individual faces, instead of whole set.
If you need, CSG to interact until a specific time, you can use the get_mesh() function to export the mesh data to an other mesh instance once the CSG interactions are finished. Then free the CSG instance.
csg are from my prespective great for simple map customize like for example, if you have a place where you don't want the player to get, you can place a csg box with invisible material there and its done, you dont need make it in blender, in blender you can just made complex structure of the map and before building you can with csg make some prototype test or make simple structures like walls and floors
Why prototype, with csg meshes? Why not just do boolean operators in blender and bring it in? I am assuming the prototype won't be in the main project. It's a waste of time. Either use csg meshes in what you want to make, or don't. If it's not animated, there is no reason to even use this in Godot. Sure there is a method for importing, even an animated geometry node mesh from Blender; but your mesh file will be so large, it'd take 5x (or more) longer to load w/e scene you put it in. Also if you consider csg meshes only for prototyping, what are you going to do for a final mesh? Do you intend on reinventing the wheel? Heaven forbid you need them animated.
Doing it in godot made it easier to test the level and edit it. Just use it to design the level. Then import it into blender to use as a base for creating its visual.
2:44 Just a minor note here. The reason the CSG Boxes cause so much lag is because the polygons have to be recalculated when two CSGs are children of the same CSGCombiner and collide. If the CSG Boxes were to be parented differently (instanced differently under a Node3D, using different combiners, etc.) then they would pose no more overhead than using a Blender Mesh. CSGs are one of Godot's most powerful tools, and I'm glad they're getting the respect they deserve.
If anyone new is reading this, Godot 4.4dev6 uses Manifold for CSG for better stability, less bugs, and possibly better performance.
I was coincidentally looking for a video explaining the pros and cons of CSG level making! Thank you so much!
Good to know about the performance not being too much of a hit and that you can make hollow blocks... The problem I run into with CSG blocks is editing the UVs becomes a pain as it's only really designed to block out your level and lacks more advanced futures of a level editor, which is why I use Cyclops instead, but every once in a while the Cyclops blocks fail to create proper collision geometry, so I end up using CSG blocks as glue.
I've understand the reason, but I much prefer traditional method like Cyclops Level Builder. Adding a texture material to each individual faces, instead of whole set.
If you need, CSG to interact until a specific time, you can use the get_mesh() function to export the mesh data to an other mesh instance once the CSG interactions are finished. Then free the CSG instance.
Great video as always
Good video, I was going to start using CSGs but didn't know what the performance cost was.
csg are from my prespective great for simple map customize like for example, if you have a place where you don't want the player to get, you can place a csg box with invisible material there and its done, you dont need make it in blender, in blender you can just made complex structure of the map and before building you can with csg make some prototype test or make simple structures like walls and floors
I found these by accident when trying to figure out 3d levels, and just thought the idea was to use them for blocking out anyway
hmmm... didn't realize they slow down performance when moving... maybe that's what's been lagging the platforming levels in my game...
Out of curiosity how come you used a CSG instead of just a simple shape like a rectangle?
@@theotherothersean you can do more complex stuff with it like you would with a 3D modeling software like blunder
well it is not really when there are moving but when there colliding with each other.
Can you make a video about godot networking and multiplayer?
0:52 when I do that , nothing happen , why ? And how I can fix that ?
A toilet 🚽 maybe ? 😂
you could use qodot but it's kind of a pain to work with
I guess there is cyclops as an alternative.
Or func_godot
Why prototype, with csg meshes? Why not just do boolean operators in blender and bring it in? I am assuming the prototype won't be in the main project. It's a waste of time. Either use csg meshes in what you want to make, or don't. If it's not animated, there is no reason to even use this in Godot. Sure there is a method for importing, even an animated geometry node mesh from Blender; but your mesh file will be so large, it'd take 5x (or more) longer to load w/e scene you put it in. Also if you consider csg meshes only for prototyping, what are you going to do for a final mesh? Do you intend on reinventing the wheel? Heaven forbid you need them animated.
Doing it in godot made it easier to test the level and edit it. Just use it to design the level. Then import it into blender to use as a base for creating its visual.
Boolean