Building the World:
Making the cold dark come to life
Since Iron Fish is an underwater exploration game, we wanted to make sure that the environments players will explore will evoke the same sense of wonder that humans experience when actually exploring underwater depths. From a technical standpoint, this is quite a difficult challenge. Underwater environments are extremely vast, and are full of vibrant geological and biological detail.
In order to find a solution to this, we worked with our art team to figure out an effective way of building these underwater landscapes. Jack Oakman, our art consultant, developed a toolset for the Unreal Engine that allows us to create the underwater environment by layering texture details. We first start off with one big mesh height map.
Once this has been created for the whole level, we can begin to layer on different textures to bring in different levels of detail to the map. These include textures like sand, rock, and coral, which we can paint over the mesh height map. Each of these shaders are added on top of each other in order to deepen the realism of the environment. The same is true with our fish and all the other wildlife we add into the world.
After these have been applied across the level, our artists can go in and finesse the detail, by adding individual rocks, caves, and pieces of coral. Adding in individual pieces fills in the levels and makes them feel more uniquely crafted.
And of course the vastness of underwater landscapes is also extremely important, so when the original height maps are created, we make sure these spaces feel akin to the appropriate sizes that people see in real life. For example, our sub-surface level is 4 by 4 kilometres wide. One of the canyon levels we created is narrower, at 2 kilometres wide, but then is 9 kilometres long (that’s about 5.6 miles long, for those in the US).
Once we’ve finished working with the artists, our dev team has the lovely task of filling the environments with living organisms. We spent of a lot of time working on fish AI (insert cod joke here) to make sure they could move throughout the environment appropriately. Currently, there are three different types of movement we can apply to our fish.
Bait Ball: These can be made of 5-3000 fish, and travel as a school of fish in a spherical configuration. These fish will avoid each other and separate if other fish or predators move through them.
Area Fish: With these fish, we can give them a box within a certain area to travel around in. These fish avoid other organic life and also will swim around different rock formations within the area. These are great when setting up shark patrols.
Spline Fish: This allows us to place a track for certain fish to follow throughout the level. We’ve also worked out a way to make sure that fish on splines still avoid other organisms and then return to their spline afterwards. One of the organisms we currently have on a spline is our lovely whale, Willy.
We also have three different type of awareness level of our fish: aggressive fish, passive fish, and ignorant fish (these fish just don’t give a damn).
Once all of these pieces are combined within a level, it creates a space full of different rock formations to explore which are teeming with underwater life.
As you can see, a great deal of work is going into the creation of the game's world! There's still a long way to go, but we're excited to see Iron Fish coming to life as the world and environments are crafted to the vision we have for the game. Please be sure to share Iron Fish with your friends, and encourage them to join us on our journey!