Simple question, would a game that uses a voxel art style (3D models made up of little cubes) work in godot? Would it cause severe performance issues? And for animations can I use blender rigging and somehow import those animations or should I do frame by frame animations? There will not necessarily be voxel terrain creation, maybe minor destruction of certain objects. The terrain will be just like 3D terrain like Minecraft but the cubes are smaller. Would this cause lag?
Voxel Art Style Game
- Edited
flame-cube Depends on how many voxels you need to process per frame. A lot of iteration in gdscript may nor perform ideally but you can always delegate performance critical parts to threads (so they are not frame bound) or do it in C# or in C++ via gdextension.
flame-cube would a game that uses a voxel art style (3D models made up of little cubes) work in godot?
no, godot is not optimized for that nonsense. you can do it yourself by creating the mesh every time a part is changed (in gdscript), which would work if the model doesn't change outside of maybe editing.
flame-cube Would it cause severe performance issues?
the problem with voxels is that godot is optimized to work with individual meshes and skinned meshes. a voxel works by repetition of simpler shapes. multimesh is also not an option because it doesn't do occlusion culling.
BUT, you can make a model in blender with the STYLE, and as long as it's hollow, with only the outside faces visible, and combined into a single mesh, there will be no problem for godot to render it as a single mesh.
the number of faces that can be rendered is not really an issue for a modern GPU, the problem is sending them to the GPU from the program. this is because of modern rendering methods that let the GPU handle most of the work.
flame-cube And for animations can I use blender rigging and somehow import those animations or should I do frame by frame animations?
you can rig a model that has a voxel STYLE and a simple skeleton, but you can't animate the individual voxels in godot, and using that many bones would not be good.
flame-cube There will not necessarily be voxel terrain creation, maybe minor destruction of certain objects.
destruction and creation are the same. but if we are talking about individual objects, that becomes more plausible, but still depends on the complexity. you could turn a voxel into a bunch of cubes by removing the main mesh and adding cubes, but it would not work for only a part of it.
flame-cube The terrain will be just like 3D terrain like Minecraft but the cubes are smaller. Would this cause lag?
again, it doesn't matter if it's big or small, but the number of cubes. do the math.
a 16x16x16 voxel would be 4096 cubes. half if you only render the surface.
but if those are instead faces of a single mesh, godot will be able to render them with no problem, but you won't be able to edit it without a lot of code.
I was planning on making the models in blender yes. Another problem is that for terrain I would have several large objects. My world is a large ocean with a massive main continent and many islands. To not cause lag I obviously cannot load them all at once. Should I build larger landmasses in chunks? And how can I implement render distance and LODs? Also I’m sure there’s a better way of making an ocean than just having a massive blue slab
flame-cube didnt godot use automatic LODs? THere was a way to specify lod leves. I remember seeing tutorials