Ive been making a voxel engine in my spare time. Currently I have it running at 60fps easy running the same amount of voxels you would see in a minecraft world. (125 chunks each chunk is 64 ^3 blocks.)

then using the terrain engine to create the desired layout of the blocks. Then putting this into an octree for optimizations and then clearing the original array. Also I am using a texture atlas.

My load time for all those blocks (32768000) is about 1minute in release mode. I was wondering if you guys have any ideas on how to boost up the load times. (I will eventually make the system multi-threaded when I get around to it)

Also, allocating vectors in that way isn't really a flat array, even if the resulting access syntax makes it look like it is. It's actually quite a bit of memory allocation. Doesn't mean that is necessarily where the load time is going though.

I must have missed that at first, but this warrants a separate reply - now it almost looks like you are making every single allocation (for every single voxel) manually - like in a separate call ? Say, if you have 3,000,000 voxels, you actually do all those 3,000,000 allocations - one by one ?!?

Allocating in 1 big block is the best approach across the board. The only part that is a bit awkward is that in doing so you have to index the array differently. You can wrap the buffer in an object that hides these details though.