Today’s post is about the many of the approaches that we took regarding lighting, level design, and environment design.
First, lighting; during the past couple of months we worked using a static lighting approach, using only lightmaps and avoiding any realtime lighting in order to achieve better performance.... Well, that wasn't as optimal as we thought. Even if the artstyle of the game looks “simple”, it’s really challenging to make it look as clean and nice as the concept art. Using a full static lighting setup demanded a lot of resources, and by a lot I mean more than a thousand lightmap textures just to have decent looking lighting. This wasn't acceptable, so I started experimenting.
From static lighting I went to full dynamic. I was shocked at how well unreal Engine 4 manages dynamic lights, and how everything looked clean and crisp. However, the scene lacked indirect lighting. When I started to simulate all the indirect lighting of the scene, it looked very good but there was a noticeable performance hit due to the quantity of lights used in the scene, so I moved on.
Then I tried a hybrid system, the “stationary” approach, and I instantly realised that this was the one. Yay! Now I had the dynamic direct light and the indirect baked light, it was perfect. This approach let us have real time shadows, and the indirect lighting baked into lightmaps. Since the lightmaps only contain the indirect lighting, we got rid of the ugly artifacts and blotches from the full static approach, plus it takes much less time to bake. This is why we are using the hybrid lightning model for BitUp from now on.
Depending of the type of game, you will need to experiment a little (or a lot) with lighting, until you find the right workflow. The artstyle of BitUp had a huge impact on this part of the process for us, as it turns out that a lot of small non-uniform cubes make it a living hell to use static lighting.
Thank you for reading, and please share if you like it!