If you know the Barents Sea, situated in the Arctic Ocean just off the northern coast of Norway, you’ll know it’s shallow. Not in the everyday sense you or I might use – you’d struggle to reach the bottom with your tippy-toes at 230 metres – but shallow enough that it’s ideal for fishing.
When the ice melts in the spring, the fresh water brings plankton, which in turn feeds small fish that are gobbled up by the cod. It’s a hotbed of life in a part of the world most would consider sparse and inhospitable, and the evocative setting for the simulator Fishing: Barents Sea.
Recreating it has meant overlaying a series of complex systems: one for the ocean, another for the weather, and many more to decide on how and where the fish are found. As far as AI is concerned, it puts zombies and gruff men who know how to run and crouch behind a low wall into perspective.
Move over Black Ops 4: we’re celebrating a different kind of cod today.
Weathering the elements
The version of Fishing: Barents Sea you’ll find on Steam today aims for a true visual representation of Arctic fishing – the closest most of us will get to blissful yet gainfully employed isolation. But back in 2014, it was a top-down 2D prototype built using GameMaker, the toolset behind Spelunky and Gunpoint. It was only once the team acquired funding the following year that they decided to adopt Unreal Engine 4, which at the time was newly free to use.
“Our vision was to create Fishing: Barents Sea in 3D with great graphics,” Misc Games CEO Gøran Myrland tells us. “After seeing the huge potential of the Unreal Engine, we decided that this was the one we would use for Fishing: Barents Sea.”
Of immediate concern was doing justice to the game’s most important character, the ocean – vast, blue-black, undulating, and in constant motion. Misc Games considered several different water shaders before settling on an open source option named Ocean Project. “This is the shader which gives the water of our virtual Barents Sea its current look,” Myrland says. “We did, however, heavily modify it from its origins.”
Misc wrote its own buoyancy system, to ensure the boats would cant convincingly in the water. “Those parts have been the biggest technical challenges during this project,” Myrland says. “To get them to work properly and at the same time keep a good stable FPS has been a tough task.”
What brings the sea to life isn’t its shader nor its physics, however, but its weather data. Misc pulled two decades of records from the Norwegian Meteorological Institute and hooked them into the game.
“When you start the game you will begin in the year 2017,” Myrland explains. “It will be the same weather as it was in 1997 in Hammerfest. Then as you play, you will experience this weather, which will change around 00:00 every day.”
Misc’s implementation takes temperature, precipitation, cloud cover, visibility, and wind into account – the latter reaching speeds of up to 72 km/h and determining the height of the ocean waves.
The complexity of crabs
In the course of playing Fishing: Barents Sea you’ll see several AI systems at work – in roughly ascending order of complexity, they govern the cars, boats, trawling, and the fish themselves. For trawling, Misc Games has replicated the Scanmar catch control system used in real commercial fishing. The limbless residents of the game’s open world don’t simply swim – they appear where they do according to reproduction factors, breeding age, the temperature of the water, and the food they like.
“Our first step is to look up what kind of fish species can be found in the area where our game is set,” Myrland says. “Then we collect necessary data for each fish species, including the price for which they are typically sold in ports. After this, we start creating the 3D models and animations of the creatures and get them to work inside our game.”
The stars of the new King Crab DLC presented their own challenges. In the course of catching them, you must haul in crab pots using a crane, before separating the crabs by sex to ensure the local population remains healthy.
“We underestimated a bit on how complex some of the features for the king crab would work out,” Myrland admits.
Among all this commitment to detail it’s reassuring to learn that, like the rest of us, Myrland’s first port of call for research is Wikipedia: “It’s our main source of info.”
Fishing: Barents Sea is out on Steam. Unreal Engine 4 development is now free.
In this sponsored series, we’re looking at how game developers are taking advantage of Unreal Engine 4 to create a new generation of PC games. With thanks to Epic Games and Misc Games.