Technical Artist from IOInteractive Joakim Mellergård gave a talk on brilliant VFX made for Hitman.
My name is Joakim Mellergård. Since early years I had access to a computer with Monster Truck, Microsoft Paint and Age of Empires. The first time I wanted to make video games was after playing Operation Flashpoint: Cold War Crisis and Mafia 1 but that was soon forgotten. In high school, I studied music and also played in a band for a few years. It was fun, but it doesn’t require a genius to realize that one would have to be very lucky to be able to make a living out of it.
After high school, I did some small jobs like mail delivery and a store clerk. At the same time, I tried finding something creative work. One evening when browsing the web for higher vocational educations (practical educations) I stumbled onto The Game Assembly ad in Malmö, Sweden, which claimed that they’d teach you how to make video games. It sounded funny and, in the beginning, not so realistic but I decided to apply. For two years in between small jobs, I worked on building up a portfolio, learning Maya from YouTube videos and also did some modding. My application at TGA went through and I joined their new Technical Art program. 1/3 of the education is dedicated to an internship which I did at IO Interactive. It later became my job.
VFX in Hitman
Hitman is a game in which you can mess with many things. We want to have this reflected in VFX where it’s possible. That’s why we make car tires and inflatable crocodiles deflate when they are shot. The fidelity we strive for is that if you expect that something to happen, we’d like it to happen. We want plants to bend when being touched by the player and see the paint from a burning vehicle to dissolve in the flames. I enjoy pushing the fidelity a little bit extra by exploring new interesting solutions. Many of these details in the game exist from being inspired by the scene itself. When seeing something like a beach I immediately think of adding fish, crystals in the sand, wet rocks, and buoyancy to an inflatable ball floating in the water. Sometimes artists and designers also make requests for these features which is helpful. Effects often require many iterations in order to get precise quality and behavior. Glacier 2, the game engine that Hitman uses, makes this easy by allowing manipulation/editing while the game is running.
There are many types of water shaders in Hitman and it’s something I enjoy making very much. Water is fun, it always moves and you have to kind of force yourself to stop looking at it. Depending on size, the water bodies in the game use different techniques. Big water bodies like oceans are physically simulated with Gerstner Wave function which makes them ideal for placing boats on top since the simulation will simply take care of the buoyancy for you. This solution was created for IOI by an RND studio called LABS.
My main contributions to the water in the game has been mid and small size water bodies like fountains and puddles. They lack physical simulation aside from ripples but features some other fancy shading effects like forward rendered lighting, refraction corrected depth reads, flow, overflow, and iridescence. We have a great rendering team at IOI and they also enjoy pushing the tech with the latest addition to water being rough refractions. Many water effects are based on Voronoi patterns which can appear ”gamey”(like a perfect swimming pool) but they are very difficult for an eye to read as repetitive, and it makes it a strong candidate when mapped onto flattish surfaces.
In the next Hitman game which is being released in November, all puddles will produce ripples when stepped on and even electrocute the poor NPCs if the puddle is exposed to an electric current. These interactive puddle decals are easy to use and place for environment artists. They’d simply create a ground pit and bake it to texture. In the engine, the artist can per instance fill the puddle decal with water using a simple slider and also change how muddy the water is. This not only looks good but provides consistency in the game.
I’ve been doing some tests on volumetrics for the game but none of it was used in the game for various reasons. However, fire is rendered using volume textures mapped onto smoke sprites. This way, the fire will, with just 1 or 2 layered sprites appear volumetric when the sprites move in the volume texture space. The texture also orients itself in the direction of the emitted smoke. This solution fixes the common problem of lonely sprites floating some distance from the main show. Another cool thing that we are doing is motion vector blending of sprites.
It’s a very simple technique that consists of a render target captured in world space around the camera rendering sprites with vector data into it. The foliage shaders can then sample this real-time written texture and move/rotate according to the vector data in the texture. The same method is used for creating ripple effects in water.
Whatever you are working on, be engaged in your work. Watch GDC presentations to get inspired by other people and their tech and VFX. Add features that you think are both fun to make and would give something special to the game. Try things out and also be ready to cut things out, if it compromises the shipment deadlines of the game.
Joakim Mellergård, Technical Artist at IO Interactive
Interview conducted by Kirill Tokarev