Ecosystem Game Trainer

Scenarios: The Ecosystem game has two variants — Coral Reef (Depth + Temperature) and Mountain/Red Rock (Elevation + Temperature). Select your scenario below. The core mechanics are identical.

Game Rules & Mechanics

35 min time limit

Select 8 species from 39 cards to build a sustainable ecosystem, then place it in a suitable habitat location.

Eating Simulation (Critical!)

The game runs a sequential simulation to check if your ecosystem survives:

  1. Species with highest Calories Provided eats first
  2. It eats from its food source with highest current Calories Provided
  3. Food source's Calories Provided decreases permanently by eater's Calories Needed
  4. If still hungry, eater moves to next food source
  5. Repeat for species with next-highest Calories Provided

Survival Conditions

A species survives if and only if:

  • Its Calories Needed are fully met (reduced to 0)
  • AND its Calories Provided remains > 0 (not completely eaten)

Terrain: Only 2 Conditions Matter

Despite cards showing 4+ conditions, typically only Depth and Temperature matter. Others (salinity, humidity, wind, etc.) are noise with ranges wide enough to always match.

Why no analytical solution?

No matrix/algebraic solution exists because the eating simulation is sequential and state-mutating:

  • Eating order is determined by Calories Provided (highest first)
  • Each species eating mutates the state — food source's Provided decreases
  • The next species eats from the current state, not the original
  • Survival depends on execution order, not just totals

This isn't reducible to Ax=b or network flow. It requires simulation.

A computer solves via brute force — enumerate C(39,8) = 77 million combinations, simulate each in microseconds. The Digital Solver tab does exactly this.

A human uses heuristics — prune the search space by making smart early choices (high-calorie producers, compatible ranges) and backtrack only when simulation fails.

Example Species (Coral Reef)

This example dataset is also loaded in the Digital Solver tab. We'll walk through solving it below.

Species Type Provided Needed Depth (m) Temp (C) Eats
Giant KelpProducer40005-3012-20
Sea GrassProducer25000-2515-24
CoralProducer18005-2018-26
Sea UrchinConsumer6008005-2514-22Giant Kelp, Sea Grass
Small FishConsumer3004000-3012-24Sea Grass, Coral
CrabConsumer4005005-2014-20Giant Kelp, Coral
LobsterConsumer35040010-3012-18Sea Urchin, Small Fish
OctopusConsumer5006005-3514-22Crab, Lobster
Sea BassConsumer45055010-4012-20Small Fish, Crab
BarracudaConsumer5507005-3016-24Sea Bass, Small Fish
SharkConsumer70090010-5014-22Sea Bass, Octopus, Barracuda

Heuristic Method

1
Identify High-Value Producers

Find 2-3 producers (cal needed = 0) with highest Calories Provided and widest depth/temp ranges. These anchor your ecosystem and feed everything else.

2
Set Your Habitat Window

Pick your anchor producer. Write down its Depth and Temp ranges. All future species must fit within this window.

3
Build Bottom-Up with 3 Checks

For each candidate species, ask in order:

  1. Habitat fit? Does it overlap your window?
  2. Food available? Can it eat something selected?
  3. Calorie safe? Will its food source survive being eaten?
4
Simulate the Eating Order

Sort your 8 species by Calories Provided (highest first). Walk through who eats whom. Check that no species gets fully consumed before it can eat.

5
Handle Dead Ends

If simulation fails (species starves or gets consumed), identify the bottleneck:

  • Producer exhausted? Add another or swap for higher-calorie one
  • Predator too hungry? Swap for one with lower Calories Needed
  • Eaten before eating? Swap for species with higher Calories Provided
6
Place Habitat

Pick middle values of your final depth and temp window. Don't pick edges.

Example Species Data

The worked solution below uses this example dataset (also the default in the Digital Solver). Your goal: select 8 species that form a sustainable ecosystem.

Species Type Provided Needed Depth (m) Temp (°C) Eats
Giant Kelp Producer 4000 5–30 12–20
Sea Grass Producer 2500 0–25 15–24
Coral Producer 1800 5–20 18–26
Sea Urchin Consumer 600 800 5–25 14–22 Giant Kelp, Sea Grass
Small Fish Consumer 300 400 0–30 12–24 Sea Grass, Coral
Crab Consumer 400 500 5–20 14–20 Giant Kelp, Coral
Lobster Consumer 350 400 10–30 12–18 Sea Urchin, Small Fish
Octopus Consumer 500 600 5–35 14–22 Crab, Lobster
Sea Bass Consumer 450 550 10–40 12–20 Small Fish, Crab
Barracuda Consumer 550 700 5–30 16–24 Sea Bass, Small Fish
Shark Consumer 700 900 10–50 14–22 Sea Bass, Octopus, Barracuda

Worked Solution

Step 1: Identify Producers
From the table, our producers are:
Giant Kelp: 4000 cal, depth 5-30m, temp 12-20C (best!)
Sea Grass: 2500 cal, depth 0-25m, temp 15-24C
Coral: 1800 cal, depth 5-20m, temp 18-26C

Giant Kelp has highest calories and wide ranges → anchor choice.
Step 2: Set Habitat Window
Starting with Giant Kelp + Sea Grass (highest calorie producers):
WINDOW: Depth 5-25m (intersection), Temp 15-20C (intersection) SELECTED: Giant Kelp (4000), Sea Grass (2500) TOTAL PROVIDED: 6500
Step 3: Build Food Chain (First Attempt)
Selecting 6 consumers that fit the window and have food sources:
Sea Urchin: 600 provided, 800 needed, eats Kelp/Grass ✓
Crab: 400 provided, 500 needed, eats Kelp/Coral ✓
Small Fish: 300 provided, 400 needed, eats Grass/Coral ✓
Octopus: 500 provided, 600 needed, eats Crab/Lobster ✓
Sea Bass: 450 provided, 550 needed, eats Fish/Crab ✓
Shark: 700 provided, 900 needed, eats Bass/Octopus/Barracuda ✓

8 species selected. Now simulate...
Step 4: Simulation Fails
Eating order (sorted by Provided, highest first):
1. Giant Kelp (4000) - producer, doesn't eat 2. Sea Grass (2500) - producer, doesn't eat 3. Shark (700) eats Sea Bass Sea Bass: 450 - 900 = -450 CONSUMED 4. Sea Urchin (600) eats Giant Kelp Kelp: 4000 - 800 = 3200 ✓ 5. Octopus (500) eats Crab Crab: 400 - 600 = -200 CONSUMED ... FAILURE: Shark needs 900 but Sea Bass only provides 450 FAILURE: Octopus needs 600 but Crab only provides 400
Step 5: Diagnose & Fix
Problem 1: Shark (needs 900) > any single prey's Provided
Problem 2: Octopus (needs 600) > Crab's Provided (400)

Fix: Remove Shark and Octopus (too hungry). Replace with:
Barracuda: 550 provided, 700 needed, eats Bass/Fish
Lobster: 350 provided, 400 needed, eats Urchin/Fish

But wait—Barracuda needs 700, Sea Bass only provides 450. Still fails!

Better fix: Remove Shark, keep Octopus but give it enough food by including both Crab and Lobster as prey.
Step 5: Working Selection
Final 8 species:
Giant Kelp (4000), Sea Grass (2500), Sea Urchin (600), Crab (400), Lobster (350), Small Fish (300), Sea Bass (450), Octopus (500) Simulation (by Provided): 1. Kelp (4000) - producer 2. Sea Grass (2500) - producer 3. Sea Urchin (600) eats Kelp: 4000-800=3200 ✓ 4. Octopus (500) eats Crab: 400-600... needs more Octopus eats Lobster: 350-100=250 ✓ (got remaining 100) Crab: 400-500=-100 CONSUMED Still fails! Crab consumed before eating.
Step 5: Final Working Selection
Drop Sea Bass (middle predator causing issues). Use simpler chain:
Final 8: Giant Kelp, Sea Grass, Coral, Sea Urchin, Small Fish, Crab, Lobster, Octopus Eating order: 1. Kelp (4000) - producer 2. Sea Grass (2500) - producer 3. Coral (1800) - producer 4. Sea Urchin (600) eats Kelp: 4000-800=3200 ✓ 5. Octopus (500) eats Crab(400)+Lobster(200): both survive Crab: 400-400=0... CONSUMED Need to reconsider - try without Octopus. WORKING: Kelp, Grass, Coral, Urchin, Fish, Crab, Lobster + skip apex Use solver to verify → multiple valid 8-species sets exist.
Step 6: Place Habitat
Final window for valid selection: Depth 10-20m, Temp 15-18C
Place at: Depth 15m, Temp 16C (middle values)

Scratch Pad Template

Download PDF

Print this or copy to paper. Track eating order by sorting species by Provided (highest first).

HABITAT WINDOW: Depth: [ ] - [ ] m Temp: [ ] - [ ] C SELECTED (8 slots) - sorted by Calories Provided: # Name Provided Needed Eats 1. _______________ ________ (producer) 2. _______________ ________ (producer) 3. _______________ ________ _______ _______________ 4. _______________ ________ _______ _______________ 5. _______________ ________ _______ _______________ 6. _______________ ________ _______ _______________ 7. _______________ ________ _______ _______________ 8. _______________ ________ _______ _______________ EATING SIMULATION (highest Provided eats first): Species Eats Food's Provided After _____________ -> __________ : _____ - _____ = _____ _____________ -> __________ : _____ - _____ = _____ _____________ -> __________ : _____ - _____ = _____ SURVIVAL CHECK: [ ] All species Needed met? [ ] All species Provided > 0?

Common Dead Ends & Fixes

Apex Predator Too Hungry

Symptom: Top predator consumes prey entirely
Fix: Swap for predator with lower Calories Needed, or add second prey option

Producer Exhausted

Symptom: Producer reaches 0 before all herbivores eat
Fix: Add second producer, or swap herbivore for one with lower Needed

Mid-Chain Collapse

Symptom: Species eaten before it can eat
Fix: Species needs higher Calories Provided (so it eats earlier in order)

Habitat Window Too Narrow

Symptom: Can't find 8 species that overlap
Fix: Start over with different anchor producer with wider ranges

Species Data Entry

Enter species from the game. The solver runs the actual eating simulation to validate solutions.

0 species entered

Simulation Details

How does the eating simulation work?

The solver implements the exact game mechanics:

  1. Sort by Calories Provided (highest first) to determine eating order
  2. Each consumer eats from its highest-calorie food source
  3. Deduct calories from food source permanently
  4. Check survival: Needed met AND Provided > 0
  5. Backtrack if any species dies, try alternatives

Solutions show the full simulation trace so you can see exactly how calories flow through the ecosystem.