For a Client project, I was required to create a cube world editor. That would be used to create a playable level within clients project
Features Included:
- Expandable Block Database
- Multiple Possible Shapes for each block
- Simple Fluid Flow Simulation
- Saving
- Loading
- Creation and Destruction of Individual and also Multiple blocks using mouse selection
Due to the way the blocks are handled, I was forced to break up the world into 32x32x256 sized components, which each handle the blocks within their area to optimise cpu performance
Loading of saved levels is done in a separate thread, world components are spawned in turns, and handle blocks within their area.
Each block is allowed to have its own logic (for eg, the Liquid blocks have their own "flow" logic)