lumpy space
I have one friend who is always teaching me new things in CS. Evolutionary algorithms was one such thing they shared. I took the sprite generation code from Personal Space Invaders and put them in a Perlin noise landscape.
Movement of the sprites is dictated by scores that control how often they exhibit a behaviour. The ‘player’ controls a larger sprite and can act as a predator. When a small sprite is removed from the game, a new sprite is generated with behaviours and color being inherited from the two oldest survivors + some occasional random mutations.
If you hunt for a while, the herd changes. People with less-than-perfect eyesight (like myself) may notice the emergence of camouflage fairly early into the session.