Critters1 Biodiversity

Be a benevolent God or Goddess! In this app you lend a helpful hand to keep your island biome in dynamic equilibrium and learn a little about the need for biodiversity. Your simple goal is to keep the game running for as long as possible by occasionally launching (red) prey and (purple) predator species. They each live a random lifespan and if they have sufficient energy they will give birth to their own kind within a fertile period. Reds graze, and Purples eat Reds for energy, if they can catch them. Predators will move to hunt the prey, who attempt to flee. The prey tend to flock together and the predators hunt in packs. Species live on a Wrap World where the left and right sides of the screen connect, as do the top and bottom. Prey gain energy by grazing, but if there are too many prey there is competition for food, overgrazing and nutritional loss, which makes them work harder to stay alive. If predator numbers are too high, they must also compete for prey making life harder.

When species individuals get too old, they die. If species individuals are too young, old, or don’t have enough energy to give birth, the species dies out and goes extinct. If the predators can’t catch and kill the prey, they also lose energy and eventually die.

Your goal is to keep the world in dynamic equilibrium for as long as possible. The score is affected by time, launches, and number of individuals. Each game is unique and random, except for your God-like input. Be mesmerized observing your island universe from on high, trying to to keep it in dynamic equilibrium, and rooting for your favorite individuals. The app is simple enough for a child to easily use, but complex enough for adult geeks to analyze the resulting data.


Load Critters1 Biodiversity app, two individuals initiate the game. Start launching additional individuals of each species. 

Reset button stops the game and resets high score (HS:).

Touch screen anywhere in empty area to restart a stopped Game.

Keep track of your (high) scores (until reset).

Press Graph button to observe individual counts as a function of time (in real-time).

Graph mode allows examination of whether deaths occurred from old age, low-energy, or kills.

Double tap gesture changes the origin of  the graph, pan moves the graph.

Pinch gesture at > 45º scales the Y axis, and at < 45º scales the X axis (independently).


Both species live a random lifespan (100 – 160 seconds). 

The fertile period is 30 – 90 seconds.

The species lose energy as a function of time as they move.

Real-time screen labels include Launches (L:), Current Count (C:), time (t:), Score (S:), average Age (A:), average Energy (E:).

If you dislike your graph adjustments, toggling the Back/Graph button resets the graph to original settings.

Game can become unstable if frames per second (fps) goes below 30.

Some users may note that at times the counts (C:) will differ by a small amount from the number of sprites seen on the screen at the end of the game. The count values are updated more rapidly than the sprite removal or the 1 Hz graph data. The bottom line is  that the count numbers (C:) are accurate.

The app’s sprite removal function is complex because a “collection can’t be mutated while being enumerated”. Or, in plain English, you can’t attempt to count something and change it while you are trying to count it.