A downloadable prototype for Windows, macOS, and Linux

By Petter Bergmar

For the Procedural Generation Jam 2016 I wanted to make something simple with elements of evolution and natural selection. It's not coded as a conventional genetic algorithm, but in a simple and "game-like" fashion that lets you "see" evolution in real time. I will describe what I mean briefly below. Made with Unity using C#.

Each cube acts based on a bunch of parameters. They need to eat randomly spawning plants or they will die, and they eventually die of old age. Once they reach their minReproductionAge, and bump into any other cube they mate and instantly produce three children. Children inherit a 50/50 blend of parents' properties. Each child will mutate some of their properties - this means changing the value slightly at random. This mutation is just as likely to be positive as negative. The only "sense" of the cubes is that they can "see" at a ray cast straight forward to a certain distance. What they do with the input depends on their properties.

Here are the main properties of a cube explained:

  • Size - Big cubes it food & others easier, small have higher acceleration
  • Move forward - Chance to move forward when nothing is seen
  • Change dir - Chance to change direction when nothing is seen
  • Keep turning - Chance to turn in previous direction when nothing is seen
  • Eat drive - Chance to charge forward if a plant is seen
  • Sex drive - Chance to charge forward if another creature is seen (and age > minReproductionAge)
  • Jump chance - Chance of jumping
  • Jump force - Force of jump

The cool thing is that it does work. Initially a bunch of creatures are spawned and mutated a bit right away. I deliberately made their starting stats sub-optimal. As generations live and die and reproduce, the creatures with less optimal properties will die before they have a chance to reproduce. Cubes with higher sex drive will reproduce more etc.

After running it for a long time the average properties change like this: Size gets smaller, move forward increases, change dir decreases, keep turning increases to always keep turning, eat drive goes up, sex drive goes up more, jump chance goes up after a really long time when enough random cubes happen to jump into the neighboring "pools".

Instructions:

NOTE: THIS IS NOT A GAME! The interaction is limited to restarting a new population and walking around observing. WASD or arrow keys to move, mouse to look. Backspace to restart.


Other games by Petter Bergmar:

Install instructions

To start the game on a Mac, right click and choose "open", then "open anyway".

Download

Download
EvolveMe_Windows.zip (11 MB)
Download
EcolveMe_Mac.zip (13 MB)
Download
EvolveMe_Linux.zip (13 MB)

Comments

Log in with your itch.io account to leave a comment.

(Edited 1 time)

idk how to play and there is no tutorial dis game sucks

(-1)

HELLO MY FD YOUR GAME SEEMS CUTE HOW EVER WHEN I DOWNLOAD IT I CAN NOT RUN IT(MAC VERSION) IS THAT THERE ARE SOME VERSION PROBLEM?

hey bro your game is awsome am playing care some pets and added i can build and i can throw them a food not growing plants but the plants are fine to me am ok for that love this game am care some muntant pets awsome dude!

This is really cool -- is there any way to set your own starting conditions? Speed up the evolution time? Record population as a function of some variable over time?

That'd be really useful and really cool for people studying computational evolutionary biology. :-D

Thanks! Yeah I might make a new version some day, these things can easily be added. Not sure when I will find the time though.

I totally understand. There's no init file, then? Maybe put the source up?

Interesting simulation. I understand that this is not 100% a game, but I would like to alow the player to have an impact on the creatures. The comment below contains some great ideas. Also I want to see more advanced creatures with arms, legs, and other stuff. Maybe a bigger world would be cool. Also add a way so the creatures can evolve into civilisations! I would LOVE to see that. Keep updating this project please. So far you are doing a great job :D

(Edited 1 time)

I wish I could select and move creatures
It needs more tools, like moving, adding food to the world, copy paste creatures, change enclosures size, etc
And slow down, speed up, pause time

But great start otherwise! I noticed they were quite smart even at the begenning, pre-trained?

how do you play?

You don't right now. You just watch.

(+1)

Nice little simulation! Fascinating to watch.

With the current map it did seem to be quite unlikely for a population to survive for a longer amount of time. I figured if they reach one of the smaller side pools the may reach some sort of balance, but it was very unlikely with the current settings that enough blobs jumped into a small pool at once.

Would have been cool to have some settings to play around with or maps to choose from and see how it affects the population. Also the generated color palettes were pretty nice imo :)

(+1)

yeah this was a little rushed and I haven't had the time to come back to it. Might make a new version some day. Thanks for trying it!

You should add different kinds of plants.

(-1)

how do you play multiplayer

Why does creatures just always die and they cant produce more children than dying creatures.

it's kinda buggy on computers that are not very fast. sorry

game is lagging and creatures won't survive for longer than 40 seconds. please fix that. the concept is great, i like it but the "game" has problems.

yeah it's just a prototype and requires a quite powerful computer because of zero optimization. I will not likely keep working on this but might use what I learned in other projects in the future. Thanks for trying it out anyway!

(+3)

Interesting concept. Please take it furhter.

(-5)

hate it

Haha ok!

(+2)

I want to try more stuff like this myself in future. :)

(+2)

Looks cool!