Foamstars: the tech that made its dynamic, persistent foam possible
12.02.2024 - 15:23
/ Square Enix
Hello, I’m Chikara Saito (a.k.a. Rickey), director of Foamstars. As the name suggests, Foamstars is a game that features copious amounts of soft, fluffy foam. However, the path that we took to actually represent that foam in digital space was much longer and tougher than we initially thought it would be.
Our experience of bringing the foam in Foamstars to life was anything but soft and fluffy, and today, I would like to tell you the tale of our trials and tribulations in the world of foam!
The first obstacle that we ran into when we started developing Foamstars was the processing power required.
In Foamstars, players can fire off as much foam as they like, and that foam flies off as fluffy bubbles throughout the whole space.
This is a huge part of what makes the game so unique, but bear in mind that up to 8 players playing together online can fire off foam at the same time – some of them in separate places, quite far away from one another – so we had to be able to sync up each instance of foam in real time.
This alone accounted for a considerable amount of load on the CPU, but on top of that, we also realised another game mechanic that is crucial to Foamstars’ gameplay: foam remaining in place and piling up to change the stage’s topography. These things together put an enormous burden on the CPU.
This meant that in the first test build of the game, we could only make about 10 shots worth of foam remain on the ground, and I can still clearly remember the feeling of disappointment as I thought to myself, “This isn’t enough to make a fun game.”
But just as I was facing this pressure to alter the direction of the game to account for these limitations, the programming team stepped in and showed me a better way!
They had the fantastic idea to dynamically alter Unreal Engine 4’s Landscape tool!
This system was originally designed for sculpting rugged terrain ahead of time, but thanks to the ingenuity and hard work of the programming team, we were able to dynamically alter the Landscape tool so that it could be influenced by player interactions during actual gameplay.
Thanks to this system, we didn’t have to manage and express each instance of foam on an object-by-object basis, but rather, we could handle the foam as vertex data instead.
This significantly reduced the load on the CPU, and made it feel much more thrilling as an actual game as well.
The test map began as a single, flat plane stretching out ahead of you. As I watched it transform dynamically due to the actions of the players, I realised that we created an experience that could only come from a medium of entertainment where worlds are interactive. It was like a jolt of lightning that reached me in my pit of despair – I can still remember that