Nice. The white noise brush would be more useful with a density slider (noise threshold) and maybe an option to "blur" by introducing a Guassian to the noise threshold.
@scallyw4g2 ай бұрын
Yep, there's a threshold slider :) Gaussian blurring is harder because there's no closed-form equation for a gaussian blur; the result relies on the surrounding values. The next-best thing would probably be a small-period value noise, which I'll probably add in the future.
@GabeRundlett2 ай бұрын
I really admire your speaking skills! That's something I struggle with a lot.
@LegoDinoMan2 ай бұрын
Whoa! A voxel legend, I hope you're having a good day! I feel like you do a great job speaking
@scallyw4g2 ай бұрын
Thanks man :) If I'm being honest, these videos have taken an embarrassing number of tries to get done ..
@hatac2 ай бұрын
Early keyboards had three functions per key; lower case, upper case and ALT. Newer keyboards moved these Alt functions to the function bar, F1 to F 12, the special keys and the number pad. So the Alt coding is still set to wait for those functions even though we have new keys for them. Most game code just overrides it but your starting from scratch.
@novadea16432 ай бұрын
Back when mouses weren't common the Alt key was used to switched focus to the menu and back (still does for most applications), which I'd guess is where the VK_MENU keycode comes from. Also the menu shortcuts used Alt + some character from the menu command (marked with & in front in the command name, which Windows automagically underlines and uses for the shortcut) eg. Alt + S for &Save, which I'd guess is the reason for the WM_SYSKEYDOWN/UP messages. Depending on how you're creating the window you should be able to disable the system menu eg. if you're using WS_OVERLAPPEDWINDOW that includes WS_SYSMENU.
@scallyw4g2 ай бұрын
Interesting, thanks for sharing :D
@niuage2 ай бұрын
Starting to look real good :)
@Woltvint2 ай бұрын
Looks fantastic!
@ethangore86972 ай бұрын
Your brush system looks really nice
@Skeffles2 ай бұрын
This looks fantastic!
@kovoneka2 ай бұрын
I see these ::, i know the language you've written it in.
@samuelhulme83472 ай бұрын
I’m just pleased this is open source. There are great voxel engines on KZbin however most of them are not open source - so not useful. You’ve got a new subscriber.
@scallyw4g2 ай бұрын
Welcome :D
@7Dev.2 ай бұрын
I remember when I first started using linux as my main os, my middle mouse button didn't work. I tried changing everything in the os to make it work, it ended up being the mouse itself 😅
@scallyw4g2 ай бұрын
Hah, that's good. I one time had a machine that would very occasionally type a random character out of nowhere. Turned out, I had a bluetooth keyboard in my closet that I'd forgotten about with some stuff sitting on top of it that would very infrequently shift (ghosts something something?). This went on for months before I finally figured it out. I have no idea how the battery in that thing lasted for so long.
@7Dev.2 ай бұрын
@@scallyw4g I would have never figured that out ☠️
@Reviire2 ай бұрын
This is really cool! What's the performance like right now, in regards to things like several random edits to the voxel data, sequential edits to the data, etc?
@scallyw4g2 ай бұрын
Good question, and thanks! WRT. editing performance, I'd qualify it as reasonable. It's certainly usable for my purposes. If you're doing small regions of a few thousand voxels, it's a frame or two of latency. You can edit regions of up to about 100k voxels with barely-perceptible latency .. a million takes somewhere in the range of half a second. The overall renderer performance is also .. okay. I've got a laptop with a 3070 and on small-ish scenes it runs at about 100fps. This video was recorded on a 30hz monitor, so the framrate's locked at 30fps. The next big job I'm doing is to overhaul the renderer and world storage situation, which should improve this by quite a bit. I'd like to hit 240fps on middle and low-end cards for modest scenes, which I think is pretty achievable.
@benceblazsovics91232 ай бұрын
just do a relaxing 15min video about building a giant castle next time. it's so satisfying to watch :D also will you ever do other meshes than whole voxels? and will you ever randomize face normals a bit for extra detail?
@scallyw4g2 ай бұрын
Yeah I liked doing a timelapse too -- I'll do more of those in the future :) The engine does load OBJ meshes, although they don't really interact with the world in any real way. TBD if I'll do anything fancier there. Maybe if I get a random stroke of inspiration one day. I've not thought about randomizing face normals (I assume you mean by slightly skewing them, not really randomizing). There are facilities for calculating smooth normals from the noise functions that generate the world, but that data doesn't get stored at the moment. Might see if I can pack it down small enough to store per-voxel normals in the future.
@benrex777productions926 күн бұрын
So, now I'm subscribed to you with my correct KZbin channel. I like those brush implementations. Could you make a video with your game idea? It sounds like you have ambitious plans.
@scallyw4g26 күн бұрын
Thanks! I'll try to remember to talk about the game ideas I have more. IDK if they warrant a whole video at this point though :)
@benrex777productions925 күн бұрын
@@scallyw4g No problem. Do everything at your own pace. That's the nice things of devlogs. As long as you make some progress you are still among the more productive people and you will have some audience.
@varand72 ай бұрын
This looks so cool! The surface brush can make some nice ruins. Btw, maybe a long shot, but your code style kinda reminds me of handmade hero. Have you done that by any chance?
@scallyw4g2 ай бұрын
Thanks! Yep, definitely watched every episode of HMH
@varand72 ай бұрын
@@scallyw4g Awesome! I'm still very far from that. But great to see projects using that style in the wild
@chucksneedmoreland2 ай бұрын
could you explain a bit more on how the lattice coordinates work in relation to the voxel coordinates?
@scallyw4g2 ай бұрын
Sure thing. So, the noise lattice can be any arbitrary size. It's just the distance in world coordinates (voxel coordinates) the lattice points are from one-another. The 'one weird trick' is that you can operate in lattice-relative coordinates. That is, you only care about the distance from the previous lattice coordinate (or surrounding lattice coordinates) to the current voxel you're computing a noise value for. You can do a lot of the work in integer to compute those offsets, then go to float right at the end when computing a 0-1 value (how far along the range of the lattice you are) at the very end. I'd link to the code, but I'm pretty sure it's unintelligible because there's a bunch of other junk mixed in with it. I'm going to work on more world-gen stuff next, and if this works out well I'll do a video and/or blog with specifics
@chucksneedmoreland2 ай бұрын
@@scallyw4g thanks for the explanation
@lopsidedpolygon2 ай бұрын
🎉💜🤍💜🤍💜🤍
@neropatti2 ай бұрын
The discord invite in the description has expired :b