Go See Share fund: Vista creation in God of War Ragnarök

My name is Rachel Cassandro and I am an environment artist for BearHammer Games. I attended Abertay university for 3D art where I received a masters in games Development and have been working on environment art for BearHammer since September 2022.  Thanks to Creative Scotland, I got the chance to attend the Games Developer conference in San Francisco this past spring. Talking about everything that I learned there would take more pages than I can handle, but I’d like to  bring your attention to a talk that I attended by Ethan Ayer on the vistas in God of War Ragnarök. 

Something like vast terrain creation is usually something reserved for bigger, high budget studios, especially nowadays when a higher graphic fidelity is expected by the consumer. This pushed me to report on this talk as I hoped it would open the doors to this particular sector of environment art to indie developers and students.

The first thing that needs to be established is that the vistas of God of War are classified in different ways.

  1. Background vista: these vistas extend the background and give more detail to the player’s view. 
  1. Level Swap: these vistas swap the level that the player can traverse with a cheaper version that uses less draw calls/ polygons. 
  1. Hero: this type of vista is meant to be the focal point of a scene.
  1. Impossible areal scenario: exactly what it sounds like. These vistas typically include a bird’s eye view and take in a very large amount of terrain. 

In God of War these vistas are vast and time consuming and as such they require a lot of planning from a whole team. The way the God of War team tackles this task is by breaking it up in different areas. An example of this is using the golden ratio as a way to split the scene. When creating pieces such as these, atmospheric perspectives is very important and creating a sense of depth with size variation and color variation is vital. Most importantly though, the artist must prioritize an impactful design over an accurate one, even when creating an optimized vista of a playable area. Tricking the player into a vista which is more visually impressive is more important than making an accurate “aerial map”.

When it comes to asset creation, the team starts out by blocking out shapes in the engine and creating a graybox of what the scene will look like. The heightmap of this graybox is then divided into individual assets (making it  considerably easier to work with). Then these assets are brought into a terrain editor and put through erosion filters and anything else to make them seem more natural. After that, the mesh is brought in Zbrush and further refined, special care being given to areas that cannot be detailed in a height map. After that, the mesh is considerably optimized in proprietary software so that the polycount is heavily reduced. After that the piece is textured and reintroduced in engine.

Once all the terrain pieces are assembled, the team starts constructing and adding foliage, buildings and any other structures necessary. Of course these elements are intensive so they must be as optimized as possible (simple geometry with detail in textures and using atlases as much as possible). 

Another way to optimize is to make some cloud and fog cards to place in the level. These elements allow for a very localized and precise addition to atmosphere and ambiance. 

What I really enjoyed about this workflow was how easy it would be to adapt to a workflow with a smaller budget. All of this is achievable with free software and can be used for a variety of art styles. For example an alternative way of completing this pipeline could be done by using World Machine to apply erosion and Blender for optimization, texturing and further detail. 

All images from Ethan Ayer’s art station at: https://www.artstation.com/ethanayervfx

GDC talk available at: https://gdcvault.com/search.php#

Adventure Fitness VR Drone Documentation

Overview

The base drone model is a skeletal mesh with two material slots, 10 bones and 4 sockets. It is located at “/Content/AssetCollection/AF_Ltd_objects/SK_Drone”. All Drone animations can be found in “Content/AssetCollection/AF_Ltd_objects/Animations/Drone” and all material vatiations in “Content/AssetCollection/AF_Ltd_objects/Materials/DroneMaterial/NewDroneMaterialVariations/Materials

Materials

There are two drone material variations for the drone body. The main one is “MI_DirtyDroneGreen” which is used by default. There is also an alternate variation in red “MI_DirtyDroneRed”.

The eye of the drone uses a different material slot and can be changed independantly from the rest. By default it uses a simple red emissive material.

Animations

There are a series of drone animations already in the project. Some of these are ‘full animations’ (i.e. they affect every bone and are designed to be used standalone), others are only partial in that they are made to be blended with others at the same time.

These can be controlled and combined with animation blueprints. Animation blueprints are a set of instructions desgined to move the skeletal mesh between different animations dependant on certain triggers. Below is a simple example of the animation blueprint for the timer drones.

State Machine Overview
Offline State

Initially the drone is in an offline state. This sets the drone to use the ‘Anim_Drone_DropIn’ animation but with a play-rate of 0 so it doesn’t move.

‘Offline>Enter’ transition rule
Enter Transition State

For the drone to transition to the next state, a certain trigger must be met. Here, the boolean value ‘Begin’ must be true. This value can be changed by an external blueprint. In the case of the drone timer, when the player runs through the trigger volume, this value is set to true and the drone can transition to the ‘Enter’ animation state, dropping out of the sky.

“Enter>Idle” Transition Rule
Idle State

Once the drone has progressed through a certain portion of the animation, it will transition to the idle state. The Crashed state here is a seperate option for adding timer drones that have already crashed on the ground (i.e. don’t show the dropping in animation) but still show the time.

Particle Effects

The drone contains multiple sockets to attach particle effects to for blueprint actors. This might be too expensive for scenes with many drones planned on screen at once but is fine for less complex scenes.

The engine trail FX – to be attached in two instances to the sockets “EngineL” and “EngineR” – is a niagara system found in “/Content/AssetCollection/AF_Ltd_objects/Particles/FX_DroneEngineTrail”

The Drone Projector FX – to be attached to the “EyeInnerSocket” Socket – is a niagara system found in “/Content/AssetCollection/AF_Ltd_objects/Particles/FX_DroneProjector”