There are a lot of in-engine art, textures, shaders and render settings which are all separate but have to be dialed with love and precision to make the game look anything like our target concept art. None of the systems know anything about one other, so their relationships and intermixing has to be all tuned by eye. So often we’d get a few things working well together, but one system just wouldn’t click and we’d have to come a the problem from a different angle.
Occasionally we would hit a dead end with a specific component and have to rewrite a new system to give us the desired results. Our fog system initially worked out quite well, but it started to fall behind after we got all the other systems up and tuned forcing us to design and create a new one.
Many people will probably look at a level and see a nice sunny sunset without realizing that it’s created with all these different systems which don’t have any connection to each other. Each control is like an instrument requiring tuning so that they’re all playing the same song.
The first step was to try and get the game as close to the concept art as possible using the in-engine controls. This required level-specific assets such as ground texture maps, the skybox, the fog, real-time lighting and baked lighting. There’s a few more rendering controls but they’re kept at ‘zero’ for now and only used near the end of the process, which will be explained later.
A fantastic aspect of the Unity engine is the Asset Store community and all the goodies and gizmos available there. Often we would experiment with an idea and find an asset on the store which could help with the execution. ‘Expensive’ ideas could be prototyped and explored very cheaply by grabbing something already built. There was no need to code an entire lens bloom system to test out a particular look as you can just get it off the Asset Store store for $10. If the prototype worked, we would often then write our own system to best integrate with our game, but what an amazingly broad and deep ecosystem to have available.
Asset Store components we kept and used in the final game were: