This took longer than it should've because I had to refactor a lot, but it's now possible to merge brushes in the engine into a single object, export them and then import them into other rooms.

You could technically child the brushes to a parent node and export that but it felt a little messy rather than just doing it as one object.

This is a step towards a more formal instancing / prefabs system I'd like to add.

@hogsy Nice progress! Instancing/prefab systems are huge for level design workflow. Are you building this engine from scratch or based on something? Always interesting to see the technical decisions behind these systems.
@louisgames Thanks! It's from scratch.
@hogsy That's impressive! Building from scratch gives you so much control over the architecture. What language/rendering API are you using? The brush merging system looks really smooth in the demo.

@louisgames The engine is all C and the editor front-end is C++ (using the Fox Toolkit, which is going to be replaced at some stage).

For rendering, I've implemented my own abstraction layer to support multiple graphics APIs but for now it only supports OpenGL as a target, though the plan is to also support Vulkan and DX12.

@hogsy That's impressive! C for the engine core is solid for performance. Building your own graphics abstraction layer is ambitious but really smart for future-proofing. OpenGL -> Vulkan/DX12 migration will be way cleaner with that abstraction. Fox Toolkit is old school but functional. Curious what you'll replace it with!