The team of Avalanche Studios shared the details behind the development of Generation Zero, an anticipated game with open world invaded by hostile machines that will be out at the end of March.
How Generation Zero Appeared
Generation Zero is a natural continuation of what we have done in the past. We wanted to build on our self-published hunting games theHunter and theHunter: Call of the Wild, and reused a lot of the stealth action features we had developed. At the same time, we also built on our experience from creating big AAA action titles to create something that was aimed at a bigger audience. Basically, we combined the slow stealthy aspects of hunting with the fast-paced action of a shooter to try something we hadn’t done before but still using all of our previous experience.
Guidance of Sweden
The main thing that guided us were our own experiences living and growing up in Sweden. A big part of the development team has grown up here and we always felt that it is a setting we can recreate with much authenticity since we know it by heart. Most of the locations in the game are based on areas where we grew up or where we live today so it’s been more about recreating reality and referencing real life than looking at other products. The world and the background are obviously fictional, but even the alternate reality elements of machines are something where we’ve tried to ground it as much as possible in actual world and history, and taking as small a leap into fantasy as we could.
We’ve been making open world games for over 15 years now, and over that time we’ve built up a very powerful set of tools tied to our proprietary Apex engine. It basically begins with the creation of a map and a rough estimation of a height map, and then we go in and start sculpting the terrain using our volumetric landscape technology. To the terrain, we then apply default and specific layers of materials, and we have a tool for procedurally populating entire material and vegetation sets based on a rule set of elevation, slope, and other data. Then we go in and hand place our location assets, buildings, and props where we want them and follow-up with final adjustments of terrain and fine-tuning of vegetation assets to get an authentic and realistic feel to the world. Then we iterate and iterate as much as we can.
We have some tools to help us populate the world beyond handcrafting everything, for instance, spline tools for creating roads that automatically get populated with roadside poles and street lights. We have also used prefabs for some location assets and can randomize in between different setups when placing certain locations and interiors – as it would simply not be possible to do everything by hand in such a large world. Most things are on the implementation side though, so people will still experience the same world. The only thing that will differ is the amount, placement and type of loot containers, which are randomized for each player session.
The damage system is actually something we started building for theHunter: Call of the Wild that we wanted to update and improve, and the machines of Generation Zero provided the perfect opportunity. It originated as a system where the internal organs of animals were simulated to see if your bullet penetrated certain organs in order to down the enemy as fast as possible. With machines, the organs turned into components, and we expanded the system by having each component get an amount of health instead of a binary hit or not hit. We also tied some components to behaviors, so that you for instance can “blind” an enemy machine by destroying its optical component. Finally, we added an armor component, which shields all damage to a vulnerable component behind it, forcing you to get rid of the armor plating first. Not all machines are hard to destroy, but the more you play the more you will learn what are the weak spots to take them out quicker. There will also be skills and lootable components to help you identify these weak spots!
In Generation Zero, we have a day and night-cycle where we have full control over the weather and lighting. We can set specific conditions to different times during the day to direct the experience or let defined randomness give variation to each new day. Lighting is physically correct and real-time so there are no pre-calculated or baked shadows, everything except reflection maps is happening during run-time. We have screen space ambient occlusion, screen space reflections, and dynamic global illumination – light from the sun (or other dynamic lights) is bouncing and lighting nearby surfaces to achieve a realistic look and feel.
For vegetation we try to use as much scanned content as possible to keep the level of realism high, but when that’s not available or not suited to our project we’ve been using procedural solutions to help us save time in the creation process, compared to do it from scratch. Vegetation is procedurally placed in the world based on a number of rules that the artist set up (so that we don’t have to place them manually), and at any given time we can alter these values, doing huge changes to how the world is perceived with little effort.
The materials depend on what kind of asset it is. When propagating textures for vegetation (as mentioned earlier) and the landscape, we use a mix of scans and a procedural approach. For props, weapons, tiling textures etc we use yet another procedural approach, much based on the underlying model and normal map. Our talented artists, that have an eye for aesthetics, craft it all and put into our own physically based (PBR) shaders.
Open World Game Challenges
The hardest part about creating open world games is probably to provide variety to the player. Because the world is so big it is very hard to provide the necessary variety just through environments, props and other content. It easily snowballs the amount of time and people needed to build it. That is why we always try to incorporate mechanics that work together in an emergent way and encourages player creativity. If every item, weapon or dynamic object in the world has more than one potential use, and they can be combined in different ways to create fun gameplay, then there is so much inherent variety in how you as a player can take on any situation, that we don’t need to force it via content. And when we throw 4-player co-op into the mix, it gets even better!