Design Document - GeneRainier/salmon-run-working GitHub Wiki

Setting and Story

You just became manager over the river ecosystem. Your job is to manage the salmon population that lives there, while also allowing for industrial growth in the area. Your goal is to create ecological and industrial equilibrium, at least for as long as you can.

Story Events

The game contains a series of events that progressively make the game harder and introduce new laws, environmental events, and towers. Some of these events include:

  • Open for Fishing: Can place anglers along the river.
  • Wrong fish: Angels are catching fish that are too young. Need rangers to monitor the size of the fish that are caught. Have to place at least one ranger.
  • Water Power: The government would like to develop a small village nearby. However they need a source of electricity. You must build a dam.
  • Danger of the Dam: There is a lawsuit against the dam for its harm on the fish population. Lawsuit backed by several conservation groups and native groups. You must start fixing the dam or it will be removed. You have 3 turns to place a salmon ladder before the dam will be destroyed.
  • Sneaky Sealion: A sealion appears! They found their way to the dam and are eating all the fish!
  • A Town Appears: A town is built due to the dam. Salmon has become a delicacy. You must catch a certain amount of fish this round to proceed each round now.
  • We Need More Fish!: The fish population is low and people want more salmon. You must place at least one hatchery this turn.
  • Expansion, Expansion, Expansion: With expansion comes the need for more goods and services. You must place at least one factory this turn.
  • More Goods: A factory appears near the river. However they are harming the river.
  • Boat Expansion: The government would like to encourage the expansion of merchant ships. You must place at least one boat in the ocean.

Random Events

Rounds in between set story events will have random events happen that affect how you play the round. These will be shown to the player between each generation of fish once they have finished their run in a roguelike fashion. Three stakeholders will appear with one of their proposals for the player to select. When the player selects them, they will enter the normal placement phase with the new modifiers in effect. Some of these policies include:

  • Random laws that restrict how many fish anglers and boats can catch.
  • Random laws that shut down certain areas and all fisherman in those areas cannot fish.
  • Shortage of Fish: As the salmon population deplete, the prices go up for two rounds and will generate more money.
  • Clean Water Act: Triggers when you have at least one factory that has been killing fish due to its pollution spot. Causes the factory to shut down for a turn and costs money.
  • Food Shortage: There is no food left, so the number of offspring that are produced is halved that round (the number per pair goes from 2-7 offspring to 1-4).
  • Toxic Spot: An area near the nesting grounds becomes toxic. Whenever a fish enters the spot, there is a chance that it will die. This rate is 0.2.

Permits and Rules

You have the ability to pass your own permits and rules as it relates to this river. This is the theme for the “upgrades” in the game. For example, the upgrade that lets you remove sea lions for more rounds is a law you pass that lets people shoot sealions. Another variant is the ability to adjust certain aspects of the salmon ladders connected to dams such as the depth of ladder pools, the incline of the ramp, or the speed at which the elevator runs.

Columbia River 3 Part Narrative

Phase 1: Tutorial and first third of the river (from the ocean to the dam location). The player is introduced to the mechanics of the game via a number of simple objectives like placing anglers and rangers. The dam is finally placed at the end of this phase in response to requests for hydropower from nearby towns. A few random natural events have the chance to occur if the player decides to skip any of these small objectives, extending the phase. This will likely be 5 rounds long.

Phase 2: The fog dissipates from the dam through the narrows of the river. The player's main objective will turn to generating a large sum of money from the power generated by the dam each round as well as fishing from the anglers. This will lead to the introduction of the ladder, which will need to be placed in the first or second round of this phase. The sealion will also begin to appear, likely lowering the population of salmon below where the player predicted. Random events will regularly occur during this phase. This phase is expected to last 5-10 rounds.

Phase 3: The last third of fog dissipates, showing the last two nesting sites at the fork at the end of the river. The main objective will shift to recovering the population, which has been hampered by a mix of human intervention and unexpected natural events. The player will be empowered to issue permits and rules from the relevant menu. To beat the level, the player must maintain the current high level of income they have accrued while also scaling back on fishing to maintain the salmon population at a certain level by the end of a round. Random events will regularly occur during this phase. This phase is expected to last 5-10 rounds.

Game Goals

The goal of the game is to teach players about sustainability, specifically maximum sustainable yield. It is also designed to teach about evolution and genetics, and how events in a population can cause shifts in the population dynamics.
The goal of the player is typically to keep the salmon population in balance while also maintaining a good rating with your job.

Lose Conditions

  1. Ecological Integrity: The ecological integrity of the river acts as a health bar for the player. If the population is too large, then the Ecological integrity will degrade with each passing round that the population is not brought under control.
    • Cause habitat loss due to overeating or water chemistry.
    • If the population ever reaches zero, then the population has gone extinct and the player loses as well.
  2. Job Integrity: Job integrity also acts as a health bar for the player. If they don’t complete tasks on time or follow an event that happens, the rating will drop.
    • If the rating ever reaches zero, the player is fired and the player loses the game.

Win Conditions

  1. Story system: There is a set series of story events that happen every few rounds. These events progressively make the game more difficult.
    • The game will either have a set ending with the story, in which the player has won, or there will be an endless mode, with no real “win condition”. Instead the player will continue on with increasingly difficult random events happening every round, until they eventually lose.
  2. Level Based System: The player is aiming to keep the population within an acceptable range as well as generate a high enough profit by the end of level (when all the rounds have finished). This range is based upon the highest sustainable yield of a given river and is meant to represent the best potential mixture of human activity in fishing and affecting the population with the natural ecology of the river.


Free Play Mode: An open ended game mode where the player starts with only $500 and must keep the population steady while maintaining job integrity. There will be no scripted story events in this mode and instead there will be stakeholder meetings between each round that add another modifier the player must account for. This continues until the player is unable to maintain a healthy population or the job integrity of the river is compromised. This mode is akin to a roguelike game where each run will be slightly different based on the stakeholder events received between each generation of fish.
Lesson Mode: A more scripted, level style mode aimed at classrooms with specific learning goal needs. The events that happen between generations of fish such as stakeholder meetings and environmental events are scripted to happen at specific turns in the level and at specific triggers by the player to articulate a particular point. For instance, one level may be focused on the push and pull of environmentalist groups vs. the business interests that want to leverage the river for water power and fishing while another level may focus entirely on the effects of ranger regulation and river management systems. The levels are carefully put together and curated unlike free play mode which is entirely player and luck driven.


Placement Phase

Overview: This is the time to place new towers, upgrade existing towers, look at goals, and otherwise plan your next run.
Uses: Pretty much everything can be done in this phase:

  • Towers are placeable.
  • Upgrades and the upgrade store are accessible.
  • Can look at other menus like the help screen or pause screen

Run Phase

Overview: This is the phase where the fish population makes their journey to the spawning grounds. This phase is pretty much observation only.
Uses: Not much can be done during this phase. This is for watching how the population changes.

  • Towers are NOT placeable.
  • Upgrades and the store are NOT accessible.
  • Can only access the pause screen.

Review Phase

Overview: This is at the end of the run phase, when the stats for the population appear, such as the sizes of the fish that survived, the number that survived, and how many offspring were produced.
Uses: Used to review what happened to your population with the current towers you have placed. Provides a variety of information.

  • Parents: Number of each size.
  • Offspring: Number of each size, number male and female.
  • Number of fish that survived.
  • Number of fish that reproduced.


Run (Play): Starts the run phase. Should be clicked when the player is done placing any towers they want to place and/or upgrading towers.
Fast Forward: This speeds up the fish movement during the run phase. Used to reduce the overall run time.
Skip: Used to skip the whole run phase altogether. Everything still happens as if the run phase had occurred, the player just doesn’t have to sit through it.
Pause: Pauses the run phase. Everything pauses, including animations.
Stop: Ends the game.
Bottom Tower Tray: Holds all the different towers you can buy and place. Hover over the tower icon to see what it does and how much it costs. If you can’t afford it, it will be grayed out and say “can’t afford” and its price.

  • Upgrade Switch Buttons: Certain towers that have upgrades, like the ladder, will have smaller buttons that open a panel. The panel lets you switch which upgrade you have in use in the game.

Upgrade Button: This opens the upgrade store. This is only accessible during the placement phase, otherwise it will be grayed out and say “can’t be used now.” Will also not be accessible until you have placed a tower that can be upgraded.
Clicking on a Tower: Shows its radius if it has any. Also shows its “stats” if it has any.
Random Event Popups: Whenever a random environmental event happens or a new tower spawns, there will be a UI popup with a name and a brief description of what happened. There will also be popups if the effect goes away.

Additional Mechanics

Question/fact Popups: Random facts and questions to help the player learn more about biology, genetics, and evolution.

  • Questions: every so many rounds, a question will pop up related to something they just did for the story. This will help the player to learn more about the science that is happening within the game. Whether they get the question wrong or write, they will continue forward after a brief explanation about the question's answer is given.
  • Fact Popups: on a small part of the screen, random interesting facts will scroll through as the player is waiting in the run move. They will also appear during any load screens the game might have. This provides some interesting things to read and learn about while playing through the game.

Upgrading: Provides a system for improving certain towers.

  • Themed as rules and permits you create that cause towers to have new and improved effects.
  • Becomes accessible once you have placed a tower that can be “upgraded” or once certain story events have occurred.

Tutorial Helper: Provides advice and help on what all the stuff does at the start of the game in a step by step process.

  • “Town notices” and other rangers helping you out in your new job.
  • Guides you through a couple rounds of placing towers like the fisherman and the ranger. Also guides you through a random environmental effect that happens. Will also pop up for things like the upgrade system when that is unlocked and the hatchery when that is unlocked, to help the player through new content.

Nesting Grounds:

  • There is a max number of nesting sites in each nesting ground. Each nesting site can hold one male and one female.
  • This max number is the “carrying capacity” for the population.
  • The total number of spots for males and females is calculated, then when fish make it to the end, their gender is identified and as long as there are spots available, they survive, and one spot is taken away for that gender.
  • Once all the fish have made it to the end or died, then they are randomly paired together. They then produce offspring.

Carrying Capacity:

  • There is a maximum amount of fish that the population can handle. This is called a Carrying Capacity in the game.
  • In the game, the ‘carrying capacity” is an environmental effect that happens that will cause the population to tank. In the simulation the number of nesting sites is the carrying capacity.
  • In the simulation, the nesting sites have a maximum number of spots, and once the population reaches this number, they can’t go past this.
  • In the game, once the population reaches a certain number, an environmental event triggers. This event causes lots of fish to die and the population to tank.



  • Overview: Catch fish that get too close based on three different catch rates based on the size of the fish (small, medium and large). When they catch a fish, the angler generates an amount of money based on the size of the fish.

  • Tower Use: Main way of generating money and can do a good job of controlling the fish population. They, however, fish at equal size rates, so no not change the population size at all.

  • How it Works: If there is a fish within the angler's radius, and the angler is not trying to catch a fish, it will attempt to catch the fish. It will determine what size the fish is, then it will randomly pick a number. If the number is within its catch rate for that fish size, it will start catching the fish. The time it takes and the number of times it flashes is determined in Unity. Once it has finished trying to catch the fish (whether it is successful or not), it will then wait a few more seconds before attempting to catch a fish again if there is one in its radius.

  • Tower Cost: 10$

  • Radius: 3x base radius size.

  • Effects: Create a green line that looks like a fish line with a little bouie at the end that connects to the fish it is trying to catch. The line will flash green or red depending on if the catch is successful or not. The fish will flash white and a little splash VFX will happen around the fish during this process.

  • Catch Rates (all 3): 0.5

  • Money Rates: 1$ per pound

    • Small: 2$
    • Medium: 6$
    • Large: 9$
  • Upgrade: More experience: attempt to catch more frequently.

  • Animation: Have an option to stand still; Start cast when fishing attempt is made.


  • Overview: Manages the anglers’ catch rates in a certain range. This reduces the number of fish of some sizes being caught while increasing the catch rates of others.

  • Tower Use: Used to control the fisherman and have them be selective about the sizes of fish caught. If the size of the fish matters in the game somehow, then this tower can be used to swap the population in a certain direction, whether that is reducing its size or increasing it. It does cost a small amount of money each round to “pay” the rangers to do their work.

  • How it Works: Applies a new catch rate for each size to the angler. There is also a rate for how likely the ranger is to affect the fisherman (not sure if we need this).

  • Round Tax Rate: $10

  • Tower Cost: $30

  • Radius: 20x base size

  • Effects: A dotted yellow line will connect the ranger to each fisherman in its radius that is being affected by it. Each fisherman base will also flash yellow if it's being affected by the ranger.

  • Catch Rate Changes:

    • Small: 0.1
    • Medium: 0.4
    • Large: 0.8
  • Animation: Have an option to stand still; Start cast when fishing attempt is made.

  • Upgrades: Changes in effect ranger (based on fishing regulations).


  • Overview: Blocks a portion of the river with a dam. This generates a large sum of money each round, but without a ladder will kill off a large number of fish due to blocking the path to the spawning grounds.
  • Tower Use: Used to generate a large amount of money. May also be used to power other towers. Can also be used to drastically decrease the fish population if necessary.
  • How it Works: When the fish gets to the dam, it will attempt to cross it once. It will generate a random number, and if that number is within the cross rate for its size, it will then roll a random number within a wait time range to determine how long it takes to cross. Once the time is up, it will cross. If it fails to cross the dam, it will become “stuck”, meaning it is no longer considered part of the living salmon population, but it is still visible.
  • Tower Cost: $200
  • Effects: Small radius around the front of the tower to signify when fish have entered its effect. Radius color is orange. Fish should change color if they become stuck.
  • Money Rate: 100$ per round.
  • Pass Rate: 0.25


  • Overview: Can be added to a dam to allow more fish of certain sizes pass by a dam. There are various kinds of ladder that can be purchased in the Upgrade menu which focus on different distributions of fish.
  • Tower Use: Used to keep the population from dying due to the dam.
  • How it Works: When applied, it sets new cross rates for all the sizes. Uses the same time process with determining how long it takes the fish to cross as the dam.
  • Tower Cost: $500
  • Effects: Changes the radius color of the dam from orange to green.
  • Pass Rate Changes:
    • Small: 0.25
    • Medium: 0.5
    • Large: 0.75


  • Overview: Appears 3 turns after the dam has been placed in the game, 3 turns after the ladder is placed in the simulation. This eats a massive amount of fish and has a major impact on the population. They are selective towards the sex of the fish. Is NOT placed, simply appears after the dam.
  • Timeline: One appears 3 turns after the dam is placed. A second one appears 3 turns after the salmon ladder is placed for the first time. A third one appears 9 turns after the salmon ladder was placed.
  • Tower Use: This is a major negative effect for the player, and something that they have to work around the rest of the game.
  • How it Works: For every fish that enters its radius, it attempts to catch and eat it.
  • Catch rates:
    • Female: 0.2
    • Male: 0.5


  • Overview: Adds new fish to the population. Can only be placed if you have a dam, since the dam is what powers the tower. However fish from the hatchery have a harder time surviving the river.
  • Tower Use: Used to add more fish to the population, meaning that a player can catch more fish and gain more money per round from the population while maintaining its size.
  • How it Works: Adds 50 new fish to the population at the start of each round. Each fish also has a gene (or lack thereof) that makes them worse at surviving the journey.
    • Potential Downsides:
      • Less Food
      • New Diseases
      • Poorer Genes
  • Tower Cost: $1000
  • New Trait Purchases: Buying the hatchery also unlocks a trait menu where you can purchase new traits to introduce into your population. When selecting what fish are produced from the hatchery every round, you may select one category from each trait (such as small from the size trait). You may change what category you have selected each round during the placement phase. You select what category you want for each trait that you have added to the population (color, fin size, nose size, etc.).

Logging Area

  • Overview: Produces money for you, but creates soil erosion near the river, which makes it harder for salmon to survive the journey.
  • Tower Use: Helps produce a lot more money, but at the cost of killing fish randomly as they pass through the spot.
  • How it Works: Wherever you place the tower, a vertical slice (or just a circle) of the river will become “polluted”. When fish pass through, they generate a random number, and if that is within the death range, they will die.
  • Tower Cost: $1500
  • Money Rate: $500 per round
  • Death rates: 0.3
  • Possible Upgrade: Produces more money and reduces the pollution (aka the death rate of the spot). This will make it less likely to trigger the clean water act.


  • Overview: Acts like a fisherman, but catches more fish. It also generates more money per catch. However, it has a maintenance fee to pay for the boat to fish.
  • Tower Use: Used to catch more fish each round and make more money overall.
  • How it Works: Can only be placed at the mouth of the river and in the sea. They will randomly roam around the area. It will attempt to catch a fish every 3 seconds. It can catch up to 3 fish at once.
  • Tower Cost: $500
  • Round Tax Rate: $50
  • Money Rate: 2$ per pound
    • Small: $4
    • Medium: $12
    • Large: $18
  • Catch Rate:
    • Small: 0.6
    • Medium: 0.6
    • Large: 0.6



  • Overview: Available in the upgrade menu, this increases the “skill” of the fisherman, allowing them to catch fish at a better rate.
  • Upgrade Use: Used to increase the likelihood that the fisherman will catch a fish he is attempting to catch.
    • Works on a single fisherman for game, all of them for simulation
  • How it Works: Each upgrade reduces the amount of time (timePerApplyEffect) it takes a fisherman to catch a fish, as well as reducing the number of flashes the fish makes before being caught.
  • Upgrade Cost: $100
  • Catch Rate Changes: decrease the amount of time it takes to catch a fish.


  • Overview: Available in the upgrade menu, this determines how many fish fisherman can catch and what sizes they go for. Can be changed every round.
  • Upgrade Use: Used to help change the fish size populations to match certain story goals. Also used to help regulate fishermen when they are catching too many fish or the population size drops.
  • How it Works: It sets new catch rates for fishermen within its effect radius. Also sets a catch limit to fishermen in its radius when applicable.
  • Upgrade Cost: $150

Salmon Ladders

  • Overview: Change the type of ladder that is used to get fish to cross the dam safely. Different upgrades have different effects on the sizes of the fish that can cross and how effective they are at crossing.
  • Upgrade Use: With upgrades purchased, allows you to change the number of each size of fish in the population by changing the ladder you are using.
  • How it Works: Disables the current salmon ladder and sets a new one in its place.
  • Upgrade Cost: $1500
  • Upgrade Types:
    • Salmon Ramp:
      • Small: 0.5
      • Medium: 0.75
      • Large: 0.25
    • Salmon Elevator:
      • Small: 0.5
      • Medium: 0.75
      • Large: 0.25

Animal Deterrent

  • Overview: Sealion deterrents get rid of the sea lion for a certain number of rounds, depending on the type used.
  • Use: Used to get rid of the sealion for a bit and reduce its effect on the population if the population is starting to die out. These, however, are temporary towers, they only last a certain number of rounds before the sealion comes back and you have to use another one.
  • Upgrade Types:
    • Sounds:
      • Cost: $50
      • Time: 1 round, catch rate reduced by 12% after they reappear.
      • Number of sea lions: 1
    • Fireworks / Bombs:
      • Cost: $100
      • Time: 2 rounds, catch rate reduced by 25% after they reappear.
      • Number of sea lions: 1
    • Rubber Bullets:
      • Cost: $200
      • Time: 3 rounds, catch rate reduced by 50% after they reappear.
      • Number of sea lions: 1
    • Sounds:
      • Cost: $300
      • Time: 3 rounds, catch rate reduced by 75% after they reappear.
      • Number of sea lions: 3

Environmental Effects

Random environmental events/other towers that occur naturally (like sealions) that will increase the difficulty of keeping the population alive over time. Some environmental effects happen randomly, like natural disasters, while others may be the result of towers placed or enacted by the player, such as factories.


Appears 3 rounds after you place the dam, eats a lot of fish every round with a preference for female fish. Described in Existing Towers.

Bald Eagle/Osprey

  • Overview: Catch fish like sealion, but the influence is fish color. They only appear upstream, and their radius can not overlap the radius of an angler, ranger, or other tower. Just has a random chance to appear.
  • Tower Use: Used to randomly feed on fish and/or select for fish color. They can be gotten rid of by placing a tower within the radius of this tower.
  • How it Works: Acts just like the fisherman. When a fish enters its radius, it attempts to catch the fish. Then it has a 3 second cool down. It’s radius can’t overlap with other towers, except for another Eagle/Bear.
  • Catch Rate:
    • Red: 0.8
    • Pink: 0.6
    • Brown: 0.3

Natural Disasters

Things like storms, drought, algae blooms, dam/ladder damage etc.

  • Drought: Drought means that certain areas become impassable by salmon and they die. Small spots (nodes) become impassable on the map. Only smaller fish can get through (only affecting areas on the upper end of the river, such as tributaries).
  • Flood: The water level of the river has risen with recent rainfall resulting in fewer places for angler's to fish. Any anglers along the lowest elevations will be unable to catch anything during this turn.
  • Overheat: Due to a mixture of heat waves and low rainfall, the salmon population is developing lesions and white fungus resulting in death. The population has been stunted this turn regardless of the prior population.
  • Disease: A disease spreads amongst the population, your starting population is reduced before the run phase begins.
  • Algae Blooms: Create a toxic spot at the mouth of the river, when fish pass through it, there is a 0.5 chance they die.
  • Dam/Ladder Damage: The ladder and / or dam have been damaged by recent weather, wear, and tear. They are no longer up to code and the salmon are unable to get past as effectively. The player must spend $100 to repair the damage.