For a number of reasons, I decided to try Blender for environments again. I wanted to do this for a while now, but the need to manually build collision hulls out of brushes, as well as the q3map2 compiler being annoying, kept me away from it.
I think the time is ripe for another attempt. I want to circumvent FTE’s patch mesh related problems – and let’s be honest, no one uses patch meshes anymore. I also want my assets to be future proof. BSP isn’t future proof. Patch meshes suck. And looking at the kind of detail in the SJ levels, I have to wonder how I managed to build that out of brushes without going insane.
I also decided to divide my levels into smaller parts. Instead of five or six mega-levels, SJ will then have perhaps 12 normal-sized ones. This has many advantages, too.
I went and broke up the herd base into three levels – Herdbase Labs, Herdbase Exterior, Herdbase Interior. The level changes will be visually smooth because some rooms are duplicated as needed. You can look into other levels at some points, even.
Then I exported Herdbase Labs into Blender. Here’s the result:
Everything gets chopped into random triangles by q3map2 during the conversion. Yay. Here’s that same area after an initial cleanup:
Much better. Turning everything into quads allows me to use Blender’s modeling tools to the full extent. Loop cut, bevel, you name it.
Trying to do environments in Blender is a whole different kind of business. You will be dealing with absurd amounts of polygons in a scene. Effective use of Blender’s navigation, view and selection modes becomes vital. Instancing and grouping objects becomes a life saver.
It becomes critical to divide your scenes into individual objects in the best way possible to preserve clean edge flow and topology. Trying to match up the edge loops of an entire room seems to be the road to failure. You need to start thinking in tiles and modules. And it is mandatory to learn how to snap things to the grid and perfectly align objects.
UV unwrapping things on the fly and pixel-perfectly aligning UV maps to textures is another required new skill. Doing trims is somewhat easier in Radiant, until you’ve got the workflow down for precision UVmapping.
I’m quite happy with Blender though. It is so much more powerful than any BSP editor.
What I’m doing now is slowly going through the environment, cleaning it up, and polishing objects that will occur in multiple instances. Doing environment art in Blender (or any 3D modeling suite) is probably a real test because of the amount of organisation needed. It’s not just learning the tool rather well, it’s also about establishing the best workflow.
I’m polishing these prefabs as I encounter them, in between cleaning up the topology of rooms. This will take a few weeks, but it probably is for the best. I hope to be able to use much of the old BSP levels as collision hulls / caulk hulls. We’ll see how that turns out.
Another thing you notice very quickly when going this route is that eventually, you will have to go fully modular. Not using repeatable modules is basically disastrous when you’re working at this detail level. My plan for the last few levels of SJ (those that aren’t a legacy from a Quake mod…) is to go for unique setpieces, but go completely modular for corridors etc. Doing all unique stuff is simply too time intensive.
In case you’re wondering how to convert all that back to brushes, I’ll have to disappoint you. I’m not planning to. The map compiler will have to deal with this. I have compiled maps including terrain meshes that have more polies than this entire environment, so I’m cautiously optimistic.