Jump to content

View more

Image of the Day

Adding some finishing touches...
Follow us for more
#screenshotsaturday #indiedev... by #MakeGoodGames https://t.co/Otbwywbm3a
IOTD | Top Screenshots

The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.


Sign up now

Voxel question?

4: Adsense
  • You cannot reply to this topic
4 replies to this topic

#1 Alphabet   Members   

114
Like
0Likes
Like

Posted 25 May 2017 - 11:12 PM

'I've looked all over the internet and I can't find an answer. So here it goes.
1.Why haven't devs using voxel terrains used smaller cubes? When I say smaller I mean slicing 1 of Minecraft's cubes into 8x8x8 at the smallest(thats 64 cubes making 1 Minecraft cube)or 2x2x2 at the largest(8 cubes making up 1 Minecraft cube).

2.i read that Minecraft's voxel world is CPU heavy. Is that because of Java or programming style or just that voxel world calculations must be done on the CPU? Can it be helped by the GPU?

3. What are the limitations you can think of when making the cubes smaller?
Thanks in advance!!!

#2 ApochPiQ   Moderators   

22691
Like
1Likes
Like

Posted 26 May 2017 - 12:38 AM

Who says nobody's done smaller voxels? Delta Force used a voxel-based terrain system with much smaller voxels than Minecraft, and that goes back to 1998. I'm pretty sure there are earlier examples - and newer ones.

Minecraft is probably CPU-bound because it doesn't do anything all that interesting on the GPU; it simply does more work on the CPU to make the gameplay happen. A more graphically rigorous game could easily be GPU bound instead. Some voxel work can be offloaded to the GPU for sure, but that varies a lot by game.

The hardest part of shrinking voxels is storage space. You can do some tricks to compress them very effectively, but at the cost of complexity in rendering and simulation.

You can actually get pretty good results with moderately large voxels and a strategy like Marching Cubes and implicit surfaces.
Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

#3 Alberth   Members   

9251
Like
2Likes
Like

Posted 26 May 2017 - 02:21 AM

Why haven't devs using voxel terrains used smaller cubes? When I say smaller I mean slicing 1 of Minecraft's cubes into 8x8x8 at the smallest(thats 64 cubes making 1 Minecraft cube)or 2x2x2 at the largest(8 cubes making up 1 Minecraft cube).
8x8x8 is actually 512 rather than 64, cubes have 3 dimension, and thus runs away at N^3.

This is also why size-reductions have such a big impact. Half the size of a cube in every dimension means 8 times as much CPU power and storage. There is a trade-off between acceptable CPU load and memory usage, and size of the cube, likely Minecraft is as big as possible against those limits. You can have smaller cubes, but then the displayed world gets smaller too.

I am not sure smaller cubes is actually desired there. I never played the game, but from what I have seen, the cubes must be clearly visible to understand what it is, even on low-end screens, for people with bad eye-sight. That imposes limits on what makes sense to display.



#4 dmatter   Members   

4687
Like
1Likes
Like

Posted 26 May 2017 - 04:22 PM

1.Why haven't devs using voxel terrains used smaller cubes?

Probably they have.
There's nothing particularly special about the size of minecraft cubes.

In all likelihood all voxels are 'unit cubes' (i.e 1x1x1) so it's mainly a question of how 'big' your spatial units are.
 

2.i read that Minecraft's voxel world is CPU heavy. Is that because of Java or programming style or just that voxel world calculations must be done on the CPU? Can it be helped by the GPU?

I think it's just a design decision.
More work could have been lifted to the GPU.
Or more optimisation effort put in to reduce the CPU load.
But these things weren't done and nor do they need to be done - it's a successful game as-is.
 

3. What are the limitations you can think of when making the cubes smaller?

Mainly it results in increased storage and computation costs.
It's not insurmountable - might just mean you have higher minimum requirements. Or you need to put more effort into optimisations and fancy algorithms to handle the scale.

Edited by dmatter, 26 May 2017 - 04:23 PM.


#5 Alphabet   Members   

114
Like
0Likes
Like

Posted Today, 08:15 AM

Thanks everyone, you've definitely helped me answer my question! I'm learning c++ right now, so I have the power to make my code efficient.