デベロッパー
20/07/2022

A Systemic Approach to Spawning Fish

Share on
social media

Author

BY Nathanael van den Berg

As a technical designer, it’s my job to work closely with both designers and programmers to design, test, and improve different solutions to problems we have, and know how many of our different systems work together. I’m also responsible for creating and improving the scripting we use for different player interactions around the world.

Hi everyone!

My name is Nathan, and I’m a technical designer on Call of the Wild: The Angler.

Today I wanted to talk to you about our fish spawning system and how it works. We’ll discuss a little of how it came to be, as well as the information it uses to determine which fish should spawn, and where. This is something we’ve steadily built and improved upon throughout The Angler’s development, and I’m proud to say we’re pretty chuffed about everything we’ve accomplished so far.

A little bit of backstory

So, how do you go about populating the waters in an area as big as Golden Ridge Reserve?

Well, the first approach was to do this by hand. However, it soon turned out that going over every water body to figure out whether a particular fish was appropriate for a lake, pond, or river is just too much work— especially looking at the future with more reserves in mind.

Because of this, we turned to a more automated solution. In short: our fish spawning system takes a ton of data from across our entire game world, puts it together, and uses it to automatically spawn fish appropriate to a given waterbody.

Now, when I say automated, I don’t mean that we can just take our hands off the wheel and go on auto-pilot. We still have to tell the system how to interpret the data it finds, which is a constant back and forth, but it makes populating our waters a lot quicker and easier. And because the system is designed and built by our team, we are improving it all the time to make it more accurate.

Here we can see one of the many locations a player can fish from. We can view where the fish are swimming in real time, including their species and size. The differently colored squares represent parts of the water with different attributes, and (slightly) different fish spawns.
Developer Tools View: Fish Spawn Variables Map

In the image above, we can see one of the many locations a player can fish from. We can view where the fish are swimming in real-time, including their species and size. The differently colored squares represent parts of the water with different attributes, and (slightly) different fish spawns. Remember, this is all secret information and it continues to be fine-tuned until we get the correct results!

Data, data, data

Okay, with that out of the way, what is this “ton of data” we gather?

It’s a mix of information that is present in the world and values we infer based on that information, as well as outside factors; we’re using over 20 different pieces of data that all interconnect! You’ve heard of water depth, time of day, and temperature before, but we also look at flow speed, turbidity, and bed vegetation, among other things.

Using all of this information, we can effectively give each bit of water a grade per fish species. Where one location might be perfect for Largemouth Bass—the temperature is just right, it gets all the food it's looking for, and it has plenty of vegetation to hunt in—that same location won’t work for Kokanee Salmon.

Choosing the correct fish

Having lots of data about our world is great, but matching this up to what our fish actually need is where the magic happens. Jokingly called “Fish Tinder”, our system looks at every location to see if the conditions are correct for every fish species. If the grade is good and the minimum conditions are met, a fish can be found in that location. However, that’s not all:

The better the grade, the bigger the fish that may be around as this area suits their particular needs very well. A better fit equals bigger fish. Maybe even a diamond.

With so much information, we need multiple tools to help us provide a clear picture of what’s going on. Here you can see two such tools: On the left is our data map, which can show us very accurately where we can find specific fish of a specific rank. On the right, you can see our fish counter. It shows us the total number of fish and breaks them down per species and rank.
Developer Tools View: Fish Spawn Map

With so much information, we need multiple tools to help us provide a clear picture of what’s going on. In the image above, you can see two such tools: On the left is our data map, which can show us very accurately where we can find specific fish of a specific rank. On the right, you can see our fish counter. It shows us the total number of fish and breaks them down per species and rank.

What the future may hold

Of course, no system is flawless, so we’re looking to continuously improve our fish spawning and make the results more and more true to life. Like The Angler itself, it’s an ongoing project and will evolve where the game needs it to go.

I’m curious to see if you, the community, can find your favorite fish around the reserve!

About the Author

An image of Nathanael van den Berg, Technical Designer for Call of the Wild: The Angler having successfully caught a fish on a boat.

Nathanael van den Berg

From playing them as a child to making them as an adult, Nathan has always loved video games. When they’re not living and breathing games in some form or another, they find joy in quiet relaxation, cooking, running, and cycling.

Back Home
Geolines Graphic
Call of the Wild The Angler Logo

© 2022 Expansive Worlds AB. All Rights Reserved.

Sorry, your browser does not support inline SVG.
Geolines Graphic