🐟 🐛 Small Inteli Creatures Based On Steering Behaviours
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
LICENSE
index.html
readme.md fixed Predator's color bug Dec 15, 2018

readme.md

Evolution Aquerium

Try Out The demo

Craig Reynold's

How It Works?

Well that's an obvious question.

These Creatures are based on Craig Reynold's Steering Behaviors and Flocking System

It's also implements Genetic Algorithm and mutations.

You can learn more about them on Daniel Shiffman's YouTube Channel The Coding Train

How My Code Works?

My code is actually pretty simple.

Agent Class

I made a Agent class which handles all the Basic behavior like

  • flock()
  • align()
  • separate()
  • cohesion()

And added some basic parameters like

this.radius = radius; //size of the agent

this.health = 1; // health 

this.healthDecrease = 0.003; // how much health will decrease over time

this.goodFoodDie = 0.5; // food increase the health by that amount 

this.badFoodDie = -0.4; // poison decrease the health by that amount

I also added a sex variable for the agents and all of them also has unique names

this.sex = (Math.random() < 0.5) ? 'male' : 'female';

Fear Behavior

And for the most important part, i added a defineFear() method which handles Fear behavior.

It's a robust function to define fear which can be also used inversly with negative values.

defineFear() function allows Agents to add Steering Forces simultaneously on each other

// list, weight, perception, ?callback
creature.defineFear(predators, -4, 50);

Reproduction System

Reproduction System checks for male and female agents and if their radius is greater than 8 and they are close enough to each other, then they can reproduce with their specific DNA and creates a small Agent based on their DNA data and with some mutation.

Predator class

Predators are simple but deadly they just has a sex property set to 'predator'

and i used defineFear() function inversely to attack the Creatures

And bigger they get slower they became.

Avoider Class

Avoiders are very very very fast but they are very agile too. they just has a sex property set to 'avoider'

and i used defineFear() function to avoid every poison and Predator.


Have Fun Watching Them All Day

Try To Contact Me

I AM A PROUD INDIAN.