Tutorial: Make low-poly buildings for games
Matthias Andre shares his expert tips on creating great-looking structures for real-time strategy games
This tutorial will share a few things that I’ve learned about how to successfully make good-looking buildings for real-time strategy (RTS) games. There are a lot of factors to consider when modelling for this genre, and each project is different when it comes to things like technical requirements and limitations – as well as the art style, viewport perspective and so on – but there are some things that generally remain the same across the board.
I’ll explain a few techniques that I use to speed up my workflow, how I maintain look consistency, and strategies I use to avoid problems at every stage in the game development process.
01 Ask all the right questions
Before you start, it’s always important to find out as much as possible about the technical limitations and requirements of the project you’re making the models for. The best thing, if you have the opportunity, would be to speak to the developers (the programmers and coders) directly, and ask them about the requirements and limitations. Find out what the poly budget is, what type of maps are needed (diffuse, spec, normal and so on) and how big they may be. Ask about how the buildings are placed on the terrain in the game, the scale and camera distance. (Is the camera fixed? Can it zoom in? If so, how far?) Will there be LOD levels? Is shadow geometry required? Will the buildings have different states to represent health? And so on. Ask for graphic samples and concepts to get a better feel for the style of the game. This might sound obvious and should usually be part of the brief, but you’ll be surprised at how many little hurdles you’ll uncover when you ask a lot of questions at the beginning.
02 Research and brainstorming
If you’re lucky, you’ll be provided with concepts for all the models you need to make. If not, then you’ll need to spend some time collecting ideas and getting your head around the subject you’ve been asked to model for. It may seem a daunting task at first glance, but it can be broken down into steps that will keep you moving along. I usually browse the web for images and collect them in an inspiration folder. It can really be any part of an image that gives you an idea, or it could just be a colour scheme that works well with what you want to do. Ideas will start to mount and merge in your head while browsing images.
03 Rough it out and note down your ideas
Generally, RTS buildings are viewed from a distance and need to be easily recognisable in their function. That’s why in most cases it’s a good idea to think of them as icons. Work with exaggerated proportions when you want to draw attention to something. Unless specifically asked otherwise, don’t use realistic proportions – this will give you an unrecognisable mush to look at from a distance! That’s something to keep in mind when you start modelling.
By the time you begin modelling, you should have a rough idea about the buildings you’re planning to make, be it from concepts that you were given or ideas you collected yourself. RTS buildings commonly come in a series of at least a few, so the first step is to make quick, rough box volumes for every building in one scene, using cubes, cylinders, spheres and other primitives to block out the overall volume and shape of each one. This serves as a way to note down ideas that are still fresh in your mind from doing the research. If you have an idea for a winery, for example, that’s built around a huge wine barrel, you can hint at that with your box volume and it will be easier for you to remember later on when you get around to modelling the details.
When you have them all side by side, you’ll have a good idea of how they relate in size and shape, which will be important for consistency later on. The worst thing that can happen is that all the buildings you made look like they’re from different artists and for different projects when you finally put them side by side at the end. Only when you’re happy with how all the buildings relate to each other should you move on to the next stage, because it will be a lot harder to move elements around freely and quickly later on.
04 What to consider when modelling
The next stage is detailing the box volumes. I do this inside the scene with all my box volumes for reference, because when modelling details it often happens that the volume of the model changes. At this stage I model all the major details that I want the building to have, and I clean up faces that won’t be visible because they’re underneath or inside the model. I try to keep everything geometric and straight at this stage because it makes the UV unwrapping a lot easier. Bending walls and roofs, rotating objects, bevelling and tapering edges and twisting beams comes at the end, after texturing.
Often, buildings are placed on a terrain without flattening it in-game, which means that if your building is placed on uneven terrain, one edge will be floating in the air, while another is stuck underground. For this reason I tend to build my models on a type of plinth that extends a certain distance below ground level and elevates the building above, so when the building is placed on the terrain, the plinth anchors it to the environment.
05 UV mapping and thinking ahead
The next step is to prepare the model for texturing. I leave most of my buildings aligned and straight before unwrapping them, so I get a fairly good result from automatic unwrapping tools – in other words, UV shells that are easily recognisable and undistorted. I connect as many shells as possible to one large shell to minimise seams, and I use no overlapping UVs. I know that many people will say this is a waste of texture space, but it really helps in a lot of areas.
Often, clients will realise at a later stage in the process that they actually want normal maps with their colour maps, specular maps, snow on the upwards facing surfaces, damage levels and so on. When you have shared UVs it’s difficult to implement all this. Another reason is that you can use texture painting programs such as BodyPaint or ZBrush Polypaint to generate your textures, which means you won’t have to spend hours fixing seams. You can paint directly onto your model, which makes texturing a lot easier. It also enables you to give your buildings more character and make every wall unique.
You can paint in ambient occlusion and shadows, which will greatly enhance the look of your building. From a distance, a few well-placed gradients and shadows can do a lot more to define a shape than a crisp, detailed but flat colour map could.
It will also make things easier when you need to reduce your geometry for LOD models. If you’ve tiled a brick texture across a wall, for example, and now need to reduce the wall subdivisions, you’ll get a big jump in the texture that’s visible from a mile away.
06 Texturing techniques
As I mentioned above, helpful tools to use when texturing are programs such as BodyPaint and ZBrush. I like to use Polypaint in ZBrush and then do the detailing in Photoshop. To start with, it’s also a good idea to bake some light and shadow, as well as ambient occlusion, from your modelling software into the texture. This will give you a good black and white starting point for your texture work and can serve as a good overlay later.
Work big. When I’m asked to make a 512×512 texture for a building, I do my work in progress in 2,048×2,048, because for me it’s much easier to work big and rough and shrink things down at the end than to spend time pushing pixels around. It’s a more forgiving way to work, and I also find that it tends to give me extra details for free when shrinking the texture down at the end.
The first building in a series usually takes me the longest because I need to work out a colour scheme and decide what materials will be used in the architecture. I then go ahead and create tileable textures of the materials (wood, stone, roof shingles and so on) that I’ll use as base materials to texture all the buildings with. This again helps you to maintain a consistent look across a series, and greatly increases your texturing speed towards the end.
Once all the base materials are laid out across a texture, it’s just a matter of overlaying the occlusion and the light and shadow passes rendered out earlier, and then doing some manual fixes on details and seams.
07 Clean up and add the final touches
When I’m done with texturing I go back and make some final touches to the model. I sometimes put some divisions in walls to make them concave or convex, or bevel those low-poly wall edges to get rid of that cardboard low-poly feel, twist beams, rotate objects, give the roof a little bend and so on. Things like this will give the model more charisma, and make the silhouette more interesting. Next I turn off the texture, triangulate the model and go over the building, softening edges on planar surfaces and hardening others to define edges. This will help to avoid shading artefacts and make the building look acceptable even with a basic shader to begin with. Finally, I check the building with backface culling on to make sure all normals are facing the right direction. At the end I make sure I delete all construction history, connections and objects, as well as other junk that’s accumulated in the process, and export the model using FBX. This should preserve the necessary data and import into any game engine.
Matthias Andre has been working in the games industry since 2004. He’s worked on series including The Guild and Black Mirror