Crying rn that Lua was only B tier to you 😂 Great beginner language imo (no reasonable person likes indented languages, Python.) especially since it’s the staple of Roblox, which very well means it’s introducing programming to the youth, and that’s always welcome.
@dragon-xt4vwКүн бұрын
Misread the title as "Racist Multi-Threading Code Review". Seemed a curious thing.
@ivangh943 күн бұрын
A true tool for coders, while we develop games we can share our plugins. Yes, Godot is great and will become much better, but it is not the best tool for coders.
@stephenmcconnell78683 күн бұрын
I program on Mac and don’t use dlls (dumb language libs). How does one get around this?
@Fittiboy3 күн бұрын
Great video, thanks for explaining it so well! Just started making my first game in Godot, when I suddenly learned about ECS. Since I love Rust, I was extremely tempted to switch over to bevy, but the lack of an official editor is a deal breaker for me as a complete beginner. I could do it the hard way, learning game dev entirely with bevy. I'm sure that would make me a better dev in the end. As complexity grows, existing abstractions you import through frameworks become too limited and you need to dig deeper. In Godot I already had to ditch the particle system and handle that myself due to engine limitations. That's why I love love love that bevy has such loose, almost nonexistent boundaries between the game engine and the game you make using it. If it's all Rust, it's so much more ergonomic! I'll definitely start learning bevy relatively soon! But for now I'll stick with the extremely helpful GUI the Godot editor gives me!
@VulpeculaJoy4 күн бұрын
Someone on the internet makes a fast greedy voxel mesher. *distant horizons 2.0 has entered chat
@dominobuilder1004 күн бұрын
This was insanely interesting. I wonder if any of this could be used to optimize minecraft
@guilhermerafaelzimermann41968 күн бұрын
If i wasn't suffering from severe autistic burnout *and* had enough focus and time to properly learn all these different optimized voxel engines i've watched people on youtube do, i'd probably already have all the info i need to construct the fastest physically possible voxel renderer with real time editable terrain
@johnmoser35949 күн бұрын
"Greedy meshing is slow…er" lol Can you do a video continuing to explore your use of this greedy meshing code with things like how to minimize the amount of additional work done when inserting and removing voxels, and how determine and what to do when a lot of voxels are changed in an area (such as blowing something up or hitting it with a 4x4x4 hammer that smashes a whole cube of 64 blocks at once)? I'm doing my own voxel engine and I don't think I can improve on your approach here, and there are a lot of problems to solve in general. (My voxel plugin is just for terrain, so it's simple; the goal is to allow the programmer to just plop blocks in the world and have it do the right thing, including handling meshing, culling of non-visible blocks, hitbox compositing, and so forth.)
@meetem73749 күн бұрын
Oh! Great catch. Initially in my rendering I've used 64 bitmasks, because my chunks (not rendering chunks) were always 4x4x4 voxels. Tho I haven't implemented a greedy meshing, because I need to support much more than a solid block, so different shapes etc. End up with custom rasterizer.
@hujiko4474527818410 күн бұрын
Cool 😎
@simple_classic13 күн бұрын
YO THIS IS A PAPER
@GaijinXIII13 күн бұрын
Offense taken.
@rybeardj14 күн бұрын
trojan detected, don't download
@1____-____115 күн бұрын
When I saw the file picked I said "hmm, that looks a lot like Helix".
@NexusKiwi19 күн бұрын
So impressive
@shadow_blader19220 күн бұрын
3:20 i dont know, but it sounds like TCP
@gustavosantiago154321 күн бұрын
Is there really a need for all those flat arrays? Wouldn't the compiler allocate n-dimensional statically sized arrays contiguously anyways?
@jawtaro458321 күн бұрын
reminds me of the game, Kingdom
@alby1321 күн бұрын
i want to play the gme
@jackjohnes262324 күн бұрын
I imagine, there should be a way to optimise the procedure at ~3:35 so that the whole meshing step is complete in the smallest number of expansions possible (for the general case).
@Aspadien26 күн бұрын
I wanted this video and I find
@CielMC26 күн бұрын
1. You're using Rust, why would you care that it's too complicated for people 2. Simdeez time? 3. I see a few temp Vecs like the one from the greedy mesher, there is probably a better way to avoid those allocations, perhaps with an `impl Iterator`(wish generators are stable) or just a vec that you pass &mut to the function so they don't have to allocate their own, or maybe you can give the function your vertex buffer and have the function append to it directly.
@CielMC26 күн бұрын
Blazingly fast 🔥🚀
@intbar26 күн бұрын
Some things to note: You couldve navigated the Open/Save As/Open Folder dialogs entirely with the keyboard When you land on the dialog, your focus is on the file name area Press shift + tab 3 times to access the folder tree on the left and use the arrow keys to select the folder you want, expand it with right arrow or collapse with left Then press enter and the folder should be open in the folder pane on the right Use the arrow keys or start typing the name of the file/folder you want, then once the item you want is selected and you see its name in the folder/file name area, press alt + o to click the open button (or alt + s to click the save button if save dialog) Alternatively once in the right folder you can press alt + n to select the folder/file name field and type it there, to select a suggestion there (then press enter or alt + o to select) Also also in apps with menu bars you can press alt + the first letter of the menu button (like alt + f for file menu) then follow the underlined letters to select options
@guisampaio200828 күн бұрын
Make it faster.
@holyknighthodrick522328 күн бұрын
Now speedrun vulkan triangle from memory, without storing the vertices in the shader, and selecting the memory types correctly, and ensuring validation layers are enabled but with no errors. No using vkb or vma. Edit: And no dynamic rendering
@tedchirvasiu29 күн бұрын
shank
@thanatosorАй бұрын
So that's how devs spread dozen of weird named libraries... to get high 😂
@thanatosorАй бұрын
Wait, I need speed to handle 10Billions polygons in a single mesh 😂
@thanatosorАй бұрын
This guy don't need drug to get high, but coding 😂
@GabrielxCАй бұрын
My culled mesher in my i5 of second generation is around 0.102156ms even I got 0.0947ms
@jamesalewisАй бұрын
This is the same algorithm as bitmap edge detection. Shift-not-and-ing is really common in other applications 🤙
@TiagoTiagoTАй бұрын
What if instead of always checking one direction all the way first, you checked all axes, and picked the one that grew the rectangle/ractangular-cuboid (not the name I remember the shape having, but it's what Wikipedia told me it's called, the generic brick shape) the most? Would the delay added by the measuring and comparison be enough to counter the faster growth of the block per-step on average?
@sunofabeach9424Ай бұрын
50:12 are you a wayland user by chance?
@GabrielxCАй бұрын
In the beginning of the video looking the rust syntax is the reason why C is better, why make things harder for nothing why?
@MrRolnicekАй бұрын
So what you're saying is: If your voxel data was already bools in the binary matrix of the world ... this whole thing would be 60% faster still? Since you wouldn't need the step that converts the data, right?
@bellatteryАй бұрын
Whats funny about this, the more you don't use something that made everything infinitely easier the more you learn how a PC was originally designed. It actually helps people think better, problem solve especially how it helps you adapt and teach people about hotkeys, menu drops and new software to assist you and even from the beginning of the video you had stated you created something to make it easier this has to be healthy for us! (or maybe i'm going overboard and getting too excited over this minor thing lol)
@SirRelithАй бұрын
Is it possible to make write this threaded? each axis having it's own thread? or somehow execute this on a gpu? Thx for the deep dive, I learned a lot!
@petemoss3160Ай бұрын
4:50 ... the humans are dead!
@AmaroqStarwindАй бұрын
Every time you say "chunk", it sounds like "shaunk"
@GeorgeTsirosАй бұрын
i love everything about this your awkward presentation, the handdrawn sketches, the weird pronounciation, the focus on speed, your manbun, your long hair that makes you look like a metalhead, the jokes, the effort you made, everything, everything in this video is just *right* .
@CottidaeSEAАй бұрын
My first idea was to just bitmask. If you have a 1x4 area and want to check the area next to it, it'd be far faster and cheaper to just get the area next to it, use the first one as a bit mask over it and if there are no differences then it's all good and you can proceed. If it isn't, you can check where the differences begin and then you can discard from the conflicting side and then keep going. Okay, seems like that's pretty much exactly what's done.
@eugenech.2450Ай бұрын
I dont watch your videos (but still subscribed (I want to learn rust&bevy some day)), but every time I see your videos it feels like a new scientific experiment.
@user-dm7sk5wf5wАй бұрын
Very cool. I bet you can double the performance with some tweaks to how you manage memory. I see a lot allocations happening in loops when you could make 1 allocation outside the loop and reuse the variable for each cycle of the loop.
@BitBloxDevsАй бұрын
Ok
@scotthooper6460Ай бұрын
You can go farther. In my greedy mesher I store both block and ambient-occlusion lighting in textures, as bytes, using a bin-packing algorithm. One 2kx2k texture has always been enough, but I also added the ability to track which is needed by each chunk in case I needed many. This is particularly useful in city-like terrain where the geometry has a lot of flat faces made up of different types of blocks.
@BitBloxDevsАй бұрын
Tftf
@CapewearerАй бұрын
You serious? This engine doesn't even have occlusion culling.