So far we've mostly been focusing on getting features in the game, delaying super polished visuals until we were closer to launch. Our first draft houses were visually on-par with DayZ mod I'd say, maybe slightly worse.
However, recently we decided to revamp our residential house visuals as part of our push to get low level portions of the game into a really polished and fun state, both visually and mechanically. This includes gameplay in the wilderness and light residential areas (like farms and suburbs).
I wanted to share with you some of our process and the results we've achieved so far. Here is a screenshot of the living room of a version 1 house:
Our houses at this point were highly optimized, using only 2 draw calls and very low poly furniture. The rooms shared UV space to allow high enough texture resolution in a single 8k texture.
Here is the same living room, with version 2 revamp in-progress:
Here I've made a few changes:
- More, and more detailed decorations. We've added additional geometry while keeping performance under control with aggressive LODing. It could be further optimized with object pooling for all the small decorations.
- Individual 4k textures for each room in the house. This allows us to add a lot of small detail and varying grunge to each room, which adds a ton of realism. It raises texture memory and draw calls when inside the house, but the house is combined and atlased into a single object and a single texture at higher LODs, so overall performance isn't too much worse.
- Custom-made speedtree vine to add an overgrown feel.
In the previous screenshot, you can see that shelves and furniture still have that "floaty" feel. SSAO post-processing helps a little bit, but objects still don't feel grounded. In the shot below, I've added baked AO so the decorations now feel like they are really part of the house. I used the awesome tool Export2Maya to bring the whole scene back into an FBX that could then be used to re-bake AO in Substance Designer.
Something still wasn't right with how objects were appearing in the scene, and after playing with Unity's ambient light settings, I realized that everything being lit by ambient light is completely flat looking, because ambient light has no direction. So I needed to find a solution to light interiors better. Unity 5 global illumination was not an option because we don't use the built in scene loading methods, and since our world is streamed as you travel across it, Unity's GI bakes tied to scenes really doesn't work at all for us.
Finished version 2 living room:
In the shot above, you can see that we found a solution. We're using the GI Proxy asset, which is a great asset and is really the only "Global Illumination" solution for projects where the world is loaded dynamically. It makes a HUGE difference, as you can see objects have a ton more depth now. Since various sides of objects are lit differently from each other, they no longer blend into one monotone blob.
Here are a few more before and after shots:
One general design goal we have is that locations in the game should tell a story about what happened during the Frameshift apocalypse. A player should be able to walk into a house or encounter a wreck on the road, and be able to imagine the brutal ending of lives that occurred there. It should make them a little upset :)
So, as you can see above, the implementation of that philosophy within the house revamp was to add a little more personality to the rooms so the player can imagine who lived there.
After I got the workflow for the revamped houses hammered out, our Environmental Artist, Jeremy, took it to the next level, adding tons of detail and personality to the next house he created:
We're really excited about the level of quality we've achieved with this update. Feel free to leave comments or feedback below, or by contacting me via my email link on the homepage.