Running my own tiny game development company means many things. One of them is having to find ways to work faster, and find tools that let you do that. Some time ago I wrote an article about fast level prototyping using Unity primitives. That's a good method save for the fact that sometimes you need various sizes of elements, and resizing primitives can be time consuming.
This is where SabreCSG comes in. SabreCSG is a tool designed to help you quickly create levels inside Unity. It uses what we know as "CSG brushes" (which means "constructive solid geometry," and basically what it means is that you procedurally create the geometry on the fly, while the system "builds" it).
Using SabreCSG is very similar to using your regular modeling tools in Maya. A brush can take the shape of a cube, cylinder, sphere or prism. When you have created a brush, you can move, rotate, and scale your elements, as well as modify the vertices, extrude faces and also add edge loops or split a brush in two.
The workflow is pretty simple. Basically, you create your first brush, and then you resize it as you see fit. Then, you extrude the faces to add more sections to the level, resize, make Boolean operations, and so on. As you work, all the new brushes you create via extrude or slicing are added to the same group. However, if you manually create another brush (using the menu), it creates an additional group for it.
What's extremely useful about this tool, is the fact that you can export your level as an .OBJ file, so you can bring that object inside Maya and use it as reference for your different elements. When you get those elements inside Unity, you can be sure they will fit the CSG level perfectly, as long as you followed the reference, of course.
You can, however create the entire level using only brushes, though. It really depends on how much you want to spend creating your level with the toolset the application offers. However, A different option could be using a combination of the two: you could use SabreCSG to create the architectural part of the level, and then use custom models for the details and small things (props, ornaments, things like that).
In my case, I like the idea of using SabreCSG to create a prototype that I can build really quick for gameplay testing purposes, and then add my own custom models on top of it, so the SabreCSG level functions like a collision mesh for the entire level, and the custom models are just a "cover" that fall on top of the original level.
You can apply materials to brushes, or to specific faces of those brushes, and SabreCSG includes UV editing tools, so you can change the UVs. Again, the tool is designed to let you make entire levels, so it's cool to see the developers of this tool designing it so that it can be an end-to-end solution, and not something that feels limited when you're trying to do something the tool is not supposed to do.
If you're working on 3D games in Unity, SabreCSG should be a must have tool for you. It allows you to create levels quickly and easily, and anything that lets you work faster and better, is more than welcome.
Sergio Aris ROSA
Sr. Staff Writer