How I Am Fish has become Bossa's most ambitious and polished physics game
Developer Bossa explains how Unity's tools empower small teams to make next-gen quality games
London-based Bossa Studios is best known for its hilariously difficult physics-based games -- notably 2013's Surgeon Simulator -- as well as bizarre simulations where the player has to learn to move around the world as something completely unique, such as a slice of bread in I Am Bread.
I Am Fish is a logical progression of this idea. Four different fish friends separated from each other in a pet shop fish tank must embark on a perilous journey to the ocean by controlling a variety of water-based 'vehicles', utilising the flap of their fins and tails. Yet while this is a continuation of the notoriously "wonky physics" that's part of the charm of the studio's output, this time Bossa has made an expansive story-based game, and wants it to be accessible for those who would prefer to enjoy the experience just by pushing to go forward, though players can still opt in for the 'classic' controls at the start.
"We're not just doing physics for the sake of physics," says Bossa's senior technical artist Andy Green. "With I Am Fish we wanted to make a much more polished experience, both gameplay wise and visually."
Compared to being confined to one major location, whether that's different rooms in a house or just the operating room, I Am Fish is certainly "bigger in scope" and more "content-driven". At its core, however, was still a small team with a relatively short time scale. Therefore, Unity's new tools were crucial to making those ambitions a reality.
As Bossa's first game to use Unity's Scriptable Render Pipeline, I Am Fish draws on the latest tech that makes it possible to create a next-gen experience usually reserved for large teams. While the initial prototype demo was built using an older version of Unity's Built-in Render Pipeline and released via prototyping platform Bossa Presents, a deal with Microsoft led to the game being the studio's first title developed internally on Xbox hardware from the start.
"At that point, we started having to evaluate whether we go with the Built-in Renderer, which we're all familiar with, or we looked at High-Definition Rendering Pipeline (HDRP) or Universal Rendering Pipeline (URP)," says Green. "We decided on HDRP because of the rendering features and the fidelity we wanted to hit."
"With I Am Fish we wanted to make a much more polished experience, both gameplay wise and visually."
HDRP makes sense especially as I Am Fish was also being developed with Xbox Series X and S in mind, but the new framework has also translated well to the previous generation.
"Because that environment is relatively similar, it meant that all of the graphics features on the next-gen water work on the previous one," Green continues. "The only thing we really needed to be mindful of is the original Xbox One, which is approaching ten years old, so it performs a lot slower than the Series X, and obviously we need to take that into consideration.
"A lot of the core rendering technology itself still runs identically across both platforms, but we needed to try and balance those between platforms. We had slightly different performance bottlenecks across both, so certain features react a little bit differently across the two. But there wasn't any system that we just immediately had to turn off or completely re-engineer."
Of course, from Green's perspective, the most important aspect with working with the latest version of Unity is how "artist-friendly" it is, especially when it comes to giving artists more freedom to light things more expressively and quickly.
"That was one of the goals at the start, we wanted to create a project at much higher fidelity, and hitting targets that previously we hadn't really hit before," he explains. "HDRP did that a lot easier, otherwise we'd have been looking into building a lot of systems ourselves. In reality, we're a relatively small team and we've been developing I Am Fish for just under a year so we needed to hit the ground running, which was something HDRP allowed us to do."
For instance, Shader Graph is a node-based tool that lets artists easily author shaders by building them visually without writing code, while being able to see the results in real-time. This "democratised" the process for building shaders for the game since many on the team were already familiar with node-based shader creation tools.
"With Shader Graph being integrated into Unity, it meant we could have multiple members of the team developing shaders almost immediately without a significant amount of extra knowledge, whereas before writing shaders in code was quite a high barrier to entry," says Green. "Otherwise it would have just been me and one of the other senior coders who would have been the bottleneck for the team because all of the shaders would have had to come through us."
Another major element in I Am Fish is water. Your fish cannot survive for long if they're not submerged in whatever make-shift fish bowl that's available. Given how notoriously difficult water is to render, there was a challenge with having a body of water on screen almost all the time. HDRP is able to support this from out of the gate, notably the ability to simulate the refraction of light and water surfaces to provide a sense of volume.
However, Green reveals that the water used as a vehicle in I Am Fish's is essentially "fake" rendered in two dimensions, which, while not as high fidelity, was ultimately chosen for better performance.
"When we prototyped I Am Fish, we did have a different physics solution which was a lot more physically accurate, but it was a lot slower, and there was a lot of instability to it because it could break in more interesting ways," he says, explaining that the final version simply focuses on the surface, which can rise or lower, but doesn't take into account pressure or flow.
"For high fidelity visuals, I think there's a good chance HDPR is going to be our go-to moving forward because it's a lot more extensible"
"If you're pre-rendering for film and television, then you've got a lot more time to pre-bake these simulations and get them really physically accurate. But if it's a game you're trying to run at 30, 60, or 90 Hz, you need it to be responsive and need it to always work and react to the player's input."
As Bossa's first game using HDRP, there was a desire not to overextend to features the team wasn't familiar with, such as the new high-performance, multithreaded Data-Oriented Technology Stack (DOTS) or implementing ray-tracing, although Green hopes to explore these in future projects. However, he notes that if there were other additional features Unity didn't support internally, these are "much easier to extend" compared to previous versions.
His only caveat to HDRP is that its focus on high-end platforms means bringing a game over to Switch, for example, would be incompatible. Developers hoping to reach more platforms from the start can opt for URP, instead.
"But for high fidelity visuals, I think there's a good chance HDPR is going to be our go-to moving forward because it's a lot more extensible," says Green. "It's designed to scale better for high resolutions, and it's got basic rendering features which otherwise we just wouldn't have access to. If you're running a relatively small project on a one or two year timescale, you don't have a lot of time to be building these systems yourself. So, it all being out of the box is really helpful."
I Am Fish, developed by Bossa Studios, is published by Curve Digital and is available now for Steam, Xbox, Xbox Series S/X, Windows 10 and on Game Pass for Xbox and PC