In yesterday’s announcement, Sylvain and I (Adriaan) announced that the Factory update will release on June 15th (HYPE) and we talked about the process of putting together the graphics and stories in the world. Today, I’ll try to explain in a non-technical way how we continue to add interactions and systems to those graphics, and sound designer Martin Kvale will step in to show you what sounds do with the Hidden Folks areas.
Making the interactions in Hidden Folks starts with Sylvain placing the pulled-apart objects in an ‘Interaction scene’. I then go through this scene and slowly put things together while writing code for new functionality if necessary. As an example, most interactions in Factory consist of only a few interactive scripts: rotators, sliders, and buttons. Here are a few GIFs that should give you a vague idea of the kind of technology behind it:
In the image above, you can see that the handle has a slider script that 'talks' to every part of the robotic arm individually. When you put the stuff together, it looks way more complicated - but also more coherent - than it actually is.
The crane has various different kinds of components: slider scripts for the pokes, a script to move and a script to stretch the crane's line, a script for the magnet to follow the end of the line, and scripts on the magnet to be able to pick up things.
In this image, the button on the top left creates a crate and assigns it to the conveyor belt, who then moves the crate to the button that determines which conveyor belt to send the crate to next.
In the example above, you can see that the vault wheel changes the water level of the basin, it makes the air pockets stretch up and down, and it makes the water levels in the canisters go up and down. What you see here is 6 different systems talking to each other. Pretty cool, I think! Without spoiling it too much, here is a GIF highlighting different parts of a system in the small area you'll get to play before the big Factory, a system of which you've already seen all components individually in previous GIFs:
I can already hear some of you asking: "So where's that Steam Workshop integration so we can put shit together outselves?!" Well.... my component-based system built in Unity has three relevant drawbacks:
If I want things slightly different, I need to add functionality to a script by actually coding stuff. What's relevant to say here is that I need to add functionality without breaking any of the 1000 other systems that use it. This is... tricky, to say the least. If I wasn't a programmer, this would have constrained my creativity a lot!
In order to get the results you want, you'll really have to know all the in's and out's of all scripts and know how to combine them. It's really hard for me not to get too technical here, but some scripts like the conveyor belt scripts pass objects to each other ("Here's a box! Do with it whatever you want!"), while others just pass numbers to each other ("The player dragged this slider to the max!"), and many don't even pass on input at all but just do whatever they want ("I'm just rotating here, don't mind me"). In other words: my code is a mess and only I (Adriaan) really know how its components can work together. This is the reason I put all interactions together and Sylvain keeps his distance from it, and it's also the biggest reason you won't see Steam Workshop support for Hidden Folks. There's just waaaaay too many implicit rules that would take me months to write down.
Finally, and this is a very technical thing, the components I wrote make use of Unity's event system all the time throughout the project, which constraints making areas in Hidden Folks to use the Unity game engine, which would force a potential Steam Workshop feature to happen inside the Unity engine, basically asking players to make the game from scratch like we do. This would be ridiculous.
So anyway... Everything you find in Hidden Folks that moves or responds was put together or touched by me. The new Factory has exactly 3800 interactive objects that were each carefully put together and placed within their own system. Here's a few highlights:
You'll figure out how these and all the other interactions in the Factory work once you get your hands on them June 15th! :D
Another thing that we put a lot of effort into are the sounds. Even though Sylvain and I recorded every sound you can hear in the game, we asked sound designer Martin Kvale to do the mixing. I'm handing the mic over to Martin to tell you all about sounds in Hidden Folks! Martin?
AGGHUM, yes, hi, I'm Martin! Adriaan and Sylvain asked me to take good care of the audio in the game. They had already done heaps of great sounds effects, but needed someone like me to make the areas really come alive in terms of sound. I've primarily been placing sound in the areas, as well as balancing the sound volumes throughout the game. I also designed a system to manage the volume and reverb of ambient sounds throughout the game.
From the very start of my collaboration with Adriaan and Sylvain, they made it clear they wanted all sounds to be mouth made, unedited, and all made by Adriaan and Sylvain. This separates it from games like Eggggg and Burly Men at Sea who use human voices but modify it somewhat, as well as having music playing in the background.
The process of recording was done in batches, usually over Skype, with me on one end of the call listening (with my microphone muted) to the sounds Adriaan and Sylvain made, giving them suggestions on what to try next. Here's an example of me editing Adriaan making vulture sounds:
https://www.youtube.com/watch?v=poz0wVPJNbA After our recording sessions, I would cut the sounds out of the recorded track, pick the best ones, and either add them to objects in the game or add them as ambient sounds to an area. For the pleasure of your ears, here's some really good sheep sounds you hear in the farm area of Hidden Folks:
Since we used only sounds made with human voice and did not heavily process those sounds, our concern was that crucial sound effects would get lost or obstructed when a myriad of other sound effects would continuously play as well. If you, for instance, find the chicken in the chicken coop, there's a corresponding 'found it + pling' sound that for the satisfaction of finding something is important to hear - but if there are 20 other sounds playing at that same time, you wouldn't hear a single thing! On top of that: I was concerned about listening fatigue as mosts sounds are in a similar frequency range, which could potentially wear out people's interests in the sounds entirely.
In the video below, I show our solution to these two problems. In short, we differentiate areas by grouping together certain ambient sounds depending on their location on the map. As a result, some places sound busy, some sound sparse, some sound hectic, and some sound calm. So when you play, you won't just be bombarded with exciting sound effects all the time, but you'll also get some rest here and there.
https://www.youtube.com/watch?v=EOAwtmh3tIg In addition to having the ambience change when you scroll around on the map, we added an effect to zooming in and out to reflect you moving closer or further away from the action. Not that zooming only affects the ambient sounds, not the sound effects that happen when you click and interact with something. Here's an example of the zooming in City:
https://www.youtube.com/watch?v=UPn6zDWXyI0 All in all, these videos show the principles and methods we've used to craft the living world of Hidden Folks. I could probably keep talking about the sounds for much longer, but this should suffice for now :)
I hope you will have a lovely time seeking out funny sounds in the new Factory!! Back to you, Adriaan!
Thanks Martin Kvale! This wraps up the second post in preparation for the Factory update on Thursday, June 15th. Read the next post here.