top of page

THE PERFECT PLANET

The Perfect Planet is an audiovisual project where you create and explore planets in search for the "Perfect" world. I used Unreal Engine to create the game/audio experience with Wwise being used for audio implementation (and also audio reactive elements). Each type of planet created has its own piece of music to go with it, and random encounters along the way add to the sense of exploration. This page will go through the development process going from prototypes to the full project. 

 

jump to gameplay video
​​

The final version of The Perfect Planet was not what I originally thought about doing. At first, I had the idea of a player being in the centre of a landscape that would change and react when they interacted with different "Music Nodes" that could be placed around the level.

However, when making the music node system, it wasn't very intuitive to use and the way I set it up made it impossible to play multiple sounds at the same time.

​​

The combination of this, alongside finding out that modifying a landscape at runtime (when the game is being played) is extremely difficult to do without expensive plugins made me look towards a different direction.

demonstration of the node system using 3D spatialised sounds and an audio reactive light 

Even if I did abandon this idea, I did learn how to use music cues in Wwise to trigger events in Unreal Engine (something I would use later on in the project).

The new direction I found myself exploring was inspired by the game Journey and how its music brings atmosphere to the game environment without combat or dialogue, but just with a focus on exploration. 

AV_Notes.png
initial project notes from 25/2/26

In these project notes you can see the initial thoughts I had, which were quite ambitious. Loads of these ideas made their way through to the final version but some of them would've been too much to do alongside everything else or just wouldn't fit with what I eventually would make.

I had the idea down, but now I had to think about the visual themes and the look of the project. 

Overall, I wanted to go for something that made use of Unreal Engine's lighting capabilities to create cinematic visuals that used light/dark contrast alongside some nature or forest elements. Through randomly watching the videos for DVNE's "Omega Severer" and Cult of Luna's "Cold Burn" I found what I was looking for. 

Both of these videos formed the visual basis for the project, with both contributing to the first proper prototypes. In particular, Cold Burn was a good discovery as that video is made using Unreal Engine and is a playable game/interactive music video (which gave me some inspiration for audio reactive elements within a track).

CultOfLuna-ColdBurn1.png
screenshot from the Cold Burn video
Dvne-Omega2.png
screenshot from the Omega Severer video

The first prototype I created was an interactive galaxy where the player can paint stars in a sphere around them. The stars were split into 13 different groups and each group that was activated would fade in a layer of a looped track. Pressing the painted region again would deactivate the layer and fade out the audio.

This was done through assigning specifics areas of the star sphere to its own PolyGroup (which groups the tiles for selection). 

In this video, you can see the different regions are coloured by what number the group is.

When the player clicks on that region, the tiles in the area are selected and it gives them the star texture. 

It then finds what group number it is, and fades in (or out) the associated music layer. This is done through a Wwise RTPC (real-time parameter control) which brings up the volume of the individual layer.

example of the blueprint code that switches on/off a
Wwise audio layer based on the group number
demonstration of the interactive galaxy from the prototype phase

The second prototype I made was a short metal track which was split into sections and triggered a variety of different elements in a level. It made heavy use of Wwise's audio cues to trigger events in Unreal at specific beat-accurate times. 

showing the custom labelled cues in the second prototype

By setting the cues to a custom name, I could have a great amount of control of what plays where. I could also layer cues on top of each other so that multiple things could happen at the same time.

Cues names "L1-4" or "All" triggered the 4 light pillars, and cues like "Trees" changed the layout of the red shadow trees in the third section. Other cues like "Mist Fade" were environmental and affected the fog, sun or stars. 

the audio reactive prototype in full

Visually it is heavily inspired by Cold Burn, as I aimed to capture that light/dark contrast and cinematic use of lighting featured in the video. Heavy volumetric fog also helped to pronounce the bloom in the light sources, and light shaft occlusion and light shaft bloom (added to the sun) paired really well with the environment. In particular it made a great effect in the third section where the trees split and fragment the sun light rays.

Following the prototypes, I decided to expand on the interactive galaxy to include the Perfect Planet puzzle and the random planet generation. The random planet generation was a slight challenge to add in, but when implemented I had a system where the player can use the music and recognise which layers activated which sound to figure out the "code" for the Perfect Planet. 

On the technical side, I wanted this system to be easy for me to work with and to save time I decided that if the combination of stars was incorrect, it would generate a random planet using a few different modifiers. When the random planet is formed, the game makes a choice between making a Barren planet or a Foliage planet before fading and switching level from space to the planet surface. 

The Barren planet would be a desolate landscape with a chance of spawning with or without rocks. The Foliage planet would make a choice between Grasslands or a Dead Forest which would have grass or dead trees. Each of these variants would then have a unique composition to match the environment. 

​The challenge came when I went to randomise the terrain and randomise the colours for each of the two planet types. After hours of trial and error (as well as many engine crashes from the landscape plug-in I was using to make and randomise the terrain) I finally got it to work. When the planet is formed, it sets a base colour and a slope colour for the terrain based off a set of 10 complimentary colours in an array for each. There is a colour array for the bottom and slope layer for both barren and foliage types so that they look visually distinct.

 

The colours of the landscape also match with the planet you see created in space before being brought to the surface. This was done through the game instance, which keeps track of data across levels. I used the game instance to carry across the planet colours, type of planet (barren/foliage), whether it will have foliage/rocks, and the seed for the landscape generation (a number which will randomise the look and position of the mountains, hills and flat areas of the terrain each time a random planet is formed)

AV_ExampleColourArray.png
random colour combinations for each of the two planet types
example colour array which is the base colours for the barren planet landscape type

It was at this point that I was looking back through the project notes from earlier to see if I could add any of the other ideas I noted down. At the time I still wanted to do more audio reactive visuals, however doing audio reactive visuals for each type of landscape variant would've took way too long.

image.png

As an example, this is the blueprint code I made just to structure out, sequence and trigger the events in the audio reactive prototype.​

Therefore, instead of each planet being audio reactive, I saved it for when the player creates the Perfect Planet. Since the focus of this project is around exploration, I figured that having everything audio reactive could take away from the experience and saving it for moments of added impact would work better when played as a whole game.

So, looking back at the list again, random encounters was what caught my attention and would help add something more unique rather than just a planet landscape with rocks or foliage.

image.png

I implemented this through, after generating the planet, using a multigate set to random (which selects any of the output pins​ and chooses that route)

For the purpose of this project (and time) I only added one encounter which is a campfire that acts as a rest stop in the middle of exploration.

The final part of the game I added in was the Perfect Planet itself. I wanted the audio reactive parts to build up alongside the track, which would add more impact to the reveal of the forest area that the player finds themself in. To do this, the first half of the track would trigger the stars to pulse in/out and slowly get brighter with each pulse until the sun light fades in. Taking inspiration from the prototype, I made the stars flicker intensely towards the end of the track to add a bit of movement in the background. 

AV_AudioReactiveBPArea.png
AV_WwisePerfectTrackMarkers_edited.jpg

on the left is the unreal engine blueprint code events to change the stars and sun

on the right are the markers in Wwise that trigger those events

Overall, I am happy with how this project has progressed. There were some technical issues with developing the project, however they were mostly problems with Unreal Engine and with the landscape plugin I was using. On the whole, it has allowed me to explore game composition using a more directly visual led approach which ties in really well with the concept of exploration in the game/audio experience I made. I feel there is a good visual cohesion across the project, which is helped by consciously choosing the colour palettes of the landscapes and having strong reference points that I was inspired by and able to pull ideas from.

The music helps drive the exploration and adds a bit of mystery as the player creates the planets, but I also enjoyed using music to break the player from that exploration such as in the campfire encounter. If this project could have more things added to it, I would definitely add more of the random encounters. Finally, I'm glad that I was able to have a variety of audiovisual interactions within the project and not have everything be audio reactive or the player needing to directly interact at something like with the galaxy.

gameplay of the full project which shows one of every interaction/encounter

The Compositions

a collection of tracks composed for the project
Barren Theme
00:00 / 01:25
Dead Forest Theme
00:00 / 01:23
Grasslands Theme
00:00 / 00:57
Campfire Theme
00:00 / 01:06
The Perfect Planet
00:00 / 01:07
  • Spotify
  • Instagram
  • Youtube
  • Bandcamp
  • Linktree

©2026 Jake Eves

bottom of page