I wanted to put my game engine to use so I created yet another voxel game. I had a great multiplayer gameplay in mind but ran out of time in order to implement it. I did however manage to implement a reliable UDP network protocol to synchronize the environment between players. When designing the architecture it became apparent that the line between the game and the engine can be really hard to define at times. I tried to code as much as possible within the engine to have it easily reusable.
Just like the engine the Block Buster is cross platform compilable and configured in CMake. To speed up rendering and make it easier to change the voxel types I used a texture array to store the textures for different voxels. This allows for dynamic changing of the voxel types since each texture can be uploaded individually into the texture array. Up until this point I had been using a texture atlas.