a5kin / xentica

GPU-accelerated engine for multi-dimensional cellular automata

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fix EvoLife model behavior

a5kin opened this issue · comments

EvoLife implemented with Xentica has too different behavior from the original version. Genomes (rules) are working properly one by one. But when we trying to reproduce Crossbreeding experiment, it leads to extinction rather than cells filling the whole field. We need to investigate where the problem is and fix it for good.
The one possible reason is a bug in Xentica genome crossover algorithm. The other one is a bug-as-a-feature in legacy crossover. Also, there is probably a bug in multi-species birth mechanism.

It was a hard quest, but we did it. More than a week, we struggled with incorrect EvoLife behavior. At last, it works as expected, forming complex ecosystems from a random initial seed. The catch was in a very peculiar "inverted energy" mechanism from the legacy engine. Once we reproduced it exactly in Xentica, the model started to behave correctly. Even with the absolutely different crossbreeding algorithm, mutation applied and per-cell PRNG, it has very close dynamics to the legacy version now.

You can check it yourself in two quick demo videos.
https://www.youtube.com/watch?v=aGsjbSfCxCw
https://www.youtube.com/watch?v=r8Gxnu-7TRg