Blob bucket
About
I'm trying to get the webGL version working, but no luck so far.
It is my pet project that I find myself working on when I should be studying for my biology degree.
It is still VERY much a work in progress. If want to iterate on it, create other stuff with it or help me make it more functional you're free to do so, it would be very fun, in fact.
There are three trophic levels:
1. The green autotrophs called 'blibs' that get their energy from "the void", (their greenness and redness) and their nutrients from their environment.
2. The heterotrophic primary consumers, magenta 'blobs' and yellow 'blybs' that get their energy and nutrients from consuming blibs, and each other.
3. The heterotrophic red 'blubs' that get their energy and nutrients from consuming blobs, blybs and each other. All heterotrophs are also scavengers, but they might poison themselves if their meal contains too much ammonia.
I'm currently working on getting the genetics to work properly, which means that the actual functionality is not that great right now. The heterotrophs are ml agents trained with reinforcement learning and the autotrophs are controlled by a simple script.
The only genomes that are kind of functional right now are the blib genomes.
They are composed of two 2D-arrays of strings with the dimensions [9,486]
Each index can contain the letters A, T, C, or G, which is then translated to amino acids (another string of letters ) using the standard genetic code table.
Then the complementary sequences are translated as well (Read backwards & A<->T, C<->G)
These amino acid sequences are then compared to a set of pre-defined sequences and the number of copies of each match correspond to different numeric phenotype values (moveForce e.g.)
The genomes, population numbers and phenotype values are sampled at regular intervals and exported as csv files in the application directory.
The source code can be accessed here: (please help me, it's a buggy mess)
https://github.com/MandaPandaTroll/blob_bucket_no_scary
Good luck and have fun!
Keybindings:
WASD: pan camera
Up, down arrows: zoom camera
Left, right arrows: change camera movement speed
R: restart simulation
Y: spawn blyb, O: spawn blob, I: spawn blib
ESCAPE: quit
N: slow time
M : speed up time.
To really mess around with the settings, you'd need to open it in the unity editor... I can send you a copy if you're interested :)