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

Поділитися
Вставка
  • Опубліковано 24 бер 2024
  • github.com/scallyw4g/bonsai
    / discord

КОМЕНТАРІ • 34

  • @GabeRundlett
    @GabeRundlett Місяць тому +13

    I really admire your speaking skills! That's something I struggle with a lot.

    • @LegoDinoMan
      @LegoDinoMan Місяць тому +4

      Whoa! A voxel legend, I hope you're having a good day! I feel like you do a great job speaking

    • @scallyw4g
      @scallyw4g  Місяць тому +4

      Thanks man :) If I'm being honest, these videos have taken an embarrassing number of tries to get done ..

  • @TheQxY
    @TheQxY Місяць тому +15

    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.

    • @scallyw4g
      @scallyw4g  Місяць тому +2

      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.

  • @Skeffles
    @Skeffles Місяць тому

    This looks fantastic!

  • @niuage
    @niuage Місяць тому +3

    Starting to look real good :)

  • @hatac
    @hatac Місяць тому +2

    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.

  • @ethangore8697
    @ethangore8697 Місяць тому +3

    Your brush system looks really nice

  • @Woltvint
    @Woltvint Місяць тому +2

    Looks fantastic!

  • @novadea1643
    @novadea1643 Місяць тому +4

    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.

    • @scallyw4g
      @scallyw4g  Місяць тому +1

      Interesting, thanks for sharing :D

  • @kovoneka
    @kovoneka Місяць тому +2

    I see these ::, i know the language you've written it in.

  • @benrex777productions9
    @benrex777productions9 4 дні тому

    So, now I'm subscribed to you with my correct UA-cam channel.
    I like those brush implementations. Could you make a video with your game idea? It sounds like you have ambitious plans.

    • @scallyw4g
      @scallyw4g  4 дні тому

      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 :)

    • @benrex777productions9
      @benrex777productions9 3 дні тому

      @@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.

  • @samuelhulme8347
    @samuelhulme8347 Місяць тому +3

    I’m just pleased this is open source. There are great voxel engines on UA-cam however most of them are not open source - so not useful. You’ve got a new subscriber.

  • @7Dev.
    @7Dev. Місяць тому +3

    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 😅

    • @scallyw4g
      @scallyw4g  Місяць тому +2

      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.
      @7Dev. Місяць тому +1

      @@scallyw4g I would have never figured that out ☠️

  • @benceblazsovics9123
    @benceblazsovics9123 Місяць тому +2

    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?

    • @scallyw4g
      @scallyw4g  Місяць тому +1

      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.

  • @Reviire
    @Reviire Місяць тому +1

    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?

    • @scallyw4g
      @scallyw4g  Місяць тому

      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.

  • @varand7
    @varand7 Місяць тому +2

    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?

    • @scallyw4g
      @scallyw4g  Місяць тому +1

      Thanks! Yep, definitely watched every episode of HMH

    • @varand7
      @varand7 Місяць тому +1

      @@scallyw4g Awesome! I'm still very far from that. But great to see projects using that style in the wild

  • @chucksneedmoreland
    @chucksneedmoreland Місяць тому +1

    could you explain a bit more on how the lattice coordinates work in relation to the voxel coordinates?

    • @scallyw4g
      @scallyw4g  Місяць тому +1

      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

    • @chucksneedmoreland
      @chucksneedmoreland Місяць тому

      @@scallyw4g thanks for the explanation

  • @lopsidedpolygon
    @lopsidedpolygon Місяць тому +2

    🎉💜🤍💜🤍💜🤍

  • @neropatti
    @neropatti Місяць тому

    The discord invite in the description has expired :b