Unite India is here: https://unity.com/event/unite-india-2019
there is no need to create a vdb, but it works yes
Super taf! ;)
Leo Brynielsson shared the production details behind the stylized VR game Ghost Giant being developed by Zoink.
Hi, I’m Leo Brynielsson. I’m currently working at a game company in Sweden called Zoink. My time here has been full of intriguing challenges and exciting undertakings. I’ve had various tasks, but mainly I’ve been working with the environments in our latest games Ghost Giant & Lost In Random. It has been a great journey so far and I’m excited about the future.
Ghost Giant was a big project for me – a great learning experience and a nice challenge. I was responsible for texturing & modeling almost all of the environment assets, as well as lighting & building the environments in the engine. It may sound like a lot of work, but when I found an efficient workflow I truly enjoyed working like this. It made it easier to see everything as a whole and to not get stuck in the smaller details.
Building the Game World
The game world may seem like a very big and busy environment, and it’s built to seem that way. But in fact, it’s not that big. It’s built around the player and the player can’t move – which means I can use lots of tricks to make the player believe that it’s bigger than it is. This includes flat silhouette houses, faking depth in the skybox and overall being smart when placing objects to enhance the feeling of depth without having to overuse anything. It’s all about creating the illusion that you’re in a big vibrant world that’s bustling with life (you’re not).
A big obstacle in game development is maintaining good performance – especially in VR games. “I want dynamic lighting with global illumination and post pro…” nope. When building this kind of detailed environments it’s especially important to have optimization in mind from the beginning. Don’t push it until the end of the project, start thinking about it day one. It makes it so much easier to adapt and find ways to make the game look beautiful without pushing the framerate down the drain in the process. The three main things that helped the most for this project were
- Texture atlases. I used three textures for most of the environment assets. One for the exteriors, one for interiors & one for vegetation.
- Light-baking the environments and using a very simple albedo material for most of the assets.
- A modular workflow. A strong library of base assets that worked as a foundation for the environments.
When I started working on this game it had a really good foundation already. There was plenty of ideas, a story, concepts, and a playable demo. To go from there to a finished product is still a bit of a process though. A workflow that I find really efficient in the beginning is to block out the levels/assets with simple shapes, light them up and go from there. A step by step process. “I like the look of that, push it further”, “I don’t like that kind of shape, try something else”, “that’s an interesting color combo, explore it!” etc… The main thing, in the beginning, was finding that perfect shape language and overall figuring out the art style. At some point, I had a small library of base assets that I was really happy with. Some stones, trees, hills, and bushes. They became important benchmarks for what to aim for. To help myself in the process I made my own list of modeling guidelines,
- Start with big volumes
- Avoid straight lines
- Exaggerate the shapes
- Make sure it’s reusable and modular (not always applicable)
- Test it early, then iterate – Don’t get stuck on the details
- Exaggerate the shapes even more
The bigger picture is important, adapting to the step by step process. It’s almost like when you are painting, it’s much more efficient to paint the picture as an entirety than to paint it as individual objects.
When building the actual environments a good way to start is to ask yourself some questions. What’re the focal points in this level? What atmosphere do I want to portray? What kind of environment is this? What time of day is it? etc. As always, there’s cooperation involved when answering questions like this, it depends on the design, art direction, story, etc.
When laying the foundation of the level I think a good tip is to go as far as possible with as little as possible. Playing with shapes, height differences, focal points, lighting, and colors. Play with it as much as you can. If you can nail the right vibe with only a few assets you’re good to go. When building the first city-level of the game I started with only one modular house asset. I duplicated it 1000000 times (not really) until I had an interesting city composition. Much later on, I gave it some extra spice by replacing some of them, mixing in new architecture styles and different kind of shapes. For me, this was the most efficient way to work. I did not get stuck and I did not have to create all the assets early on, just the critical ones. It also became crystal clear what assets I really needed and what I did not need as much.
The textures in this game are more about color than the details. Brushstrokes that indicate something but not too much. The most important thing for me was that all the textures worked together as a whole and that they had this painted feeling to it. If there are too many details in one texture, it would take too much attention from the rest and it would be harder to reuse. It’s all about finding that perfect balance. Having the textures consistent in detail and style also made it so much easier to mix things up on the models. Turn a plank wall into a stone wall, no problem! That house would look better in purple, sure! Since I used texture atlases I could still keep it all on the same material and it was easy to re-map the textures. As a final touch and to fit with the crafty style of the game I used photo textures from plywood and cardboard as overlays in the corners of the textures, this helped blending it all together in the final product.
This project has been a challenging and fun experience. I would say that one of the bigger challenges when creating this kind of VR environments is maintaining good framerate and still have beautiful visuals. The road to finding all the different tricks and techniques to get there has been tricky and frustrating at times, but worth the effort. To create a game for VR has also been a mission in itself. Everything feels and looks different when you are inside the environment. Scale, distance and composition are harder to nail than if it’s on a regular screen. More parameters to consider and lots of trial and error.
This project has taught me the value of having an organic and iterative workflow, focusing on the whole picture and creating everything step by step – the first pass of all the environments, then the second pass, the third pass and so on. It does not have to look perfect from the start. Focus on the most important parts and build a strong foundation, then add some spice on top of that when there’s time. It also reduces stress because it makes it easier to prioritize and plan ahead. But most of all I want to emphasize the importance of solid teamwork, good communication and overall a positive work environment. I’m lucky to have awesome colleagues at a wonderful company.
Thank you for reading!
Leo Brynielsson, 3D Artist at Zoink
Interview conducted by Kirill Tokarev
Cartoon Water Shader by Adam Homoki is a fascinating highly stylized water material and a river tool with many features including buoyancy, caustic effect, refraction, water depth and more.
Any future updates are included and will be available for download in case they are released.