The Editor Update :: 1.5.0 :: Bonsai Voxel Engine Devlog

2024 ж. 24 Нау.
5 884 Рет қаралды

github.com/scallyw4g/bonsai
/ discord

Пікірлер
  • I really admire your speaking skills! That's something I struggle with a lot.

    @GabeRundlett@GabeRundlettАй бұрын
    • Whoa! A voxel legend, I hope you're having a good day! I feel like you do a great job speaking

      @LegoDinoMan@LegoDinoManАй бұрын
    • Thanks man :) If I'm being honest, these videos have taken an embarrassing number of tries to get done ..

      @scallyw4g@scallyw4gАй бұрын
  • 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.

    @TheQxY@TheQxYАй бұрын
    • 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.

      @scallyw4g@scallyw4gАй бұрын
  • 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.

    @hatac@hatacАй бұрын
  • 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.

    @novadea1643@novadea1643Ай бұрын
    • Interesting, thanks for sharing :D

      @scallyw4g@scallyw4gАй бұрын
  • This looks fantastic!

    @Skeffles@SkefflesАй бұрын
  • Your brush system looks really nice

    @ethangore8697@ethangore8697Ай бұрын
  • Starting to look real good :)

    @niuage@niuageАй бұрын
  • Looks fantastic!

    @Woltvint@WoltvintАй бұрын
  • 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 😅

    @7Dev.@7Dev.Ай бұрын
    • 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.

      @scallyw4g@scallyw4gАй бұрын
    • @@scallyw4g I would have never figured that out ☠️

      @7Dev.@7Dev.Ай бұрын
  • I’m just pleased this is open source. There are great voxel engines on KZhead however most of them are not open source - so not useful. You’ve got a new subscriber.

    @samuelhulme8347@samuelhulme8347Ай бұрын
    • Welcome :D

      @scallyw4g@scallyw4gАй бұрын
  • I see these ::, i know the language you've written it in.

    @kovoneka@kovonekaАй бұрын
  • So, now I'm subscribed to you with my correct KZhead channel. I like those brush implementations. Could you make a video with your game idea? It sounds like you have ambitious plans.

    @benrex777productions9@benrex777productions95 күн бұрын
    • 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 :)

      @scallyw4g@scallyw4g4 күн бұрын
    • @@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.

      @benrex777productions9@benrex777productions94 күн бұрын
  • 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?

    @Reviire@ReviireАй бұрын
    • 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.

      @scallyw4g@scallyw4gАй бұрын
  • 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?

    @benceblazsovics9123@benceblazsovics9123Ай бұрын
    • 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.

      @scallyw4g@scallyw4gАй бұрын
  • could you explain a bit more on how the lattice coordinates work in relation to the voxel coordinates?

    @chucksneedmoreland@chucksneedmorelandАй бұрын
    • 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

      @scallyw4g@scallyw4gАй бұрын
    • @@scallyw4g thanks for the explanation

      @chucksneedmoreland@chucksneedmorelandАй бұрын
  • 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?

    @varand7@varand7Ай бұрын
    • Thanks! Yep, definitely watched every episode of HMH

      @scallyw4g@scallyw4gАй бұрын
    • @@scallyw4g Awesome! I'm still very far from that. But great to see projects using that style in the wild

      @varand7@varand7Ай бұрын
  • 🎉💜🤍💜🤍💜🤍

    @lopsidedpolygon@lopsidedpolygonАй бұрын
  • The discord invite in the description has expired :b

    @neropatti@neropattiАй бұрын
    • Oops, thanks! Fixed

      @scallyw4g@scallyw4gАй бұрын
KZhead