Hi everyone! Time for another art blog.
Today, I’ll talk about some of our art asset production workflow. Since we had started, our art production process has been through a lot of iterations to lead us to what we have at the moment. We’ve made plenty of mistakes and learnt a lot since then. We currently produce in-game assets in 3 different ways that I will explain below.
Back in 2013, when we first started with Monstrum, everyone in the art team did a little bit of everything and we did it using the classic asset production workflow. We would each pick an asset to model, map, and texture. We used this method for all our assets…. Character, environment, items, etc.
Classic asset production workflow. (Small, unique game objects)
The asset would be modelled with new geometry created entirely from scratch. We would possibly create a high poly variant in which the detail would be baked onto the normal map.
The asset would then be mapped to a single texture sheet, making sure that all the Uvs are compacted as tightly as possible.
Specific normals/diffuse/spec map created for object.
The advantages of working with this method was that it was useful for creating unique looking assets as each texture would be specific for an individual model. This would also be really easy to set up and manage in-engine. One model would be imported and one material applied.
However, this was a very slow way of producing assets. It also wasn’t the most efficient as we would have many individual textures which weren’t easily re-usable for other items. For larger environmental pieces, such as the modular tile sets for corridors, we were mapping the walls, floor and ceilings to a large 4k texture in order to sustain a decent level of detail.
Needless to say, the programmers hated us for this as this was incredibly expensive.
Currently, we do a lot of our larger more generic objects using a second method. Rather than modelling, mapping and then texturing, our artist Andy would make some smaller, tile-able textures using Substance Designer which could be repeated many times at little cost to performance. This method worked really well for a lot of our environmental pieces and more generic game objects.
Classic Asset Production Workflow (Larger, Generic Objects)
Again, new geometry is created from scratch. In a lot of cases there is usually no point in creating a high poly variant here as the idea is to apply reusable and repeatable textures, instead of extracting a specific-to-that-object high poly normal map into a confined UV space.
Generic, tileable, material based textures are created using Substance Designer based on the materials of the asset, or current repeating materials are re-used.
Geometry is mapped to specific parts of the texture that make it look right on the mesh. This results in a very chaotic looking UV set.
This way proved a lot faster and more memory efficient as textures were small and used on many different objects. We had one artist working on modelling and mapping, and one working on textures. This created assets with a very consistent style.
However, the use of the same textures too many times led to very uninteresting environments and sometimes models looked look lower quality if not done right. To make them appear more varied and interesting, decals worked really well, helping to break up the repeating texture.
The setting up of the materials of the model now takes a bit longer to set up as you are working with multiple materials.
Then we have a 3rd way of creating assets we don’t like to talk about….
The Frankenstein Method! (For when you are short on time)
This last one is useful when you already have large library of assets and materials available to you. As the name suggests, we take apart assets we have already created and splice them together to form new ones.
Assets are created using recycled parts of other objects, sometimes stretching or scaling things to fit properly.
These objects should already be mapped. If we need to create additional geometry sometimes, it is usually kept simple to make mapping quick and easy.
As parts are already textured, we don’t need to create anything new. Sometimes, if we have to create/edit additional geometry, we will try and apply it to any material that looks right.
As an example, this workshop lamp created using this method uses mesh pieces from an exterior wall lamp , generic room piping, and some main deck decoration pieces. We made extensive use of decal textures to break up the repetition of some textures, including the workshop ceiling texture and a generic metal texture.
This method is incredibly fast and efficient as it uses things we have already created. It also keeps models and textures consistent.
Something to note however, is that changing the textures on one asset will change them on assets using them elsewhere which can work as both an advantage and disadvantage.
How well this works is dependant on the assets you have available to you. This often results with objects with many materials applied, often leading to more draw calls which may affect performance. These materials will also be trickier to set up due to the number applied.
Anyway, I hope this gives you some insight into how we create our art.
Adam and the Arts.