Evolving AIs - More Complex Environment

preview_player
Показать описание
This 3rd video about my Predator vs Prey project shows the improvements I made to the simulation, removing some of the previous limitations.

A free demo is available on my Patreon page.

Previous videos of this series:

Get 25% off when purchasing annual personal license from JetBrains using the code: PezzzasWork

00:00 Introduction
03:55 Results
19:32 Time-Lapse
21:04 Thanks!
Рекомендации по теме
Комментарии
Автор

LOVE these AI simulated ecosystem videos. Thanks Pezzza! Keep up the great work!

Sleekflight
Автор

I think it's hard to balance because the plant growth is slower than the reproduction/maturation rate of the animals. IRL wild herbivores are part of the life cycle of many plants, getting eaten isn't bad, it fertilizes the soil and propagates seeds. Total loss of ground cover is not part of normal fluctuation in population levels, it's a natural disaster.

MrJethroha
Автор

I'm curious what makes the prey think backwards loop-de-loops landing directly into a predator's mouth is a solid strategy lmao

geesegalore
Автор

Amazing simulation! I think separating the world with some walls that have openings, to create speciation, could help reduce the amount of extinctions. I can imagine those waves which wipe out the majority of the prey (then consequently the predators) can be isolated to specific areas. Can't wait for part 4!

EmergentLifeArchive
Автор

Very nice. I've dabbled in the subject a bit. This is what I'd do to avoid extinctions (best benefit/cost first):

1. Regional variation: This can be as simple as the left of the screen has high reserve loss and the right has less. Or maybe the energy cost per move speed formula is different on part of the map. Ideally there would be a sharp change between these regional properties. The change in each property should be a neuron input. The goal is to have specialist populations in the regions so that migrants from a different region will tend to be outcompeted. It's important because it means that a population collapse in one region is less likely to affect the others, and when that happens the remaining populations can spread to the dead zones.

2. Barriers: The most effective barrier is a large shape in the middle of the map but more complicated shapes can be better. The goal is to divide populations more, and make it harder for a new evolutionary advantage to propagate everywhere. Not the most effective tool, but an easy one.

3. Memory: This can be as simple as adding a neuron that appears both as an output and an input, the output from the last step becomes the input for the current step. A creature could add multiple of these with connections as they do in hidden layers. The goal is to let prey go into a more persistent run / emigration state when there are too many predators in a given area.

4. Reduce predator carrying capacity compared to prey: The easy way is to just reduce the food value of food from prey. The goal is to stop predators blanketing an area. Prey in emigration mode would ideally have a chance to run out of a risky area, but that's too difficult if the predator population is overwhelming.

5. Stratification: This is the most important one but also by far the hardest to do. Ideally there would be different plant types and physical properties for animals such that there are specialists for a lot of different things. In particular, it should be very difficult for a predator to be able to attack both large and small animals (too evasive, or too resistant). As with regional variation, the benefit is that even if one layer of the population collapses, creatures from another layer can adapt to make use of the new empty layer.

6. Simulation size: Bigger maps with bigger populations. The distance helps with the regional isolation aspect, and the larger populations help the statistics of small populations somewhere. It's often the most costly and least interesting improvement so it's last on my list.

earendelentertainment
Автор

I noticed the creatures have no way of knowing if they are being backstabbed or if their health is depleting. They have no short-term memory to allow them to notice their health is dropping and will only know that their health is currently high or low. You can probably create some more reactive AIs if you provide a way for them to have memory and/or extra information to state that they are in an exceptional situation (like isStarving or isBeingAttacked inputs).

Adding something like a generic call output that others can hear as an input will also allow your AIs to communicate and evolve in interesting ways -- I venture to guess they can even mimic memory with a simple output/input like that.

bitblit
Автор

an omnivore would dominate your entire simulation

TAB_
Автор

Of all the possible improvements, I think you'd be best served by two things.

1. Plant resilience. The prey-plant interaction is quite basic. Plants don't normally get wiped out by grazers. They employ strategies like seed dispersal through feces, roots that regrow annually, and defenses like thorns/poison the limit which animals can feed.

2. Adaptation. Allowing animals to diversify only during spawning limits the effect of the mutation system. Consider allowing them to adapt at any time in response to stress.

NickCombs
Автор

the predators learnt to follow other predators, meaning when the first one sees some prey, it looks like a big conga line starts up just predators following predators knowing that at the end of the chain is prey.

YOGURT
Автор

One issue with balancing the simulation might be the way reproduction is working. Right now, it looks like it works the same for both species: amass enough energy, produce 1 offspring. In the real world, prey species like rabbits and mice don't have just one baby at a time. They give birth to multiple pups at a time. As well, your predator and prey species seem to have the same general mass. In the real world, prey species tend to be smaller, while predator species are larger. Prey species need to be able to reproduce using *less* energy than predators do, and when they do, they need to be able to make multiple offspring at a time.

TheBookDoctor
Автор

A size modifier could be cool, bigger means tougher but more energy needed, smaller prey might be harder to spot too. A speed modifier could also be good, faster is more energy intense. This combo could lead to a lot more diversity and perhaps longer stability before collapse.

TheJohtunnBandit
Автор

I liked the way that the addition of plants gave the prey a way to hide for a bit, since if they just chilled in the middle of a group of plants then the predators couldn’t “see” them to be hunted

Hufdud
Автор

A periodic forcing function might help stabilize your predator/prey relationship by allowing recovery of each. Something like plants grow best spring and summer thus prey grow best spring to fall and predators survive on fat in the fall/winter but prey burrows to hibernate and become the seeds of the next seasons population. It would take a lot of evolution to spontaneously generate that kind of complex behavior.

Always enjoy your work, thank you for sharing.

phrozenwun
Автор

Very cool, 1 thing you could do is whenever a blob dies, increasing plant growth in that area to simulate fertilizing the area

kristianmureau
Автор

One thing to balance is to think about energy, after the prey consume the plants, they use 90% of the energy for life functions and reproduction and store the other 10% in their bodies. When the predators eat them it shouldent be a 1 to 1 as if they got the energy directly from the plants with a conversion. This should change the population dynamic and I doubt there would be such dense predators population after a prey spike. This could open up the enviorment allowing prey to be more likely to escape and reproduce

mattp
Автор

i get so stoked when i see another pezzzas work video! Thank you!

thepieu
Автор

FINALLY! I've wanted to see another one of these in FOREVER.

CosmicCrimson
Автор

I'm curious - how did you get this to be so performant? More than 600 AIs running at ~2 milliseconds per frame is awesome, with probably tens of thousands of raycasts

_MrNoob
Автор

You got some of the coolest videos on YouTube. Thanks for posting this

zacharyneely
Автор

great that you changed the colors again because the colors/contrast of the second video were a bit unpleasing to look at. i love this series, hopefully it continues. there are still some neat ideas that i could come up with that could be implemented.

edit: to be fair...the colors of the first videos were by far the best. still fine to look at ;)

multiarray