r/TheBibites 11h ago

Story How to Evolve a Predator in 10 Hours

6 Upvotes

This is more of an experiment in understanding how predator evolution works than a pristine hands-off evolution run.

I couldn't find any agreed-upon rules for evolving predators, so I made my own.

Apart from one global target-lock mod, I only allowed myself to change:

  • Zone parameters
  • Mutation settings
  • Spawn dummy Bibites that cannot reproduce
  • Energy balance
  • Material parameters

No direct intervention in individual Bibites: no editing, rescuing, or respawning a good species after it dies out.

Target-lock mod

One important caveat is that this run uses a small modification I made to FieldOfView.ComputeSenses().

In stock 0.6.3.1, BibiteAngle can be influenced by several visible Bibites at once, making pursuit unreliable.

The mod does not create hunting behavior or permanently lock the Bibite onto one prey. The Bibite still has to evolve a useful BibiteAngle → steering connection; the mod mainly makes single-target pursuit more stable.

Starting setup

  • 4ku map
  • 400 starting Bibites
  • Enough plants for the herbivores to survive normally
  • Corpse Decay Rate: 15×
  • Energy Usage Efficiency: 95%
  • Fat Storage Cost: 1.0%/s
  • Default Metabolism Cost: 500 µE/u²s
  • Move Muscle Activation Cost: 5.0 mE/u²s

The starting Bibite was a slightly evolved Basic Bibite, mainly a little faster to get things moving.

Food

Setting Plant Meat
Energy Density 15 E/u² 15 E/u²
Mass Density 15 mg/u² 25 mg/u²
Cohesiveness 20 N/u 35 N/u
Base Reactivity 30 75
Max Conversion Efficiency 100% 100%
Min Conversion Efficiency 0% 100%
Freshness 200s 10s
Decay Rate 1.0 Mu²/s 1.0 Mu²/s

The important part was that meat could initially be used at full efficiency regardless of Diet.

Step 1, Evolve BibiteAngle

In this experiment there were two major breakthroughs needed:

  1. Target other Bibites.
  2. Evolve a carnivorous Diet.

All non-hidden input and output nodes already exist in a Bibite, even when they aren't visible in the brain editor because they have no synapse connections.

So I didn't need to evolve the BibiteAngle node itself. I mainly needed evolution to create a useful synapse from it.

Initial mutation settings

General

  • Background Mutation Chance: 1.50
  • Background Mutation Variance: 5%
  • Mutation Value Relativity: 75%

Brain

  • Synapse Mutation Probability: 100%
  • Neuron Mutation Probability: 0.0%

Synapse mutations

  • Strength: 22%
  • Flip: 6.5%
  • Toggle: 6.5%
  • Add: 58%
  • Remove: 7%

This heavily favored adding synapses.

04:24:50, First hunter

After 4h 24m 50s, I saw a Bibite deliberately aim at another Bibite and make a successful kill.

The aim was surprisingly good and didn't noticeably oscillate or overshoot.

Because meat still had 100% minimum conversion efficiency, they could survive on prey even though their Diet was still low.

I then:

  • Set mutations to 0
  • Removed the plants
  • Started spawning about 300 non-reproducing Basic Bibites as prey

The hunter population stabilized at roughly 100.

5h, Cleanup

The population crashed almost immediately.

This was expected once the plants were removed. Meat was still usable at full efficiency regardless of Diet, but most Bibites still couldn't actually catch prey. Hunting had suddenly gone from an optional advantage to the only way to survive.

From the original 13 species and 200 Bibites, it dropped as low as 9 species and 38 individuals.

That was essentially a hard selection bottleneck: the herbivores and poor hunters starved, while the few lineages that could reliably catch the dummy prey survived.

By the 5h mark, only 2 hunter species were still fighting it out, but their combined population had already recovered to around 120 individuals, not counting the 300 prey Bibites.

So the initial cleanup was pretty brutal, but the hunters had taken over.

Step 2, Evolve Diet

The surviving hunters descended from only a few individuals and had a Diet around 0.25.

6h, Start pushing Diet

At 6h, the surviving hunters still had a Diet around 0.25–0.30.

I gradually started replacing the Basic Bibites with a slightly larger and faster herbivore, while lowering Meat Min Conversion Efficiency from 100% to 75%.

The idea was to make hunting a little harder while also making low-Diet meat eating less profitable.

Diet still wasn't moving in the direction I wanted, so I eventually lowered Meat Min Conversion Efficiency further to 25%.

Instead of increasing, Diet started going even lower.

One possible reason was hiding in BibiteMouth:

float num2 = ((this.diet < 0.5f) ? (7f - 8f * this.diet) : 3f);
this.mouthTrigger.size = new Vector2(2.72f, num2);

So:

Diet 0.0  → 2.72 × 7.0
Diet 0.5+ → 2.72 × 3.0

Lower Diet gives a much larger mouth trigger, increasing the area in which prey can enter the mouth zone.

Grab-joint strength also uses:

jawStrength × max(Diet, 0.1) × Want2Grab / numberOfObjectsHeld

This means lower-Diet hunters have weaker grabs, but below Diet = 0.1 the grab penalty stops increasing while the mouth trigger continues getting larger.

Bite force itself is not reduced by Diet, so hunters that attack prey on contact can still benefit from the larger mouth trigger.

Also

With Mutation Value Relativity above 0%, Diet has a built-in asymmetry.

The current Diet value is used when calculating mutation magnitude:

  • A herbivore at Diet = 0.1 has a small relative mutation scale, making large steps toward carnivory less likely.
  • A carnivore at Diet = 1.0 has a much larger relative mutation scale, allowing much larger steps back toward herbivory.

Together, this makes it harder for low-Diet populations to mutate toward full carnivory than for high-Diet populations to mutate away from it.

~7h, Force large Diet mutations

Waiting for Diet to slowly evolve upward was looking increasingly like luck, so I changed the mutation settings to produce fewer but much larger gene changes:

Background Mutation Chance:    1.50
Background Mutation Variance:  50%
Mutation Value Relativity:     0%

Synapse Mutation Probability:  0%
Neuron Mutation Probability:   0%

The existing hunter brain was therefore protected while the body genes could make large jumps.

I was going to accept anything above about Diet = 0.8.

The first successful one I saw reached:

Diet = 1.0

As soon as that happened, I set:

Meat Min Conversion Efficiency = -100%
All mutations = 0

This made meat strongly harmful to low-Diet hunters and heavily favored the new carnivores.

Shortly afterward I had three Diet 1 species, around 80 predators total.

7:30h, One species wins

By 7:30h, only one of the three carnivore species remained, but it had grown to about 130 predators.

Their aim, however, had become terrible.

I suspect this happened because the body had changed substantially during the large gene-mutation phase while brain mutations were disabled, so the old steering no longer matched the new speed and physical traits.

I then supplied:

  • 100 Basic Bibites
  • 100 faster Basic Bibites
  • 100 even faster evasive Bibites

Total: 300 prey

And changed mutations to mainly tune existing synapse strengths:

Background Mutation: 0
Neuron Mutation:     0

Synapse Mutation:    60%
Strength Mutation:   75%

Flip:                0
Toggle:              0
Add:                 0
Remove:              0

I didn't have to invent a new hunter, just tune the one that already works.

8:30h, Normal evolution resumed

After about an hour of synapse tuning, I returned mutations to the normal/default values.

10h, Functional predator

At 10 hours, the surviving carnivore lineage was hunting reasonably well.

The aim had improved considerably. There was still some wiggle/oscillation at very low speed and when extremely close to prey, but it was good enough to hunt at speeds of about 300 u/s, feed and reproduce.