I feel like the LOD system should include noting when picking. It would make smaller thing's like grass disappear when faraway. But to make sure big things that are thin don't disappear if 4 or more of the voxels are not nothing then don't include it as if this is not done it is likely to make thin things like walls disappear. This might also make the world smoother but I'm not sure.
Great work on this! I've really been enjoying watchin this series since I found it. You might want to watch the talk "Greedy Meshing Voxels Fast" by Davis Morley, specifically for the final optomization he made where he used a "global lattice" (though you would probably still want to LOD the lattice for performance reasons, or possibly fall back to cached regular meshing for coarser LODs).
Thanks. I actually saw the performance kind of go down after adding LOD because of how many times I have to update the meshes and the time it takes to turn the octree into a mesh... rip. I could split the world into more meshes and make each mesh smaller but that also comes with problems. I'm making a custom renderer now so I probably won't even need LOD anymore. The octree I made will still be useful tho so it's not all wasted.
There's that old open source FPS engine called Cube2 that uses octrees for maps (making real-time map editing possible and in theory real-time destruction although the latter wasn't ever coded into any games running on it - theoretically possible though). Might be worth taking a look to see what can be done with octrees. Just a warning, it's a GPL engine so if you want to keep your engine closed, don't use any code from it verbatim.
I was planning on building a open source world infastructure game using voxils where you can build infastructure, and this was how I was going to implament it. This was very cool to see :)
what are you planning for skill based gameplay and player customization some other things: patch the missing faces when destroying add noise to the terrain boarders (like snow on mountains) make the hp and stamina regen pause for 0.5-1 second after lowering, then slowly increase the regen the longer it goes without lowering re-add the fog
I saw that you started on a raycaster? wouldent it work if you implemented something like a voxel space engine (you know those old 2d renderers" as the furtherest "lod", they are super fast and would allow for semingly infinite render distance. You could also create some simple upscaler (if you whant smoother worlds) interpolation might be fine i dont know.
Thanks ! I guess it has some things in common with nanite but nah. Next video tho I'm showing my raytracer and I think it might be kinda like nanite, or at least the result might be.
You could consider using ray marching or cone tracing instead of ray tracing. As far as i understand, ray marching could give really good performance at the cost of only being able to make simple shapes, but in a voxel game that's not a problem. Regardless, good luck on your project, voxel devlogs are fun to watch.
Thanks ! I already started implementing my solution and tbh I'm not sure if it would be considered ray tracing, ray marching or something else but it works so I'll take it haha
Wow i am also starting my programming journey (kinda i used scratch for 4 years and am only starting text based languages now ) and this is really impressive if you know how difficult it would be to make. btw what did you use to make it (like which language and did u use unity or something else)
Yes it's a big challenge. I hope your programming journey goes well ! I started this project using C++ and OpenGL and then remade it in Rust and Bevy which I still use right now. I wouldn't recommend a beginner to do something like this but if you want to, I would definitely say to start with unity. I've seen a few videos of people that made pretty similar things in Unity so it's possible and it would help you get started. Good luck and have fun !
@@happygofishing Maybe lol but if I release the current source you probably couldn't understand anything because of how messy it is. There's still a lot of old code I don't use anymore and commented code in there
you should probably separate the meshing and rendering onto separate threads.
I feel like the LOD system should include noting when picking.
It would make smaller thing's like grass disappear when faraway.
But to make sure big things that are thin don't disappear if 4 or more of the voxels are not nothing then don't include it as if this is not done it is likely to make thin things like walls disappear.
This might also make the world smoother but I'm not sure.
Pig getting rekt at the beginning is awesome
Max! This is engine is really shaping up nicely! Love from Toronto, Canada!
When your fishing boss looks at you, you better look e-fish-ent.
please add a fish or i will die.
This is phenomenal! Im not sure my game would implement octrees very well, but it looks great in yours
Great work on this! I've really been enjoying watchin this series since I found it. You might want to watch the talk "Greedy Meshing Voxels Fast" by Davis Morley, specifically for the final optomization he made where he used a "global lattice" (though you would probably still want to LOD the lattice for performance reasons, or possibly fall back to cached regular meshing for coarser LODs).
This is awesome! Loving the progress you're making.
Fantastic! Good luck with the ray tracing and sorting out the optimisation.
the raytracing shader is actually really easy for rendering. the hard part is sending octree data to the gpu.
Nice to see the progress! LOD is bound to increase your performance.
Also, how about adding biome blending so the edges aren't so sharp?
Thanks. I actually saw the performance kind of go down after adding LOD because of how many times I have to update the meshes and the time it takes to turn the octree into a mesh... rip. I could split the world into more meshes and make each mesh smaller but that also comes with problems.
I'm making a custom renderer now so I probably won't even need LOD anymore. The octree I made will still be useful tho so it's not all wasted.
There's that old open source FPS engine called Cube2 that uses octrees for maps (making real-time map editing possible and in theory real-time destruction although the latter wasn't ever coded into any games running on it - theoretically possible though). Might be worth taking a look to see what can be done with octrees. Just a warning, it's a GPL engine so if you want to keep your engine closed, don't use any code from it verbatim.
I was planning on building a open source world infastructure game using voxils where you can build infastructure, and this was how I was going to implament it. This was very cool to see :)
I must subscribe.
what are you planning for skill based gameplay and player customization
some other things:
patch the missing faces when destroying
add noise to the terrain boarders (like snow on mountains)
make the hp and stamina regen pause for 0.5-1 second after lowering, then slowly increase the regen the longer it goes without lowering
re-add the fog
New voxel engine video wooo!!!!!
I was not expecting that lol 1:54
you could also make it a sparse voxel octree
I saw that you started on a raycaster? wouldent it work if you implemented something like a voxel space engine (you know those old 2d renderers" as the furtherest "lod", they are super fast and would allow for semingly infinite render distance. You could also create some simple upscaler (if you whant smoother worlds) interpolation might be fine i dont know.
3:45 why does it say Go not GB
Yoooo, HYPED for the next vid FRFR bro. Btw, did you actually make nanite from scratch because Dayumm.
Thanks !
I guess it has some things in common with nanite but nah. Next video tho I'm showing my raytracer and I think it might be kinda like nanite, or at least the result might be.
it is kinda similar to nanite in that it uses oct tree instead of clusters (clusters are unneeded for voxels anyway)
You could consider using ray marching or cone tracing instead of ray tracing. As far as i understand, ray marching could give really good performance at the cost of only being able to make simple shapes, but in a voxel game that's not a problem. Regardless, good luck on your project, voxel devlogs are fun to watch.
Thanks ! I already started implementing my solution and tbh I'm not sure if it would be considered ray tracing, ray marching or something else but it works so I'll take it haha
maybe an sdf?🤔
Wow i am also starting my programming journey (kinda i used scratch for 4 years and am only starting text based languages now ) and this is really impressive if you know how difficult it would be to make. btw what did you use to make it (like which language and did u use unity or something else)
Yes it's a big challenge. I hope your programming journey goes well !
I started this project using C++ and OpenGL and then remade it in Rust and Bevy which I still use right now. I wouldn't recommend a beginner to do something like this but if you want to, I would definitely say to start with unity. I've seen a few videos of people that made pretty similar things in Unity so it's possible and it would help you get started. Good luck and have fun !
@@MaxMakesGames thanks!
source code release?
It's really messy so I don't think so but maybe I'll try to release some parts of it one day or like little demos showing systems used in this project
you will have probably rewritten it another 6 time by then@@MaxMakesGames
@@happygofishing Maybe lol but if I release the current source you probably couldn't understand anything because of how messy it is. There's still a lot of old code I don't use anymore and commented code in there
quebec spotted
Add a few octaves and stuff to the noise gen so it doesn't just look like lumps.