Тёмный

Procedual Voxel Tree Generation - Rust Game 

Tantan
Подписаться 42 тыс.
Просмотров 34 тыс.
50% 1

Наука

Опубликовано:

 

25 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 105   
@Tantandev
@Tantandev Год назад
Let's show Quadratic some love for supporting rust developers, star their github page! github: github.com/quadratichq/quadratic careers page: github.com/quadratichq/quadratic/
@alyti
@alyti Год назад
hey uh u linked the same thing twice buddy
@bananadog111
@bananadog111 Год назад
Adding shadows will make the game look a lot better even without textures
@ayushmishra6077
@ayushmishra6077 Год назад
speed will be a issuse coz bevy sukcs
@hermannpaschulke1583
@hermannpaschulke1583 Год назад
Umm, sir, I think you meant to say "bevy is blazingly fast 🚀🚀🚀"
@koalpu4207
@koalpu4207 Год назад
@@hermannpaschulke1583 true!
@ayushmishra6077
@ayushmishra6077 Год назад
@@hermannpaschulke1583 no the complie time and run time spped is slow coz it uses gfx and not wgpu
@horvbalint
@horvbalint Год назад
@@ayushmishra6077 Bevy does use wgpu.
@Danidev
@Danidev Год назад
Those are some beautiful trees mr tantan 🙏
@KaidenBird
@KaidenBird Год назад
Cmon dani we're hungry for Karlson
@Crusage
@Crusage Год назад
dani du må komme tilbake og lage mer youtube videoer laktoseredusert melk >
@m2x07
@m2x07 Год назад
hey dani how are you doing
@lfwj
@lfwj Год назад
Dani vær sa snill
@EightyS3v3n
@EightyS3v3n Год назад
I am sold on Quadratic. That is exactly what I imagine every time I use spreadsheet software. Thank you for having useful and relevant sponsors.
@AntonioNoack
@AntonioNoack Год назад
If the tree generation is fast, an alternative way to avoid the chunk boundary problem is to generate the trees of the neighboring chunks as well for the current chunk. This then can be completely parallelized, and has no dependencies on other chunks :).
@Pixelhurricane
@Pixelhurricane Год назад
4:46
@AntonioNoack
@AntonioNoack Год назад
@@Pixelhurricane ?
@quinnbattaglia5189
@quinnbattaglia5189 Год назад
You could end up with a runaway though, if the next chunk's trees also cross a border.
@tristunalekzander5608
@tristunalekzander5608 Год назад
That is if the tree placement uses noise and the tree generation uses a seed based off its position. I think Tantan may just be using random numbers so it would involve a bit more work to make sure you are generating trees the exact same way in the imaginary surrounding chunks as you are in the actual surrounding chunks. This method may be viable but he should really just recode it to be more like Minecraft, your idea wouldn't work well with large structures that might stretch across 3 or more chunks, now you have to generate structures in the surrounding 3 or more chunks too.
@ShadowlessDeath47
@ShadowlessDeath47 Год назад
@@quinnbattaglia5189 You can just ignore any tree bits that are outside of your original chunk, since those are the only ones you need to build a mesh for. The other chunks will take care of their own tree meshes.
@codetothemoon
@codetothemoon Год назад
I did not think it was possible to incorporate Beethoven’s 5th into a coding video and have it fit. You proved me wrong. Seriously though, fantastic video!
@jsbarretto
@jsbarretto Год назад
Nice video Tantan! I love the visualisations, very pretty. It might interest you to know that there are much faster and cleaner techniques for generating large structures over multiple chunks (including very large structures that cover arbitrary many chunks!). In Veloren we used a modified form of cellular noise plus a terrain noise sample to find altitude when deciding to place trees. It works very effectively and means that generation threads don't need to fight for control over terrain resources, nor do you need a post-generation modification step that can lead to expensive remeshes and superfluous data (and is intractably complex in the general case: what happens for trees with a radius > 1 chunk?). It's also very cheap to precompute structure positions, which is useful if you ever want to add an LoD system :) Although don't fear: the technique you're using is used by other voxel games, including Minecraft I believe. You're not alone in using it :)
@monkeysfromvenus
@monkeysfromvenus Год назад
I honestly prefer the untextured voxel style, it looks unique! Limitations like that can also lead to more interesting designs.
@TheNewton
@TheNewton Год назад
Great general implementation overview for the space colonization algorithm with visuals.
@Skeffles
@Skeffles Год назад
The trees look great! I didn't even think about how they'd get effected by chunk optimisation.
@LegoDinoMan
@LegoDinoMan Год назад
I wasn't expecting a Knights Who Say "Ni!" reference, got a good chuckle out of me.
@Kiwi-fl8te
@Kiwi-fl8te Год назад
Reminds me of the Cube World Beta. The world gen in that game was really charming.
@omwda2412
@omwda2412 Год назад
Instead of checking the distance from each line for each potential voxel space, why not step through the line and place blocks as you go? You could take the gradient and length of each line, and then in order to step through the line just take the gradient, calculate the point where the line segment leaves the voxel, fill in that voxel and subtract off the length and repeat until you run out of length, then switch the gradient and repeat until the tree is complete. To get the thiccness you desire, you could either use a non-uniform grid where each horizontal cell is 2 blocks wide, or use how far the entry and exit points are from the horizontal borders of the block to place additional voxels outside of the line as required. Sorry if that doesn't make a whole lot of sense, happy to explain in more detail if you're interested
@softwarelivre2389
@softwarelivre2389 Год назад
True! It avoids a lot of useless calculations
@logicprojects
@logicprojects Год назад
Great video! UI in Bevy is absolutely a pain but your trees look great!
@ttamttam1522
@ttamttam1522 Год назад
I'm pretty sure noita used a 3x3 checkerboard pattern and staggered their game updates into 9 smaller stages. That way neighboring chunks could always be accessed without contention. It falls apart for any radius greater than one chunk, but is a neat solution regardless.
@Affax
@Affax Год назад
The chad of Rust is back!!
@4teapo
@4teapo Год назад
I think you could turn that tree voxelization thing into O(n), by doing something similar to how you rasterize pixels, but in 3D and for each branch. You couöd start with a 2d version which rasterizes the lines onto a grid, and then make the appropriate changes to go 3D. Rasterization is how, for instance, a line gets converted into pixels on your screen. See Bresenham's line algorithm
@jazzling
@jazzling Год назад
This is very clear, epic video........................................................................................
@niuage
@niuage Год назад
I was just starting to complain about not having a new tantan video and BAM, new tantan video. And on a topic that's actually relevant to what I'm developing, perfect
@theothercreare
@theothercreare Год назад
You might already be doing this, but layering noise can make terrain a lot more interesting As well as using a different noise function for some of the layers, one that has sharper peaks I like the monty phython reference :)
@dicember92
@dicember92 Год назад
Tantan is absolutely fabolous!
@jonathanadamsson6201
@jonathanadamsson6201 Год назад
Looking really good, great job It reminds me of when I tried to make a system for generating houses at one point, once the inspiration starts flowing there are so many possibilities and it was hard to draw a line where I could say, ok, now it's good enough, haha I also wanted to generate vegetation like trees ferns and stuff in that game but never got that far, so seeing this is really cool :)
@draido-dev
@draido-dev Год назад
Nice to meet you too
@crispy5249
@crispy5249 Год назад
Wow looks really good!
@vasco407
@vasco407 Год назад
i care more for gameplay. its cool to see generators. I wonder how it would be if it was used for gameplay or charecters. like imagine a charector generator that actually made unique skills, moves, gameplay, items. all generated
@eboatwright_
@eboatwright_ Год назад
Ayy, looks great!
@bl4ckk
@bl4ckk Год назад
The game looks really nice!
@0x1337feed
@0x1337feed Год назад
i'd call this a world simulator as of right now
@lixou
@lixou Год назад
Yay new Tantan video
@ave4190
@ave4190 Год назад
Not to state the obvious, but wouldn't Bresenham be a lot easier (and faster) for voxelising the trees?
@trayambakrai
@trayambakrai Год назад
You should go look at Henrik Kniberg's video on Minecraft's new terrain generation (tldr: use 3 noises, two 2D noises control terrain shaping and 1 2D noise controls terrain height, and they are mapped via a spline chart)
@microdavid7098
@microdavid7098 Год назад
sweet, sweet devlog
@grevel1376
@grevel1376 Год назад
Incredible, I love it
@lachee3055
@lachee3055 Год назад
instead of using marching for the tree voxelization, why not use DDA line algorithm or Bresenham's line algorithm
@runrajrun
@runrajrun Год назад
i love your outro 😂
@sleepynuigurumiamalgamation
Looks great! pretty awesome so far. I know this is way early to ask but I really enjoy engaging movement & when skills cause movement (to yourself) in fun ways. AAAAAAA now I want to do stuff. aaaaa I feel odd. aa seeya around also. Non very human character options are awesome
@v037_
@v037_ Год назад
Amazing bro, even minecraft couldn't add procedural tree and use a performant code like rust Anyway I suggest to use vulkan rendering api for rendering on the GPU, so it will be even more fast
@BradenLehman
@BradenLehman Год назад
🔥🔥 Looking good!
@OscarRobbing
@OscarRobbing Год назад
Looks cool, similar to Veloren.
@isabellolsson8919
@isabellolsson8919 Год назад
Yooo bro cool video!!
@thefatfebruary1063
@thefatfebruary1063 Год назад
nice trees bro 😎
@juanmacias5922
@juanmacias5922 Год назад
Why mention your second channel and not link to in in the video description? xD
@AntonioNoack
@AntonioNoack Год назад
The link to the sponsor's jobs page seems to be broken.
@doce3609
@doce3609 Год назад
Guess which Rust Gigachad is back! WOHOOOOOOOOOOOO
@Fipsh
@Fipsh Год назад
How well do you expect the game to run on today's devices? Since Voxels not really being GPUs way of render.
@zoeythebee1779
@zoeythebee1779 Год назад
YEAH NEW UPDATE POG
@SaHaRaSquad
@SaHaRaSquad Год назад
Did you try positioning the trees so that they are guaranteed to never cross a chunk boundary? If the forests on the map aren't too dense this might still look fine, but I'm not sure.
@jsbarretto
@jsbarretto Год назад
A better solution would be to come up with tree positions deterministically (in the same way that sampling noise is deterministic). That way, it's fine for trees to overlap chunk borders and you don't need a post-generation chunk modification step either.
@antoine8611
@antoine8611 Год назад
There's a typo in the title in case no one else reported it :)
@adinathrangnekar3064
@adinathrangnekar3064 Год назад
So fast u post man
@voxelfusion9894
@voxelfusion9894 Год назад
Why not join the open source Veloren team, making a community edition of Cubeworld in Rust.
@clozer6461
@clozer6461 Год назад
How would you place these structures tho? As you can see in the video a lot of the trees are half floating. Need either to make space or find space to place them correctly - I couldn't find a nice solution for this.. :/
@jsbarretto
@jsbarretto Год назад
A good approach is to find some cheap and approximate way to determine the altitude at arbitrary voxel columns. Often this means resampling the original noise that produced the terrain in the first place.
@kyubi7166
@kyubi7166 Год назад
I think shadows would be better than textures for you
@_Ello
@_Ello Год назад
Result was totally byutifull
@CuriousSpy
@CuriousSpy Год назад
Why not to draw trees in shader via parameters instead of doing cpu calculations? Isn't it gonna be a lot quicker?
@imilegofreak
@imilegofreak Год назад
I like trees
@NotAFoe
@NotAFoe Год назад
Lezzzz goooo, new vid
@happygofishing
@happygofishing Год назад
Is there anywhere I can download your game and its launcher?
@jutn2
@jutn2 Год назад
you should try Godot rust
@redstonerti9918
@redstonerti9918 Год назад
Next up: GRASS!
@larsmaas07
@larsmaas07 Год назад
Genius
@isotoxal
@isotoxal Год назад
Woohooo!!!
@Wh4I3
@Wh4I3 Год назад
🌲/10 video
@jacques-dev
@jacques-dev Год назад
Nice
@ZephaniahNoah
@ZephaniahNoah Год назад
Do not say Ni to me again!
@kairu_b
@kairu_b Год назад
Interesting
@naezan
@naezan Год назад
wowowowowow
@tristunalekzander5608
@tristunalekzander5608 Год назад
I had the same problem with structures bleeding into other chunks when I was making my first voxel engine! Realized I had to completely recode things just for structures, and it sounds like you will have to as well. The way you described it made it sound like you don't have the rendering and voxel data separate, you should be loading several chunks beyond what is actually being rendered, meaning many chunks will be "loaded" but not rendered. The amount depends on how large of structures you load in. Apologies if you already know that. One thing I can say for sure is that having each chunk on a separate thread is a horrible idea lol your computer should only have 4-8 threads anyway, so it would be a better idea to offload all chunk gen on one thread, and all mesh gen on another. You should be waiting until you know for sure that a chunk has all of its voxel data before you start generating its mesh.
@davidrudpedersen5622
@davidrudpedersen5622 Год назад
When I saw Cubeworld, I thought it would have been really cool if the terrain was smoothed instead of just squares. I'm pretty sure there is an algorithm for doing such a thing. Maybe it's something you can consider for your game to make it stand out.
@schelney
@schelney Год назад
If you mean marching-cubes, that's another beast, and would require Tantan reworking much of his game. Definitely cool, but not right for him at this point in the project.
@jsbarretto
@jsbarretto Год назад
@@schelney There are more algorithms than Marching Cubes. Naive surface nets is relatively simple to implement (not much more difficult than standard cubic mesh extraction) and gives pretty much the same (or better) results in most cases.
@schelney
@schelney Год назад
@@jsbarretto I had never heard of naive surface nets before, I appreciate the information.
@linusalexSG
@linusalexSG Год назад
This game looks wonderful, it kinda reminds me of the terraria minecraft mod.
@MarquisKurt
@MarquisKurt Год назад
Ni!
@marcboss
@marcboss Год назад
Hello
@koalpu4207
@koalpu4207 Год назад
For some reason i feel like a copy cat when i code in rust
@l11-s2l3q
@l11-s2l3q Год назад
Voting for no textures
@heraclitoqsaldanha6133
@heraclitoqsaldanha6133 Год назад
:)
@mrmcwellium
@mrmcwellium Год назад
I think textures look better, the game without looks bland
@kevz3351
@kevz3351 Год назад
Nice
Далее
Voxel Game development - Creatures and Spells
12:01
Просмотров 37 тыс.
NAH UH
00:17
Просмотров 2 млн
iPhone Flip станет ХИТОМ!
00:40
Просмотров 387 тыс.
ChatGPT makes Voxel Engine with Rust
12:20
Просмотров 97 тыс.
The Best Games from Bevy Jam 5
9:54
Просмотров 7 тыс.
Creating Randomly Generated Caves | Game Devlog
7:10
Просмотров 2,6 тыс.
Voxel Game Development Is Hard
12:24
Просмотров 94 тыс.
This Trap Base Brings The Loot To You
11:34
Просмотров 450 тыс.
Optimizing my Game so it Runs on a Potato
19:02
Просмотров 630 тыс.
AI Plays Minecraft Forever (and dies)
23:22
Просмотров 442 тыс.
I remade my voxel game 3 times, this is why
12:11
Просмотров 122 тыс.
LCCS: гибрид ЖК и ЭЛТ
12:19
Просмотров 22 тыс.