This repo is a separate continuance of: Playing-With-Spheres
3rd Version. Previous versions written in Python can be found at: V2+V1
- Unity version 2021.3.0f1
- 8 GB RAM
While the simulation is running, you can travel and click on cells to get their current real-time data!
The simulation streams the data in real-time to a csv file in its folder with the starting timestamp.
- Speed: the speed in which the cell will move. Defined by:
Globals.SpeedUnits
*cell.SpeedPoints
. - SightRadius: the sight radius in which the cell can see. Defined by:
Globals.SightRadiusUnits
*cell.SightRadiusPoints
. - MaxFullness: maximum fullness the cell can reach. Defined by:
Globals.MaxFullnessUnits
*cell.MaxFullnessPoints
. - Size: the size of the cell. Defined by:
Globals.SizeUnits
*cell.SizePoints
. - FoodWorth: worth of each food unit consumed. Defined by:
Globals.FoodWorthUnits
*cell.FoodWorthPoints
. - ReplicationRate: the rate of replication of the cell. In ths version - is constant. Defined by:
Globals.ReplicationRateUnits
*cell.ReplicationRatePoints
.
- A cell will look for food as long as it is hungry.
- A cell is hungry if eating a single unit of food will make its fullness equal or lower than
MaxFullness
. - A cell can only see in its
SightRadius
. - Cell1 can eat Cell2 if Cell1.Size > Cell2.Size + 2. Eating another cell gains 3 times the regular food worth.
- A cell will move in a random direction unless it is hungry and there is no food in its sight radius, or if it spots a cell that can eat it.
- A cell will always move at its
Speed
.
- Replication: a cell will divide when two conditions are met:
7.1 TheTimeToReplication
(starting atReplicationRate
) has reached 0.
7.2Fullness
>cell.CellMaxFullness
/ 2. - When a cell divides, its
Fullness
is cut by half and itsTimeToReplication
is reset tocell.ReplicationRate
. - Mutation: On each replication, there is a chance of mutation: increasing one parameter's evolution point with another's (increasing one and decreasing the other).