Salmon Run is a top down tower defense game where the goal is to manage a population of salmon as they travel up the same river every year.
Salmon Run is a top down tower defense game in Unity where the goal is to manage a population of salmon as they travel up the same river every year. Rather than winning by killing everything, the player wins by manipulating factors to achieve maximum sustainable yield for the evolving salmon population. Salmon run is developed by MSU's BEACON Center for the Study of Evolution and Action and designed to be used in middle school biology classes, and has seen use in this setting multiple times. The game allows students to explore the role the natural environment plays in driving species evolution, as well as the effects human activities are having on the environment and salmon evolution.
What I Did:
I joined the Salmon Run development team in Fall 2021 as a programmer, while the game was already multiple years in development. At the start I was largely given tasks to implement a new camera system. We discussed multiple different camera systems, and I made multiple prototypes before we decided on one. The camera system I developed for Salmon Run is a state-based camera that has different controls and views based on what "mode" the player is in. Double clicking on a tower (a fisherman or ranger) lets the player enter the tower camera which can orbit around the tower, and double clicking on a fish enters the fish camera, which lets the player watch one fish up close as it progresses upstream (or watch as the fish is caught by a fisherman). The main camera mode lets the player pan around the river environment and zoom in on various features or towers manually. I also implemented a fish data panel that gives the player information on the fish that they're observing on the fish camera, a data panel that displays how many of each tower were present on each turn, and various bugfixes and UI changes. In the Summer of 2022, I became the sole programmer on the project, and since then I have done more work on current tasks such as implementing an information panel that can easily be edited by teachers depending on their intended lesson plan.
What I Learned:
Working on a pre-established project like Salmon Run was very different from what I was used to (building games from scratch), but I was able to learn how to skim the project for scripts that I'd need to edit, and learn how those scripts work so I can make changes without breaking things. I also learned quite a bit about cameras and UI from more experienced programmers on the team, who gave me resources to learn Unity's Cinemachine. It was also good experience learning how to talk to and get feedback from relevant users, like the eighth grade biology teacher that used Salmon Run in his lesson plan.
Accomplishments:
In the Fall of 2022, we brought Salmon Run to the International Conference on Meaningful Play, where we showcased the most recent build and allowed people to play and give feedback. This was an unparalleled experience in professionalism and showcasing a project, and was also just really fun to participate in!