For P3, our group (Krystal, Leyth, Lucas, and Ngoc) is tasked with creating a systems game that leads to “unexpected consequences”. We decided to try and model a real-life natural ecosystem between animals and food sources for our game. In this game, the player controls the pathing of multiple animals in a grid-based ecosystem, where animals have specific qualities and behaviors that allow them to traverse the grid in special ways.
- Rabbit: 5 hunger, 5 thirst – must eat grass, drinks at water source, if colliding with another rabbit, spawns another rabbit on the same tile
- Lion: 5 hunger, 5 thirst – must eat a Rabbit or Gazelle to feed, drinks at water source
- Gazelle: 5 hunger, 5 thirst – must eat grass, drinks at water source, can move up to two squares in one turn
For this initial version of the game, there wasn’t a very clearly defined win condition, beyond “see how many turns you can last”. In terms of a lose condition, the game ends when the player loses three animals to hunger or thirst.
Because we envisioned this game to be complex and digital, we tested our initial prototype of the game using a Figjam link to provide a user interface paired with a Python script as a backend to keep track of internal values (see Figure 1).
Concept Statement: I plan to design a game to teach ecosystem balancing and control between extinction/overpopulation for resource management enjoyers (singleplayer). I believe it will include these kinds of fun: Challenge, Discovery. My learning outcomes are Information (learning about types of ecosystems) / Implicit Skills (problem solving and reasoning). I will measure them by asking about their thought process and what strategies they employed to keep the ecosystem alive.

Figure 1: The setup of our game prototype, consisting of a Figjam link to move animals around in an ecosystem, and a Python script to track changing values
On November 5th, we playtested with Ryan, another student in CS377G, to test out our primitive system mechanics and see if any unique dynamics would emerge (see Figure 2).

Figure 2: Playtesting with Ryan in a class setting, with the aforementioned setup
Because of limited time, Ryan was not able to hit an “end state” of the game, but was able to make a total of six turns. The questions / reactions that he expressed during each turn are listed below.
- Turns:
- i
- ii (what happens if 3 rabbits on top of each other?)
- iii (thinking of sacrificing dying rabbit to lion)
- iv
- v (lion a is going to die, “i’m throwing”)
- vi (lion a is dead)
- Core strategy: Reproduce rabbits as they migrate, fed the weakest ones to the lions
- “Lion A should not have died, that was my negligence”
- After asked how long he thought this game could go for, said this game could have gone on forever
- Thought it could be made more realistic if all animals should die at a certain lifespan, and all animals should be able to reproduce (balancing mechanism)
- Also thought it would be more realistic if resources were finite
After hearing this feedback, we decided that our game has complexity due to the number of turns and pathways that animals can take, but it seems a little too easy to come up with a first-order optimal strategy to reach an equilibrium. We need to heavily revamp point scoring and player agency, to make the player feel as if they have a lot of choices to make, but not make there be such an easily visible “best” strategy to keep the game going forever. In terms of initial thoughts, we are considering limiting the pathing to certain animals (e.g. you only get to move rabbits around, but not the predators) and potentially introducing a group dynamic situation (where a large number of animals can overwhelm another animal, if enough). We also will take into account Ryan’s suggestions with scarcity of resources like food/water and lifespans as we continue to redesign how our simulated ecosystem functions.

