Blog homepage

Jurassic World Evolution 2

Game Audio

Frontier Developments is a leading independent video game developer and publisher, founded in 1994 by David Braben. The company has a long history of developing best-in-class management games, starting with Roller Coaster Tycoon 3 in 2003, through to self-published titles like Planet Coaster and Jurassic World Evolution. A common thread running through these games is an emphasis on player creativity and sandbox elements.

The Jurassic World Evolution franchise allows players to design and build their own dinosaur theme parks, taking them through a fully voiced Campaign featuring actors Jeff Goldblum and Bryce Dallas Howard. The goal with the sequel was to deliver a bigger, better narrative, a more immersive sim, and the best dinosaurs. Mirroring events in the movie franchise, where dinosaurs roam the planet, the focus shifted from managing dinosaur parks to managing nature reserves. Our key goals were: 

  • Improve on Jurassic World Evolution
  • Have the best sounding video game dinosaurs
  • Create a soundscape that responds dynamically to the player’s actions
  • Use authentic sounds that fit a Jurassic World product.

In this article we will describe how we used Wwise to achieve these key goals and deliver some of the new features we had planned for Jurassic World Evolution 2. We shipped the game with Wwise 2019.2.8.

Footplant system

When designing a Wwise structure, there is often a conflict between where shared and unique sounds live in the hierarchy. The footplant sounds in Jurassic World Evolution were a great example of this. Each dinosaur family (Ornithopod, Theropod, Sauropod etc) had a unique impact sound, along with a shared surface sweetener. Random containers were duplicated in several structures in the Actor-Mixer Hierarchy. If you wanted to turn down surface sweeteners, you had to look in 17 different places. This allowed us to be very flexible in how they were mixed, but ultimately made mixing efficiently impossible.

For Jurassic World Evolution 2 we wanted to have everything in one work unit, which was easy to maintain and less prone to human error, but that still had enough flexibility to mix the shared sweeteners depending on dinosaur size/family and other game data.

img1

What we settled on was a blend container with impact and surface switches. When a footplant event is triggered, we use it to Set Switch to the correct family (OrnithopodHadrosaur) and set a Game Parameter to determine whether it is a front or rear leg (this parameter drives the switch highlighted in the image above). The event can also be used to Set Pitch and Set Volume if any mixing is needed.

img2

The footplant blend is played. A switch from the audio code determines the surface type. The range of dinosaurs in this game is huge: from about the size of a small chicken right up to the largest land creature that ever lived. The surface sweetener therefore needs a lot of processing to work. We achieved this by recording long takes of various surfaces in our Foley pits, and editing long sweeteners from the recordings.

img3

Using the Envelope function in Wwise, we can apply a shorter envelope to the sweetener, depending on context. For example, if a dinosaur is idling or moving its feet on the spot we’d use a slower attack and release, whereas when a dinosaur is running we’d use a fast attack and shorter release to emphasize this, making the overall length shorter.

img4

Idle, walk, and run data is sent as a combined RTPC. Pitching the sweeteners up or down for smaller and larger creatures to match the shared impact sound using Set Pitch and mixing them appropriately brings everything together. 

Footplants are crucial to dinosaur audio: they convey the size and weight of a creature, their speed and gait, and the surface they are moving across. Together with breathing, they form the majority of the dinosaur soundscape. Having footplant impacts and surface sweeteners in one place in the hierarchy, where they can be easily tweaked and mixed was crucial for delivering the best sounding dinosaurs.

A clear, readable bus structure

The bus structure in our games can get pretty complicated. There are a few simple things that we did in Jurassic World Evolution 2 to simplify it and make it more readable. 

img5

The image above is our ‘distance filtered’ bus – most 3D-positioned sounds end up here. We mainly use the Master-Mixer Hierarchy for dynamic mixing using States and RTPCs, as well as any reverb/effect sends that we want. Keeping the bus name as short as possible, with all the key information on the left makes the Wwise mixer view (F8) more usable, as the bus names are clearly readable.

img6

Any text in brackets tells us the bus is sending to an effects bus or has some significant state mixing. When debugging or mixing, it’s useful to remember that any sound sent to cre_Flying will be ducked underwater (duw) and that df_Moving is affected by a Camera Focus RTPC (cam) so that is why the roar might be quieter when a Triceratops is behind the camera.

Finally, the use of colour makes a lot of sense when debugging with the Voice Monitor. I cannot overstate how useful this feature was. Being able to scrub through the lifecycle of an asset and see what effect RTPCs/states were having is invaluable.

img7

From the colours in the image I can quickly tell what part of the structure I am looking at. Yellow is 2D ambiences, mainly continuous loops. Green is 3D positioned ambiences. The two shades of purple are dinosaurs.

img8

The unique sounds are coloured in a different shade of purple to the shared, making the vocalisation easier to spot. We would often have volume issues with these unique sounds because they were often only used in very few animations, so mix issues could be easily missed; being able to pick out a specific problematic asset from a wash of other well-mixed shared assets is very valuable.

Flying reptiles

One of the big new features for JWE2 was the addition of flying reptiles. There were a number of constraints/assumptions that we based the technical design on. 

  • Reptiles are either released inside or transported in via a helicopter/drone. 
  • When the freely moving camera is outside the aviary, reptiles inside should be silent. 
  • When the camera is inside, the outside world should be silent. 
  • When the reptiles get uncomfortable and escape, they need to make noises outside.
  • The only way a reptile can be outside is if they escape.
  • Aviaries are closed systems sealed from the outside world, constructed from a solid, glass-like material. While not strictly true, when it came to technical design we treated the aviaries as closed systems in order to make the implementation easier.

We had two pieces of data. One was a Game State that reported the location of the camera/listener:

  • cameraOutside
  • cameraAviaryInside

We also had a Switch set on each of the dinosaur emitters: 

  • insideAviary by default
  • outsideAviary if they escaped 
img9

 

img10

 

 

We have hundreds of different random containers of sounds for seven different flying reptiles and every single one of them uses this structure. This system works perfectly, but relies heavily on the assumptions listed above. 

img11

Setting up the system was a careful process, because missing a state or switch can cause sounds to be silent. The main flaw to this system is inflexibility: if the camera is outside, and there is a creature inside, that creature is silent. We have multiple aviary types in the game, including a temporary-style structure, built with metallic mesh, used by the Department of Fish and Wildlife. Outside the dome you should be able to hear reptiles inside. With the data we had to use, and the approaching deadline, it felt like an acceptable compromise to make. 

The globalGameState

In this project, the globalGameState was one of our most handy problem-solving systems. In Jurassic World Evolution and past games, we have a global state that reports the macro-state the game is in:

img12

In this game it got pretty big. Our fantastic audio engine has some nice features, and a particularly useful one is to send a pair of _start and _stop events as the game switches through globalGameState. Entering the game map view sets the state to Game_ViewBuilding and sends   Game_ViewBuilding_start/stop to Wwise. This is a circumstance where we’d ask audio programmers for an event, so having this functionality built in is very handy.

The thing that makes this state so useful is that it’s very macro. It’s a set of broad strokes for making big mix changes. As such, we try to confine state mixing that uses it confined to the grandparent buses of the Master-Mixer Hierarchy where it is very useful for mixing. 

Switching to a riding view inside a Gyrosphere (Game_Vehicle_Gyro_1P), we can use the globalGameState to un-bypass an effect on the external ambiences, muffling them, use the event pair to start/stop some 2D internal ambiences, mute the audio of dinosaurs and do a pre-fader send to a new bus that’s audible inside the Gyrosphere which makes the dinosaur audio thin and tinny, and send it to a glassy internal reverb.

It’s another great Wwise feature that, with a small amount of audio code work, we can use to independently create a totally different mix for a space.

Meters

Meters are the best. 

img13

We use a meter bus on JWE2 because it provides flexibility: you can send a signal to the bus for metering, or you can attenuate the signal with an RTPC or state. A great example of a fun meter application is using them as an Envelope follower, and using that envelope to drive real-time parameters on other containers. 

img14

We have a gusty wind sound that uses Emitters with Automation and a random container with a random delay to pan occasional gusts around. With User-Defined Auxiliary sends, we can send this bus to our meter bus mtr_2d_windGusts.

img15

The meter effect on the bus is set up as a pretty accurate Envelope Follower, outputting to an RTPC meter_2d_windGusts. This RTPC is then used to drive other wind ambience dynamically: when a random gust is triggered, the RTPC goes HIGH, and we can say remove some Low Pass Filter RTPC on a ‘Wind through the trees’ sound for instance, making the random gust sound seem like it is affecting a different sound.

If we decided there were situations where we didn’t want this effect while it was raining, we could use the Rain_Intensity RTPC to mute the volume of the send.

Leveraging powerful new Wwise features such as envelopes, meters, and macro states made our work and the mix much simpler. There were a host of features we haven’t covered here that we also used and loved. Special shout-outs to the Random parameter generator and the LFO.

Thanks to the whole Jurassic World Evolution team.

Further reading: https://www.asoundeffect.com/jurassic-world-evolution-sound/

The audio team

Alex Vincent (Senior Audio Producer) 
Ben Hammond (Audio Test Engineer)
Dan Matarov (Graduate Audio Programmer)
Duncan MacKinnon (Audio Lead) 
Dylan Vadamootoo (Senior Sound Designer, Audio Lead DLC)
Gavin Chuong (Audio Rigger)
Hakan Yurdakul (Graduate Audio Programmer)
Henry Flewitt (Sound Designer)
Ian Hawkins (Senior Audio Programmer)
Irma de Wind (Music & VO Supervisor)
Jim Croft (Head of Audio)
Janesta Boudreau (Music & VO Supervisor)
James Stant (Dialogue Manager, Senior Sound Designer)
Jamie Stuart (Senior Audio Programmer)
Luigi Platania (Graduate Audio Programmer)
Matthew Mainprize (Sound Designer)
Michael Maidment (Senior Sound Designer)
Valentin Goellner (Senior Sound Designer)
Will Augar (Principal Audio Programmer)

About Frontier Developments

Frontier is a leading independent developer and publisher of videogames founded in 1994 by David Braben, co-author of the iconic Elite game. Based in Cambridge, Frontier uses its proprietary COBRA game development technology to create innovative genre-leading games, primarily for personal computers and videogame consoles. As well as self-publishing internally developed games, Frontier also publishes games developed by carefully selected partner studios under its Frontier Foundry games label. 

About Jurassic World Evolution 2

Jurassic World Evolution 2 is the critically-acclaimed sequel to Frontier’s highly successful Jurassic World Evolution, building upon the ground-breaking and immersive 2018 management simulation. It introduces a compelling, new narrative campaign, incredible new features and awe-inspiring new dinosaurs brought to life with captivating authenticity. Together with expanded construction and more customisation options, the result is an even bigger, better and authentic Jurassic World game.  

Duncan Mackinnon

Lead Audio Designer

Duncan Mackinnon

Lead Audio Designer

I am a lead audio designer who led development on the initial release of Jurassic World Evolution 2. Prior to that I worked on Jurassic World Evolution, focusing on dinosaur sound design, and Elite Dangerous, mostly on ship audio.

Comments

Leave a Reply

Your email address will not be published.

More articles

Lumote: Using Wwise to Drive In-Game Visual FX

Hello to everyone out there in Wwise user land! My name is Paul Ruskay and I am the Audio Director...

5.2.2020 - By Paul Ruskay

About Dynamic Music Design - Part 1: Design Classification

Background I got my first job as an Audio Game Engineer in 2015, which is when I was introduced to...

28.5.2020 - By Chenzhong Hou (侯晨钟)

Rain and Terrain: How Animal Crossing New Horizon’s Audio Design helps even the Totally Blind

Animal Crossing is playable by the totally blind! These words have shocked many people to whom they...

17.6.2020 - By Brandon Cole

Menura | Step Up Your Sound Game Jam

This article was written following the second annual Step Up Your Sound Game Jam, an Android mobile...

11.5.2023 - By NekoLogic

SEASON: A letter to the future | Experiencing field recording as a game mechanic

Introduction SEASON: A letter to the future is an atmospheric journey filled with soul-searching,...

5.7.2023 - By Vibe Avenue

Audio Optimization Practices in Scars Above

Introduction In this document, I will try to explain the different principles that we applied while...

24.8.2023 - By Milan Antić

More articles

Lumote: Using Wwise to Drive In-Game Visual FX

Hello to everyone out there in Wwise user land! My name is Paul Ruskay and I am the Audio Director...

About Dynamic Music Design - Part 1: Design Classification

Background I got my first job as an Audio Game Engineer in 2015, which is when I was introduced to...

Rain and Terrain: How Animal Crossing New Horizon’s Audio Design helps even the Totally Blind

Animal Crossing is playable by the totally blind! These words have shocked many people to whom they...