I'm building evolution based AI toolkit, to automatize creation of AI for game developers.
It's based on sexual reproduction, so any novelty, that appears in any organism, spreads along the population, and combines with other positive findings.
Genetical network, that calculates controlling signals based on input signals from senses, only require one thing: input and output should be floats on [0, 1] range.
So, if one has a system, that needs a control, and its senses and controlling signals can be encoded into [0, 1] floats, it can theoretically be evolved.
I'm building this system in Unity 5. It's only 3 weeks old project, but already I managed to create a first experiment.
Organisms can see waht's going on around them, and can move in 2 directions. They die from contacting the lines-obstacels. 40% best survivors reproduce. And after 500 generations of constant improvement they managed to become a pretty agile beasts.
That's pretty neat. I don't know if it's expected behavior but I did see a few instances where it appeared the dudes were stuck in the center of two potential path points and couldn't decide which to go to for a few moments.
Is this built in C/C or a proprietary scripting language?
It's probably possible to work the randomness into a degree of cautiousness and have that as an evolutionary attribute as well. Therefore different circumstances might breed different kinds of life (more aggressive/more cautious).
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
I'm building evolution based AI toolkit, to automatize creation of AI for game developers.
It's based on sexual reproduction, so any novelty, that appears in any organism, spreads along the population, and combines with other positive findings.
Genetical network, that calculates controlling signals based on input signals from senses, only require one thing: input and output should be floats on [0, 1] range.
So, if one has a system, that needs a control, and its senses and controlling signals can be encoded into [0, 1] floats, it can theoretically be evolved.
I'm building this system in Unity 5. It's only 3 weeks old project, but already I managed to create a first experiment.
Organisms can see waht's going on around them, and can move in 2 directions. They die from contacting the lines-obstacels. 40% best survivors reproduce. And after 500 generations of constant improvement they managed to become a pretty agile beasts.
Visualization of organism's genome
Horizontal line of the white circles in the bottom is input from sensors. At the top - output (x, -x, y, -y).
White circles in the middle are intermediate enzimes.
Small red/green circles are genes.
Lines are connections between enzimes created by the genes.
Color of lines speak of their locus. So, lines of the same color will be passed to a child together, as a system.
That's pretty neat. I don't know if it's expected behavior but I did see a few instances where it appeared the dudes were stuck in the center of two potential path points and couldn't decide which to go to for a few moments.
Is this built in C/C or a proprietary scripting language?
/e wtf why does plusplus make things green
@IskatuMesk: Go
It's C#.
You right, sometimes they can't decide, I'm even thinking of adding a source of randomness they could rely on.
It's probably possible to work the randomness into a degree of cautiousness and have that as an evolutionary attribute as well. Therefore different circumstances might breed different kinds of life (more aggressive/more cautious).