Please see solution file on github under: HackersNest/UbiGame_Blank/UbiGame.sln (project is in eli-test branch until it is merged to main branch)


Salmon migrations are one of nature’s greatest stories and sights to behold. For thousands of years, these remarkable fish have migrated thousands of kilometers from their home rivers to the Pacific and Atlantic oceans and back, shaping the way people live along the way.

Specifically, the salmon run is the time of the year from September to November when salmon swim from the ocean to the upper reaches of rivers in order to spawn on gravel beds. Afterwards, most if not all salmon die, and the salmon life cycle starts over again. While research studying these migrations suggest that salmon use magnetic field of the Earth as well as their sense of smell to guide their migration, there are still many unknowns in this famous story of salmon swimming upstream, with questions like "Do they return to same nest site where they were hatched?" and "How close do they get?".

Salmon have a huge economic, cultural and ecological significance. Not only are they a source of food but thriving salmon stocks support jobs for commercial and recreational fishers, as well as jobs in ecotourism, including hotels, restaurants and tackle shops. Less well known to those outside of research is that salmon are widely recognized as indicators of ecological health and the state of the environment. This means that if salmon population is healthy, then it's likely that the rivers and oceans are healthy, too. For decades, however, researchers have observed an alarming gradual decline of salmon especially on the US' west coast. While there are some known impacts of climate change contributing to the population decline such as the acidification of oceans, warmer waters, and droughts leaving salmon stranded or exposed to predators by low water levels, the mysterious phenomenon of salmon turning up dead in huge numbers after heavy rain events has been the subject of much research for years.

In order to raise awareness about the importance of salmon in the environment as well as the challenges they face to survive, we thought there's no better loudspeaker to reach a massive audience than video games. Some of the biggest names in the video games industry like Ubisoft have committed to harnessing the power of their platforms to take action in response to the climate crisis, and we wanted to play a part in creating our own game for social good. That's why we came up with Salmon Run!

What it does

Salmon Run! is a both a survival game and a bird's-eye view racing game in the context of the salmon's journey. The player takes the role of a salmon attempting to swim upriver in order to spawn. The character can move anywhere on the screen while the scenery scrolls down from the top of the screen to simulate travel up the river. Along the way, players must avoid natural and manmade debris that would slow down their journey. If the player survives and reaches the end where the spawning grounds are, their salmon is able to reproduce and help keep the salmon population up.

How we built it

We built the game using the Ubisoft Hacker's Nest API in C++.

Challenges we ran into

Having had limited experience both in game development and in coding in C++, we started off envisioning an open world RPG game focused around water conservation. In addition to learning how to work with Ubisoft Hacker's Nest API for the first time and leverage SFML, we had to pivot our idea based on features we wanted to implement as a technical challenge.

Accomplishments that we're proud of

We came up with this idea and decided on this game name by ourselves. Later, after some research to prep for the presentation, we found that Atari came up with a game of the same name back in 1982 with the same purpose.

What we learned

We learned about the benefits and limitations of coding games using C++!

What's next for Salmon Run!

We plan to create more animated challenges and dangers encounter during the upriver trek such as a bear, fishermen, and seagulls, all attempting to eat salmon, allow players' salmon to "jump" over obstacles, and implement more levels. In subsequent levels, the journey up the river happens again except with a next generation of salmon that is bigger than the previous to not only allude to better salmon health but also make it more challenging for the player.

Built With

  • c++
  • sfml
  • ubisoft-nest-api
Share this project: