Some friendly corrections: RefCell is not a reference counted pointer, it's actually a type that owns and lets you borrow the contents at runtime (Rc is the Reference Counted pointer). And Arc is not an asynchronous pointer, it's an *atomic* reference counted pointer.
It makes me want to go back to my frozen voxel project... :D Great devlog, have you managed to continue working on it? I don't really see commits in the repository. :( Anyway, keep it up! :)
I've done some work off and on for it but nothing published yet. I might come back to it in February to see how I feel about the choices I made months ago
I used the same networking setup I did for my renet tutorials. World state is handled by the master server which sends updates as full chunks currently. Def some room for future optimizations and better designs there though.
I've seen both terms used interchangeably (actually the Wikipedia for each link to each other in their openings) and both seem to be more linked to rendering than physics. Unity does call this function raycast though. The actual algorithms I used call themselves line drawing because I was taking advantage of the grid so it wasn't a general ray. But sure ray tracing invokes a more high end graphics notion than I was going for
Rust has a borrow checking memory management model instead of manual memory management like C/C++ or garbage collection like a scripting language. The borrow model gives tight guarantees on memory safety and excellent performance, but you pay for it with compilation time and having to structure your code in a way that satisfies the borrow checker. Rust also makes parallelization a first-class citizen that integrates heavily with the borrow mechanism. As long as your program compiles it should be memory safe and thread safe.
For me bevy is the easiest ECS to use and I believe in the data oriented massively parallel future for high performance programs (like games). If I wasn't in rust there's no way I would have this running on multiple threads but here I easily have safe chunk loading across threads. Also why not, it's just for fun
@@brain_frame but rust have awful compatibility between versions. This language always updates and break old projects unlike C, and this is the reason why C is the best language ever created. And C actually is faster then rust, sry, but true.
I'm so happy to see other share their voxel development journey. Hope to see more!
Thanks! Your channel was one of the first ones to point me to bevy! Love your content
YEEEES YEEEEEEEEEES, I'm at a similar adventure, hyped for this
so far this is looking pretty awesome!! i subbed can’t wait for the next devlog
Some friendly corrections: RefCell is not a reference counted pointer, it's actually a type that owns and lets you borrow the contents at runtime (Rc is the Reference Counted pointer). And Arc is not an asynchronous pointer, it's an *atomic* reference counted pointer.
Being new to Rust & Bevy I now have 6 tabs where I google concepts/methods you described. Thank you!
Would you be willing to do a tutorial series on this? Pretty hard to find good and recent 3d/multiplayer Bevy tutorials
It makes me want to go back to my frozen voxel project... :D
Great devlog, have you managed to continue working on it? I don't really see commits in the repository. :(
Anyway, keep it up! :)
I've done some work off and on for it but nothing published yet. I might come back to it in February to see how I feel about the choices I made months ago
yes
thanks for the source !
What all did you write for the networking features? Is it just state management or does the server run the simulation?
I used the same networking setup I did for my renet tutorials. World state is handled by the master server which sends updates as full chunks currently. Def some room for future optimizations and better designs there though.
Thanks for sharing
Thank you!
Nothing scuffed about all those if statements in your meshing algorithm. This is just how they end up looking.
Yeah it just always feels like there's some magical higher structure to it. I spent a good bit looking for a pattern that might not exist
YESSSSS
Bevy 0.10 tutorial please? Bevy does not have good docs, or updated tutorials!
I think it would be interesting to see how you can make something like terraria
You said about how you made custom ray _tracing_ for calculating which block you are looking at. This is the wrong term, you developed ray _casting_
I've seen both terms used interchangeably (actually the Wikipedia for each link to each other in their openings) and both seem to be more linked to rendering than physics. Unity does call this function raycast though. The actual algorithms I used call themselves line drawing because I was taking advantage of the grid so it wasn't a general ray. But sure ray tracing invokes a more high end graphics notion than I was going for
niceee ;D
why Rust?
Rust has a borrow checking memory management model instead of manual memory management like C/C++ or garbage collection like a scripting language. The borrow model gives tight guarantees on memory safety and excellent performance, but you pay for it with compilation time and having to structure your code in a way that satisfies the borrow checker. Rust also makes parallelization a first-class citizen that integrates heavily with the borrow mechanism. As long as your program compiles it should be memory safe and thread safe.
because its BLAZINGLY fast
For me bevy is the easiest ECS to use and I believe in the data oriented massively parallel future for high performance programs (like games). If I wasn't in rust there's no way I would have this running on multiple threads but here I easily have safe chunk loading across threads. Also why not, it's just for fun
@@brain_frame but rust have awful compatibility between versions. This language always updates and break old projects unlike C, and this is the reason why C is the best language ever created. And C actually is faster then rust, sry, but true.