A couple of days ago, we had the pleasure of interviewing Alvar Jansson, the lead graphics programmer on Mad Max. Alvar told us Avalanche’s plans for its Avalanche Engine. In addition, Alvar revealed that the team is currently experimenting with some interesting tech that may take advantage of both DX12 and dynamic tessellation. Enjoy!
DSOGaming: Before we begin, please introduce yourselves to our readers.
Alvar Jansson: Hi! My name is Alvar Jansson, I’m Lead Graphics Programmer on Mad Max, which means I’m responsible for the code side of the rendering and effects on this project.
DSOGaming: Mad Max will be powered by the Avalanche Engine. Can you go into more tech details about its graphical features? (Parallax Occlusion Mapping and Screen Space Reflections support, whether it will have a full dynamic shadowing system, etc.).
Alvar Jansson: Since the Avalanche Engine has been used in several games, it has picked up a lot of graphical features along the way. The engine is optimized for open world games so you will find dynamic time of day and dynamic weather, with some big sand storms. Mad Max is set in The Wasteland where a lot of the ground is visible, so we added parallax occlusion mapping to give some depth to the terrain material.
There also isn’t any living vegetation, or bodies of water, so the variation in shaders range between materials like sand, paint, blood and chrome. We’ve got some very talented lighting and effect artists, and we work a lot with light projections and dynamic shadows as well as fire, dust and debris swirling around to create motion and variations.
DSOGaming: Avalanche Engine rivals CRYENGINE, Chrome 6, Unreal Engine 4, Frostbite, Dunia, FoxEngine and AnvilNext. Do you feel that it has what it takes to rival/beat them? What’s your future plans for it tech wise? And what new graphical features will you implement in order to make it stand out?
Alvar Jansson: The Avalanche Engine is definitely evolving. We’re developing a new volumetric landscape system that will change what type of layouts we can have in open-world games. A DX12 pipeline is also in the works, and we are researching different types of cluster-based shading. We are always aiming to support freedom and destructibility on a level that I think makes our games unique.
DSOGaming: Can you share more details about the game’s lighting system? How many number of simultaneous light sources will there be? Also will there be any Global Illumination effects and if so, can you share more details about your GI solution?
Alvar Jansson: We use a classic deferred lighting system that uses hundreds of active light sources. There’s a system for prioritizing the rendering of dynamic shadows, and the number can be scaled based on performance.
For secondary illumination from the sunlight, we use a system that filters and back-projects the ground color, this is also used to soften hard shadow edges, giving the impression of illumination from a sun halo.
DSOGaming: Mad Max is an open world title, making it by definition a CPU-bound title. Will Mad Max take advantage of more than four CPU cores? Will it support AMD’s Mantle, and are there plans for a DX12 post-launch?
Alvar Jansson: Many systems such as culling, physics and animation run on a task based system, so that will scale to many hardware threads.
DSOGaming: Lately, we’ve seen titles suffering from noticeable pop-in of objects. While some games have higher LOD levels, every game – more or less – suffers from it. What’s really puzzling us is that while dynamic tessellation basically solves this problem by varying the level of detail on the fly, no one has ever used it. What’s your opinion on dynamic tessellation and have you experimented with it in order to eliminate object/environmental pop-ins? Also, what’s your LOD solution in Mad Max?
Alvar Jansson: With the large open world, we have a LOD system that goes from tens of kilometers down to centimeters. To avoid popping in the landscape mesh, we use spatial geo-morphing. The high-res terrain LOD also contains the lower LOD’s positions so that it can blend itself out seamlessly. For long-range environment meshes we use object-space normal maps, since they give a more consistent lighting result when the topology changes. We stream the mesh LODs and texture mip levels asynchronously, ideally just what you see will be read from disk.
Dynamic tessellation is a very interesting tech. There has been some good looking examples of it being used to do detail in close-up meshes. We have a prototype of it running on our upcoming landscape technology.
DSOGaming: What were the technical challenges of creating Mad Max?
Alvar Jansson: The game has a lot of surface area and a dynamic day cycle, so we use algorithms to create parts of our world as the player gets close to it. This requires us to have minimal pre-baked assets, so it can be a challenge to give artists and designers the right level of control. With Mad Max, we’ve tried to create a balance between tuning procedural systems, and manual authoring. Each new control parameter increases the complexity of the procedural placement code, while every parameter we remove will generate more traditional artist work. I think in the end we struck a good compromise, where most of the colors are hand-set, while we kept the procedural rock/debris placement system.
DSOGaming: [Fans Question] How can you convince us that the PC version of Mad Max won’t be a ‘mere console port’?
Alvar Jansson: The Windows version has been continuously developed as one of our main platforms and is being given just as much attention. We also have a strong track record of producing games that are fun to play on the PC.
DSOGaming: Thank you very much for the interview, any last words you want to share with our fans?
Alvar Jansson: Thanks for the questions! Always great to see dedication to PC gaming and hardware. Hope you enjoy crashing cars and big explosions.