Long life to Embark studio and its fabulous procedural artists dream team !
Sebastien Laurent and Stefan Heinrich discussed with 80.lv some of the tools and techniques they have used for the development of Crytek’s Hunt: Showdown.
The concept for Hunt: Showdown started at the Crytek Austin studio, though in the beginning, the game was very different. When Hunt development moved to Frankfurt, we took a look at where the game was and where our strengths were as a team, and we decided to play to those strengths, turning it into the dark, bloody, tense FPS experience it is now.
In part, the direction was also influenced by the fact that we wanted to make the game we had always wanted to play ourselves—something that combined the tension of match-based shooters with the thrill of survival games into one expansive sandbox experience.
The CRYENGINE keeps on evolving, and we’ve taken full advantage of that for Hunt. Schematyc has probably had the biggest impact in that it reshaped how we tackle gameplay and AI features, and it really empowered the design team. SVOGI is another big one that we’ve used extensively for Hunt, as well as our brand new, incredibly flexible, particle system. We rely on that heavily. We also freshened up the rendering pipeline and made it leaner and more robust, which has paved the way for our upcoming Vulkan support.
The process of designing the first Hunt map was a long one. It took a lot of back and forth and trial and error before we figured out what worked, and what would be the most fun to play. When we build a map for the first time we start by generating rules, which cover things like the density of locations, their general layouts, size of boss spaces, number of clues, number of entry points, etc. Typically, when creating a new map, we start with the recipe (rules) and then look for interesting new locations and ideas within that framework. After that, we work with the concept and art teams to develop those ideas and create blockouts. We don’t draw any of it on paper though.
We knew what we wanted from a Hunt map—a replayable experience, tension, that creeping fear of the unknown—and those goals led us to create an open world that you can explore freely, and that is packed with randomized features. We had to get the balance of size, a number of locations, and feature variety right to prevent the space from feeling stale.
Depending on the phase of the mission, the level needs to do different things, and that adds another handful of factors to the design process. For example, at the beginning of a match searching for clues/exploration is the focus, so players are pretty mobile, and that lends itself much more to open, unrestricted, and natural space design. As the game progresses to a banishing/boss kill, where players tend to be static, the level requirements shift to very rigid and structured metrics and quite traditional space design at very specific locations in the map. In those areas, you need to design the spaces like little multiplayer maps within the larger map, while providing both teams with defensive and offensive options. Then, to complicate things further, we add AI into the mix with their own spatial requirements. It’s quite a lot to think about.
At every one of these design stages, we playtest to make sure it’s working and to make adjustments. Then we repeat the process until we having something we’re happy with. It’s a LOT of playtesting.
Landscape and vegetation
In order to create our landscapes we mostly use CRYENGINE tools. Hunt gameplay spaces require a lot of iterations to get right, so we will sometimes switch out a village or farm area for natural features like rivers, forests, and hills or vice versa. CRYENGINE’s terrain and vegetation tools, which partly offer procedural tools and methods, allow us to deal efficiently with most of the daily issues. We can solve most of our problems within a single tool and keep the pipeline slim.
Thank you very much. Our lighting relies heavily on SVOGI (Global Illumination). Outdoor spaces are lit by the sun, and cubemaps are only used for reflections. SVOGI provides us with one bounce, and since one bounce is not enough to flood interior spaces with light, we have specialized interior lighting setups that bounce more light inside. Those are more like a movie setup, created to achieve a certain atmosphere. We also have something in place to stop full occlusion of bounced light, which is sort of a cheat to create a second bounce reflection.
In general, we try to mimic the workflow used for movies. We want to achieve a very realistic base image with lots of nice gradients, value information, and dynamic range. We then use grading, for example, to achieve the bold golden look for the daylight setting.
In terms of performance, we have very few shadow casters, and we aggressively use view distance culling. In general, we need less lights because of SVOGI than we would in a more traditional setup.
Last but not least, volumetric fog plays a major role. Every light affects the fog, and fog is also affected by shadows. That gives us a very rich image.
We use several approaches to create materials and textures for the world. Natural materials, like forest ground, tree bark, or soil are usually based on scanned data. The scans give us great photorealistic data that we can use as a base to build tile-able materials. Other, more generic materials like metal, wood, and fabric, have been created using procedural methods. This allows us to create material variations very easily.
Historically, CRYENGINE has been used to create large, open world games with a high level of detail. For Hunt, this is no different, and we are using the same technology to solve similar problems in rendering and creating for a game that requires a big open space with a huge amount of content. The CRYENGINE is very efficient at dealing with a lot of objects, and with Hunt we’re pushing that as far as we can in a multiplayer title.
Well, there’s a little bit of everything. We use mocap as a base when we need to, but otherwise, everything is handkey animation. And yes, everything starts in Maya after the Tech Art guys provide us with the rigs. After we animate the rigs, we throw the animations into the engine. In the engine, we can then do the tweaking and smooth the things out with procedural animation to make the whole experience feel more dynamic and snappy.
There are always a lot of challenges, but for one, Hunt’s environments were (and are) tightly connected to gameplay—they aren’t just a backdrop—and as the game evolved during production, the environment requirements changed. With things constantly changing and before we had our Early Access players to help us test everything out, we weren’t able to lock things down. That meant we needed to be able to do quick and easy iterations to adjust to any changes, but also to simultaneously maintain a high level of quality with a small team of artists. So those are a few of the production challenges we’ve had to face and master.