Game Development With Strangers
7:25
Game Engine Of The Future
9:12
8 ай бұрын
rust macros are magic
14:02
10 ай бұрын
Making A Multidimensional Game
8:15
Voxel Game Development Is Hard
12:24
your text editor SUCKS
8:04
Жыл бұрын
Rust breakout game tutorial
21:15
Жыл бұрын
one month voxel game development
11:45
1 week no computer mouse challenge
6:04
Rust multi-threading code review
12:13
From idea to open source in 5 days
6:16
100 Hours Of Graphics Programming
6:48
I freaking LOVE programming
2:43
2 жыл бұрын
Rust and Unity game development
11:44
Пікірлер
@machiii7394
@machiii7394 16 сағат бұрын
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
@dragon-xt4vw Күн бұрын
Misread the title as "Racist Multi-Threading Code Review". Seemed a curious thing.
@ivangh94
@ivangh94 3 күн бұрын
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.
@stephenmcconnell7868
@stephenmcconnell7868 3 күн бұрын
I program on Mac and don’t use dlls (dumb language libs). How does one get around this?
@Fittiboy
@Fittiboy 3 күн бұрын
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!
@VulpeculaJoy
@VulpeculaJoy 4 күн бұрын
Someone on the internet makes a fast greedy voxel mesher. *distant horizons 2.0 has entered chat
@dominobuilder100
@dominobuilder100 4 күн бұрын
This was insanely interesting. I wonder if any of this could be used to optimize minecraft
@guilhermerafaelzimermann4196
@guilhermerafaelzimermann4196 8 күн бұрын
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
@johnmoser3594
@johnmoser3594 9 күн бұрын
"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.)
@meetem7374
@meetem7374 9 күн бұрын
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.
@hujiko44745278184
@hujiko44745278184 10 күн бұрын
Cool 😎
@simple_classic
@simple_classic 13 күн бұрын
YO THIS IS A PAPER
@GaijinXIII
@GaijinXIII 13 күн бұрын
Offense taken.
@rybeardj
@rybeardj 14 күн бұрын
trojan detected, don't download
@1____-____1
@1____-____1 15 күн бұрын
When I saw the file picked I said "hmm, that looks a lot like Helix".
@NexusKiwi
@NexusKiwi 19 күн бұрын
So impressive
@shadow_blader192
@shadow_blader192 20 күн бұрын
3:20 i dont know, but it sounds like TCP
@gustavosantiago1543
@gustavosantiago1543 21 күн бұрын
Is there really a need for all those flat arrays? Wouldn't the compiler allocate n-dimensional statically sized arrays contiguously anyways?
@jawtaro4583
@jawtaro4583 21 күн бұрын
reminds me of the game, Kingdom
@alby13
@alby13 21 күн бұрын
i want to play the gme
@jackjohnes2623
@jackjohnes2623 24 күн бұрын
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).
@Aspadien
@Aspadien 26 күн бұрын
I wanted this video and I find
@CielMC
@CielMC 26 күн бұрын
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.
@CielMC
@CielMC 26 күн бұрын
Blazingly fast 🔥🚀
@intbar
@intbar 26 күн бұрын
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
@guisampaio2008
@guisampaio2008 28 күн бұрын
Make it faster.
@holyknighthodrick5223
@holyknighthodrick5223 28 күн бұрын
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
@tedchirvasiu
@tedchirvasiu 29 күн бұрын
shank
@thanatosor
@thanatosor Ай бұрын
So that's how devs spread dozen of weird named libraries... to get high 😂
@thanatosor
@thanatosor Ай бұрын
Wait, I need speed to handle 10Billions polygons in a single mesh 😂
@thanatosor
@thanatosor Ай бұрын
This guy don't need drug to get high, but coding 😂
@GabrielxC
@GabrielxC Ай бұрын
My culled mesher in my i5 of second generation is around 0.102156ms even I got 0.0947ms
@jamesalewis
@jamesalewis Ай бұрын
This is the same algorithm as bitmap edge detection. Shift-not-and-ing is really common in other applications 🤙
@TiagoTiagoT
@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
@sunofabeach9424 Ай бұрын
50:12 are you a wayland user by chance?
@GabrielxC
@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
@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
@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
@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
@petemoss3160 Ай бұрын
4:50 ... the humans are dead!
@AmaroqStarwind
@AmaroqStarwind Ай бұрын
Every time you say "chunk", it sounds like "shaunk"
@GeorgeTsiros
@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
@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
@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
@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
@BitBloxDevs Ай бұрын
Ok
@scotthooper6460
@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
@BitBloxDevs Ай бұрын
Tftf
@Capewearer
@Capewearer Ай бұрын
You serious? This engine doesn't even have occlusion culling.