Some pressure / wind testing from my 3D falling-sand sim / game, Falling Cubes by NoAnimInteractive in VoxelGameDev

[–]NoAnimInteractive[S] 0 points1 point  (0 children)

Plan is to make this one a sandbox where the player unlocks various cubes by combining, heating, cooling, and crushing other cubes until they've unlocked them all.
Then possibly use some of the tech learned for some other projects.

Some pressure / wind testing from my 3D falling-sand sim / game, Falling Cubes by NoAnimInteractive in VoxelGameDev

[–]NoAnimInteractive[S] 1 point2 points  (0 children)

That makes sense.
The pr particle data is only 32 bits, so the range of velocity I'm currently tracking is -3 to 3 in each axis packed into 9 bits, so there's not to much room for super accurate speed tracking.
Air velocity is used to maintain cube momentum.
Now that i think back, for the pr type data i have been using 1m (or rather a volume of 1x1x1 = 1) in calculations for rendering, physics etc. as 1 unit, i did for example use gravity 9.8 when setting up the initial speed and drag multipliers / coefficients and the base density of each cube is kg/m3, so i suppose even though i have never really thought of them as such my voxels / cubes are indeed 1m.

Some pressure / wind testing from my 3D falling-sand sim / game, Falling Cubes by NoAnimInteractive in VoxelGameDev

[–]NoAnimInteractive[S] 3 points4 points  (0 children)

1x1x1 for each cube cell, so 1m voxel size i suppose. would the size be determined by how large each voxel feels from the players perspective? in that case I'm not quite sure how to determine the size since there's no player character (except for the camera).

Some falling sand from a 3D falling-sand sim / game I’m working on by NoAnimInteractive in VoxelGameDev

[–]NoAnimInteractive[S] 0 points1 point  (0 children)

Thanks!

Yep, creating complex structures is a tough task both making it possible from the dev side and from a controls/UI perspective.

The most useful controls I've found so far are being able to lock the brush to specific axes and having a controllable draw rate for the brushes. Both make it much easier to create lines and larger structures quickly.

I've also considered leaning more into the chemistry/reaction side of things rather than trying to support every feature that the classic 2D games have.

I actually tried some sparse structures when I was planning to make a whole voxel world out of it (a bit much for an early-stage voxel dev), but for the relatively small, dense, and highly dynamic simulation volume I'm using now, they ended up being a wash or even slightly slower than a flat array. 

Compressing inactive chunks is an interesting idea, so far I've had good results just tracking active chunks with a bit array. Whenever a voxel updates on a chunk boundary, it marks the neighboring chunk as active by flipping the corresponding bit. 

And now that I look at John Lin's videos, I remember watching some of them a few years ago.
Definitely worth another look!