High Concept Document - GeneRainier/salmon-run-working GitHub Wiki

Target Platform and Demographics

Target Audience: Students or anyone.
Gamer Type: Casual
Target Platform: PC via WebGL
Genre: Tower Defense
Number of Players: 1. Expected student-teacher interaction.
Projected Release: Ongoing development and updates. V 1.0 by April 2022

Elevator Pitch / Logline

Salmon Run is a top down 3D educational tower defense game about managing the returning population of salmon to a river. The game focuses on teaching evolution and genetics concepts by asking students to position anglers, rangers, dams, and other wildlife management tools to maintain a fine line between wiping the population out and letting it balloon out of control.

Game Overview

The player manages a population of salmon as they swim upriver to spawn. They have several towers at their disposal, which affect the population of salmon in different ways. The sizes of the salmon and the number of each gender are the key components that are affected through the manipulation of the environment.

The game has a main menu which flows into either an options menu or a level and game mode selection screen. On the level select screen, the player may select either to play in a lesson plan or free play mode. The player may also choose which river, or level, they would like to play on. Upon release of the 1.0 version of the game, there is planned to be 3-4 rivers, described below.

In each level, the player can keep track of various statistics including the current salmon population, the biological sex distribution of the population, and the size distribution of the population in updating bars on the upper portion of the screen. The player also has access to the panel of towers they may drag and drop into the level. There is also an additional upgrades screen which has tabs for each of the towers with side grades the player may purchase to change up how each tower interacts with the salmon population during a round.

Each round of play begins with a preparation phase where the player can place the towers they would like to add to the river that they can also afford based on their current money total. The player may only place towers and purchase upgrades during this phase of play. Upon pressing the play button, salmon will begin spawning at the mouth of the river and swim upstream towards one of the potential spawning grounds. There may be only one or many spawning grounds for the salmon to path towards in any given level. Salmon, when they spawn, follow a set course through the river that is determined randomly when they are instantiated. As they swim upstream, the towers, described in more detail below, will either aid the population reach the spawning grounds or reduce the population. After every salmon has either reached the spawning grounds or has died, the round ends and an end-of-round statistics screen appears to inform the player of the current status of the salmon population going into the next round.

The goal of the player during these rounds is based on what mode the player selects in the level selection menu. The differences between the modes, those being lesson plans and free play, are described in more detail below.

Simulation vs Game
Salmon Run is meant to be an educational game. In order to help delineate our team’s interpretation of the difference between what Salmon Run is as a game and what Salmon Run is as a simulation, we have outlined our general definitions of the terms below:


  1. An interactive experience where the focus is to show the player what various inputs in the virtual environment will affect as seamlessly and quickly as possible.
  2. All elements of the experience that relate to the learning goals are kept as accurate as possible.
  3. All resources available at all times. This means no money restrictions or upgrade restrictions.
  4. Play is endless. Rounds will continue until the player quits the game.


  1. An interactive experience with a specified win and lose condition with more stringent rules and goals.
  2. Not necessarily accurate to real life in every single situation.
  3. Resources are limited by the rule sets of each gamemode. Towers and upgrades have in-game monetary costs.
  4. Play is limited by a certain number of rounds, unless the gamemode specifies otherwise.

Lesson Plans vs. Free Play
We want Salmon Run to be both an enjoyable game students want to return to as well as an opportunity to teach concepts of genetics and evolution. To this end, the game has two distinct modes to thread the needle between the accurate simulation of genetics and the pleasurable gameplay we want to create:

Lesson Plans: This mode lies within our definition of simulation and the goal is to use these as ways for teachers to structure lessons for their students.

  1. Based on Learning Goals
  2. May each have their own parameter file
  3. Follow the guidelines mentioned above regarding simulations
  4. It is assumed that the player will either follow a lesson plan / experiment provided by a teacher or they are playing this mode to experiment on their own.

Free Play: This mode lies within our definition of game and the goal is to use this as a way for players to enjoy the mechanics we have created for Salmon Run in a number of different game modes. Below we break down a few of the primary mechanics the player will deal with across each of the planned game modes.

  1. The goal of the player is typically to keep the salmon population in balance, never letting the population get too large or too small.
  2. 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.
  3. Cause habitat loss due to overeating or water chemistry.
  4. If the population ever reaches zero, then the population has gone extinct and the player loses as well.
  5. To win, 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 overview may look slightly different depending on the player’s selected game mode, but the general outline will look the same.

The following is a brief explanation of what each of the towers do in regards to controlling the population and generating money:

Angler: 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.

Ranger: 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.

Dam: 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.

Ladder: 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.

Sea Lion Deterrent: After a dam has been placed, sea lions will begin to appear after a few rounds which will hunt the salmon population in a large area. The deterrent can temporarily get rid of the predator for a number of rounds.

The following section covers a few considerations we must make in order for playtesting to be practical for our small team:

Auto mode: An option to play through a series of rounds with certain parameters to quickly get an idea if the parameters will fit a given lesson plan.

Testing File load in: An option to load in a file with all the parameter settings for a level scene such as catch rates and costs for quicker testing.

Planned River levels for V 1.0 release

  1. Ocean/Lake MI
  • Will the game have an ocean component?
  • Fish disperse rather than follow a route
  • Different set of predators
  1. Columbia River - [WA, OR] [only one, unless full grant]
  • Current time
  • Dams, logging (slit affects eggs and fry),
  1. River 2 - [Alaska - natural and First Nations]
  • Bears, Eagle / Osprey,
  • Predators of fish going downstream
  1. River 3 - [Michigan: Platte River: all fish are from a human build hatchery]

Design Pillars

  1. Based on real genetic and evolutionary models.
  2. Each tower affects the populations in different, visible ways.
  3. Clear feedback via numeric and visual data.

Design Influences (if any)

  • Bloons Tower Defense - The main influence for the layout of the user interface, mainly the constant presence of the list of towers along one side of the screen.

Scope Management

Short Term (3-5 months)

  • Summer Cleaning
  • Go through code and determine what systems are staying and which can be stored.
  • Sort out art direction and map layouts.
  • Handle Github Versions (start fresh on main).
  • Begin a fresh set of level scenes
  • Complete Design Docs.
  • Convert existing documents to Github docs / wikis
  • Begin rewriting existing towers and systems.
  • Collection of data systems - Data files and in-game setting menus.

Medium Term (6 months - April 2022)

  • Complete work on existing towers and systems.
  • Add new towers
  • Predator Deterrent (and upgrades for it)
  • Create the two modes and corresponding menus.

Long Term (April 2022 - Onwards)

  • Multiple maps (multiple rivers to choose from)
  • Introduce new trails/alleles for the fish