Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Evolution

Create creatures and let them evolve to see how they master various tasks. · By Keiwan

Suggestions & Ideas Sticky

A topic by Keiwan created May 06, 2018 Views: 22,954 Replies: 248
Viewing posts 101 to 182 of 182 · Previous page · First page

It would be wanderful if you make a 3d version ov it

verry dificult

(4 edits) (+1)

I made this list of ideas 

  • it would be cool to have a "long jump" mode, where the creatures try to move the furthest to the right while not touching the ground.
  • A simplistic level creator allowing you to make obstacles and objects
  • the ability to make the muscles invisible
  • the possibility to change what the bones and muscles look like (for example you could make the bones look like literal bones or metal plates)
  • A mode where the creatures try to get over a hole on the ground
  • some way to share your own creations (and levels if you add the level creation idea)
  • allow you to undo with ctrl+z
  • a "creature vs creature" mode where you create 2 creatures and they fight to the death with actually breaking bones
  • Ability to change the incline of the stairs in climbing mode (because its too steep)
  • a gliding mode (along with parts that let the creature glide of course) (maybe by letting you change regural bones to bones that let you climb
(+1)

I'm not sure if this has already been brought up but there is a simple hack that can get a creature to each 100% in every category easily. Simply create two creatures I just used 2 upside down V shapes and didn't connect them with bones but rather with muscles only. What this did was that the simulator after a few generations would simply lob half of it's body to some part of the screen. This got it to get 100% in running, 100% jumping, and 100% in climbing. (I didn't try obstacle jumping). I realize it's a simulator and not a game, but I'm not sure if you have intentions of trying to dissuade this method or not. 

(1 edit)

I read the section on not limiting muscle length in your FAQ, but I thought of another approach to the problem: You could perhaps have muscles tear when stretched beyond X times their initial length, and remove such creatures from the gene pool?


Also, I want STATS!! GRAPHS!! CURVES!!! ;)

...or perhaps the force could apply logarithmically so that as numbers get bigger the muscles dont get longer at the same rate

OR you could cull the ones that have a point to the right of and below the screen

It would be cool if the "show one at a time" mode had the others still visible but at 1/population opacity

measurements on the floor / steps / obstacles could be good to have.. like numbering the obstacles, or a simple ruler on the floor for running, perhaps numbered steps?

maybe a "follow the leader" mode would be good

how about loading an image background for the editor?

it would be nice to have a mode in the editor that locks the bone lengths and allows the user to pose a model without changing its layout

a visible countdown or timer could be a good addition

(+1)

So, there's a couple concerns I have involving the evolution process, which might be significantly hindering creatures' ability to improve their fitness.

First, there doesn't seem to be any bias nodes in the neural network. Usually, one bias node is added to the input layer and to each hidden layer, and is simply set to always output 1. This is then multiplied by genetic coefficients (just like with any other node) to make nodes in the next layer have a constant offset; making certain nodes easier or harder to set very low or very high. It's a small, but extremely useful, addition to nearly any neural network. (I suspect this is the case because you list six inputs in the help screen: distance from ground, horizontal velocity, vertical velocity, rotational velocity, number of points touching ground, body rotation. Also, when looking at saved generations, it says there are six input layer nodes.)

Second, I'm concerned that the "sexual" (for lack of a better term) reproduction method is inefficient. You mention that new children are created by selecting two random parents (weighted by fitness), splitting their neural network data at a random location, and splicing opposite parents' pairs back together. This seems likely to sometimes kill off a highly-fit creature by breeding it with another creature whose strategy is completely incompatible, resulting in two children that both use two incomplete halves of two strategies that only work when whole.

I'd like an option to use an "asexual" method (again, for lack of a better term). It goes like this: You simulate a generation and give them fitness scores. Then you kill off half of them. The most fit creature is guaranteed to survive, and the least fit is guaranteed to die. All other creatures are then randomly selected for death, with the lower-fitness creatures getting higher chances of dying. The surviving creatures then generate two offspring each; both of them exact copies of the original, but one of them with a random amount of mutations. This method is guaranteed never to kill off the most fit creature unless another creature comes along that outperforms it. In otherwords, you never lose progress; every generation is at least as good as the one before it.

Developer

You can enable the "Keep best creatures" option already, which guarantees to carry the best two creatures to the next generation without any change to their genes whatsoever (no recombination or mutation). You might still see slight fitness drops and variations though, as explained here: http://keiwando.com/evolution/faq/fitness-drop/ 

(+1)

Would be nice to be able to select multiple pieces together and move them as a unit. Perhaps a rectangular drag-to-select type arrangement, such that assembled "parts" could be moved around in relation to other parts. Moving things around one joint at a time is pretty tedious and at certain levels of complexity it can be almost impossible to move something you've already made.

An 'undo' button that reverses the last change would be a big help as well. I've completely ruined a creature by deleting the wrong bundle of bones & muscle.

Developer(+1)

Both Undo & Redo and a selection tool will be part of the upcoming update :) I've already finished implementing Undo & Redo.

i think it would be useful to add like a vertical laser that follow the creature; to improve the speed and avoiding to go back

Developer

I'm not going to just copy Code Bullet's ideas ;)

yeah, you are right

(+1)

Hello!  Just got my copy, and I've actually been doing some coding with neural networks of my own.  

I noticed that there are only 6 inputs for a creature.  Seems like this would ultimately limit what a creature could ever "learn" resulting in (theoretically) a lot of "stalls"  (ie, creature moves until it gets to a certain position, then simply can't any more).  

What are the odds that we could have a mode where each "joint" is in fact an input, or even a series of inputs (ie: the joint's current Y position, and orientation, for example.)  Also, the "state" of each muscle could be an additional input.  

This would allow for VERY intelligent and complex actions to be learned over time.  For instance, creatures may even be able to learn how to stand back up once they fall down.  

If people are concerned about the additional overhead of the math, it could be a toggleable series of options, maybe?

Love the tool!  

(+1)

Oh, and another nice feature would be the ability to "hide" or "dim" bones/joints/muscles.  So when editing a complex creature, we can click on "onion skin" or something, and then click those things we want to make less visible, and they'd be dimmed out.  While dimmed, they wouldn't be collidable (ie: you wouldn't be able to attach muscles to them).  For more complex creatures, this could be super helpful!

Joints in general function like a ballbearing, they almost revolve 360 degree ! they must work like the kneee; stop at some point to be like in nature.

A big thing for me would be a mute button.  The music is very nice, but to mute it, I have to mute all things chrome/chromium.  That said, this is exactly the thing I have been hoping to see for a long time.  I really hope you expand on this idea even further.  I really enjoy it a lot.  I'd also love to see generations displayed in parallel in tiled windows, so I could watch a lot of them at the same without them being overlayed on top of each other.  But the priority for me would be an option to disable audio.  I suspect this will see a lot of run time!

Developer

There is no audio at all in this simulator, so I'm not quite sure what you mean.

huh, I just ran it again and no audio.  I don't know where the music was coming from then.  Well either way, its gone now.
Sorry about the confusion.

Downloadable content that other people made

(+1)

I'm waiting anxiously for GPU delegation. Seeing the screen lag when my computer is sitting at idle is a painful reminder of how much faster things could be running.

Speaking of faster, how about turning off real-time simulation and letting it go as fast as it can?

(-1)

maybe you could choose a landscape or climate and theyll adapt to the temperature and landscape as well or you could add predators for them to avoid 

(1 edit) (+2)

Make the ability to change the parameters of the joints, bones, muscles, etc. before installing them.
Make the ability to select multiple objects with shift key pressed, and if the allocated refers to the same type of objects give the ability to change parameters on all selected objects.

I think a good idea would be to add tabs, as in be able to create and evolve multiple creatures at a time, because some creatures slowly evolve and then you could work on another one. I do realise that this might make it really laggy if you have lots running at the same time but i think it is worth it if you just use batches and dont do to many at a time :)

Thanks, it would be really great if you could add this

To do that, select "simulate in batches" in the pause menu.

No, i mean be able to simulate completely different creatures at the same time 

It would be nice if we could select 1 creature to be a parent in a generation.

(1 edit) (+1)

add multi selection editing. so i can select multiple things edit them.

like weight and strength.

(-1)

Is there a log output file, cause if not i would like to know why my significantly powerful pc was completely frozen when I got home from a 9 hour shift. Not only that but it was only on stage 302.  Given the time frame it was supposed to be on stage 2163. I'd like to know the method of movement that gave my computer a brain aneurysm. So if there is a output file can you point me in a direction if not then it wouldn't be a bad idea to have one.

(-1)

A copy and paste button for mobile

(-1)

you should make it so you can speed up time

(-1)

y don't u put meter lines/checkpoints on both sides of the starting point instead? it'll make it fair for the creatures  traveling a different direction.

(1 edit) (-1)

the best creature in the current gen can be on the screen next to the best creature in the last gen. You should also make it so you can control how the simulation determines the best creatures each gen in the settings. Example: u could put fitness proportional so the best creature is determined by its fitness & other options.

(+1)

u should add the option to control how ur creatures reproduce (Sexually &/or Asexually)

why

Because genetics work differently when organisms reproduce differently..just a suggestion

(1 edit) (+1)

Some simple requests:

1. Timer. It makes it more fun to watch, almost like a race. In the last few seconds, the current generation might do better!

2. Current Fittest Highlight. Highlight the creature in the current generation that is currently the fittest (e.g. furthest along track). This makes it more fun and clearer to compare the current generation with the previous best, again a bit like a race.

3. Continue Simulation. Once we click "Back" the only way to get back into the simulation and carry on where you left off is to load it. Can we not please just click Evolve again, if the creature has not been changed?

4. Improvement Indicator. Clearly notify us if a newly evolved creature has outdone the existing best, and if so by how much, e.g. 1% improvement in fitness.

More complex requests:

5. Simulation Speed Dial. Please let us turn up the speed of simulation so we can quickly discover if creatures are evolving in the right direction, or need to be fundamentally changed.

6. Custom Optimisation Goals. Let us control/add the parameters to create new challenges. I would love to combine switches for: Maximise/Minimise Horizontal/Vertical Distance; Keep Selected Joint Above/Below/Front/Back.

7. Manual Centre of  Gravity. Let us manually position this point (i.e. the point where the flag marker is placed) by selecting a number of joints (the marker is placed at the mean position of selected joints). This means e.g. I can force the marker to be between my creature's two feet (if I want it to walk) and it won't always think it's being fitter by finishing its attempt with falling forward.

Much more complex requests:

8. Give Creatures Hints. Let us pause the simulation and select a muscle, causing it to toggle its contract/expand state. This change would be backpropagated to create a manual mutation ("the hand of god"!) and is like the player saying "try this" rather than waiting and hoping for a random mutution to cause it. This instantly creates a new generation with a new offspring containing the manual mutation.

9. Hardware Utilisation. When I dial up the parameters the simulation slows down a lot. I'm running a Core i9 9900K at 4.7GHz on 8 cores, with an RTX graphics card. While the simulation slows down, I can see that Evolution is not using more than 20-30% of my CPU/GPU. Can you make more use of multiple threads, and the tensor cores in RTX cards which are designed for ML?

Thanks -- what a fantastic game.

(+3)

a penalty joint. if it touches the ground, the creature is punished.
I want my creature to run upright

also useful for when the creatures want to DRAG ON THE GROUND..

(-1)

i want a rotation of joints

(+1)(-1)

I would really like if the brain could recognize if his shape is a circle that can roll. The current brain seems to keep wanting a "UP" and "DOWN" part of the body, and tries to "keep its balance", compared to a round shape that have to think relative to its position inside a rotation to keep rotating/accelerating.

Maybe adding some clickable option to enable it if it's the case.

(-1)

There is no 32bit version for windows?

(-1)

Some sort of wing thing

(+1)(-1)

An option to set a part of your body to deduce fitness if it touches the ground during the simulation.  Really wanted to experiment with bipeds where the legs are actually in line with each other but the AI seems to find it more efficient to just fall forward far before it ever gets a chance to actually learn how to balance.

(-1)

I have no idea whether you're still working on this or not, but I'll add this anyway. I'm not exactly sure how complicated this would be to do, considering I don't know how to code games and it could require revamping to code as a whole or something... but is there anyway to run the game with more cores than it's already running on? Because the game extremely laggy but it's only using 20% of my cpu and I want to run some large simulations!

(-1)

Seeing what appears to be an evolution inefficiency when reviewing best creatures of generations, especially for climbing when all creatures are at 0% fitness (initialization) and when all creatures are at 100% fitness (yet with more untapped potential in the body that creatures which do tap into it seem to go unrewarded for tapping into it), I'd like to suggest an alternative fitness measurement to address this; ((self)-(worst))/((best)-(worst))=x% [within generation].

That is, for either climbing or running; the creature within the generation that moves the most to the right (or falls the least to the left) will always be marked as 100%, and the creature that moves the least to the right (or falls the most to the left) will always be marked as 0%. For creatures between, their fitness is the % of the best that they reach after subtracting the worst from both itself and the best; so if the best climber falls -2m to the left and the worst climber falls -8m to the left, a creature that gets -5m will have a fitness of ((-5)-(-8))/((-2)-(-8))=3/6=1/2=50%. The best gets ((-2)-(-8))/((-2)-(-8))=100%, while the worst gets ((-8)-(-8))/((-2)-(-8))=0%; thus mechanically serving as the clamps for their generation.

I believe this would help optimize evolution efficiency most notably in climbing initiation, where with the current method if all creatures get 0% it doesn't (seem to, as far as I can tell,) matter if one fell -5m left and another fell -15m left. Having fitness effectively 'unclamped' while being mechanically bound between 0 and 1 by the nature of the formula itself anyway, I believe would also incentivize constant improvement at the task; currently, if fitness does reach 100% at any task then no further improvement seems to be expressly selected even if the body still has more potential that several creatures go effectively unrewarded for tapping into.

(+1)(-1)

Be able to rotate and/or flip your creatures. Because I built a creature that went backwards better than forwards and I wish I could just rotate it.

(+1)(-1)

As many already have asked for, a "head."

Evolution tends to favor those that don't die, but in the simulator there is no death or risk, causing many "species" to move using methods that should kill any.

This could also give the obstacle jump a boost in evolution, forcing creatures to learn to jump earlier/faster.


(-2)

smarter brain

(+1)(-1)

you should make it so you can speed up the simulation speed

(-1)

You can't exactly do this. It is like asking a baby to move faster.

It takes a long time but the baby (your creature) will learn.

You actually can, Unity MLAgents does it by default. Code Bullet's Creature Creator also has that option. Simulations aren't babies

(+1)

I know this is SUPER old, but I personally feel like it would be better if there was a checkbox option to have limbs have collision with other parts of the body, instead of it going through itself. I request this because it just makes sense, it would bring more stability in the creatures.

(+1)

Hi Keiwan, just getting back into the game after a little break. It would be nice to see the current speed of the creature being viewed. I have a creature that starts slow and then goes really fast, so I would like to know the max speed that the creature reaches. In fact, maybe there could be a max speed achieved and current speed added into the game? Thanks

Very interesting game. Thanks.

You could consider having a contest : e.g. fastest creature running for 20s.  What do you think?

(1 edit)

i know this hasn't been updated in forever but maybe an option to make certain bones kill the creature when it touches the ground, to get rid of creatures crawling on their face

(+1)

Played this game since 13, an amazing project to have fun and explore biology and AI. It would be cool to add some kind of dimensionality, but all-in-all the game is super fun.

(+1)

I think that the joints slip too much on the ground. Maybe the game would benefit from an increase of adhesion?

(+1)

Another suggestion: 

When stopping a simulation at the nth generation, it would be cool to be able to move some joints while keeping the neurones weights and so resume the simulation from this nth generation. In other words, neurones weights are erased in case joints, bones or muscles are deleted or added, but not in case of just moving the joints around. 

I would like to grow my creature using different "learning rates", and by that I mean mutation rate. For that it would be very useful to have a dashboard, similar to tensorflow dashboard. I'm sure you know exactly what I'm referring to. 

Keeping track of the settings and fitness would be very helpful in growing a successful creature.

Support for adaptive learning rate mutation rate based on the fitness would be too much to ask, but would be amazing.


Thank you!

maybe add a grid option to the build screen

A Debug menu would be cool

Like, let's say we have a random evolution. What if you could add no gravity or a part maker

But, a customizable task editor is just dope. Ex: you could make a ramp.

(5 edits) (+1)

Two modes in which the creatures move in fluid, one with gravity and one without.

The ability to see a creature's neural net during a simulation.

Modifiable part friction and adhesion.

(+1)

Great "game" !

Some features that would interest me :

- non mobile joints (to make fixed angles with bones)

- to be able to edit (add or delete or move joints, bones, or muscles) after several steps (generations). This could be useful to first learn "basic" behavior (like walking) to a quite simple but secured pile of bones, joints and muscles (secured in the sense they cannot fall easily), and then remove or add components so they are more efficient.

- to record data in a csv file, data like the best scores over time, or all scores over time ...

- and would it be possible to have a look to the configuration of the "neural net" of best creatures (as a list of parameters for example)

Have an option where the creature could mutate extra limbs or muscles

PLEASE ADD THE OPTION TO ROTATE :DD

(-1)

Put it on tablets and phone ok

(+1)

Possibly letting the simulation run in the background on mobile.

(+2)

Simple dark mode that just toggles a final `1-x` line in an existing shader for minimal impact.

Network input for if any joint within a group is touching the ground, rather than simply how many are. I imagine it's useful to know which foot is touching the ground rather than only how many are. For backwards compatibility all unspecified joints are in the same group.

Activation functions for the networks. I tried to find if there's already some form of nonlinearity in the network but I can't parse Unity code and didn't see any in the brain code. Simple choices include ReLU for just clamping the minimum value to zero; Leaky ReLU which is just ReLU but lerp the original value in a little; Sine; GeLU as approximated with `0.5 * x * (1 + tanh(sqrt(2 / pi) * (x + 0.044715 * x^3)))` which allows for some negative values but fades to zero as it becomes more negative. The final outputs shouldn't have these on them.

Biases to go along with weights in the network s. Simple values to add to the output of each fully connected layer (before activation function if added).

There are more complicated things that might be interesting, like gated units where the output of one layer is put through an activation function and then multiplied with the output of another layer in order to block off an output in certain situations, but at a certain point a line has to be drawn for simplicity. 

A option to not choose creatures who topple over to not be selected as the best since at least 100% of all my creatures end up using falling over as a strategy by wave 2 because one fell forwards before one was walking normally, so I have to restart the batch in hopes they dont fall over.

Select a joint and increase the fitness penalty. This reduces the fitness rating when that joint touches the ground.

(1 edit)

This "game" is awesome, Two requests here please:

01- the possibility to use multiples cpu and cpu threads.

When simulation  in BATCHES is active you can run more simulations BATCHES per cpu core or using cpu mult threads to improve speed of simulation. my cpu has 16  threads and the current version is using only one.

the next one I don't know if is possible:

02- global online simulation, maybe this one is a little to much and it needs be a paid service 

we can use a online server  or another way to allow multiples computers or cell phones to improve and simulate the same creature, for example, I create a monster, upload this monster online or active a button "global online simulation"  and any one can make a online simulation and continue the same evolution, not start another simulation but improve the same creature and the best fitness version will be selected, imagine 10000 simulations at once running in the world, could be a very nice addition, very complex I know...

BYE I love this "game"!!!

add a button to "praise or scold" the ai's learning, so you can aid it into doing what you want

yes, that would help a LOT

Sometimes. my creature goes walking off at full speed and i think yes perfect i did it, but it's in the wrong direction so it doesnt count. Maybe it could evolve to flip? Or the workshop has a flip button?

There should be a swimming mode, in which your creatures swim, like how there's a flying and running mode.

(1 edit) (+1)

Surely duplicates, but I'll list just in case anything's not covered:

  • Button to turn off rendering and simulate at max speed?
  • Optionally mutate joints (positions & weights), bones (weight), muscles (strength & extendability).  I get this isn't trivial, but would be cool.  Maybe have the mutations stored along with the neural net, so the the actual creature's physical structure = designed structure + evolved deltas.  (Sorry if I'm making bad guesses about how your code works :))
  • Would be nice if you could zoom out more or make grid smaller.
  • Selection masking by type (select multiple muscles or multiple bones) + if multiple things of same type are selected, allow editing a property of all selected objects.
  • Copy/paste selected objects.  E.g. one could design a 4-bone leg and then replicate it.

Really, the first two would be enough to make a huge improvement, I think.

toggeable

for max speed you can use speed hack from cheat engine, it works really well

(-1)

Que la version de windows sea gratis

(1 edit) (+1)

I would like to see a swimming game mode and also colliding bones, I had ideas where you can make a catapult launch a creature which can then walk and another idea where you have a creature in a train like shape and the creature can push the train

make it toggeable

I'd love to be able to share creatures:

- copy/paste a creature's structure, to be able to share it here, in this forum (as a long encoded string ?)

- export creature as a file (with "program", ie leaning result) ?

(+2)

What about brain editor? i would love to be able to (try to) make a creature move how i want it to. Also add inverted groups(if group 1 contracts group inverted 1 extends).

(+1)

Try out "Crescent Loom" it's basically what you want :)

looks cool, problem is i cant afford it

WAIT I CAN PLAY IT ONLINE

(-1)

download for chrome please

A discord server would be great even to upload creature for others to download

(1 edit)

It's of course unofficial, but upon seeing this; I went ahead and just made one: https://discord.gg/zG4zXCmFa9

make the camera pan vertically and horizontally instead of just horizontally

I don't know if you are still performing updates or if you will see this, but one idea I have would be to be able to change the neural network of an evolution.

With this, it would be possible to teach the basics of body movement with a simple neural structure and further on leaving the neural network more complex and taking advantage of the previous knowledge used

One more idea, when saving the evolution of a body, the name of the evolution is the name of the body, date and generation. which I would like it to be possible to change how the saved name will be, an example would be the name of the body, generation and structure of the neural network

(3 edits)

When performing an evolution with many entities, the time per generation is wrong because of the slowdown due to the amount of entities. And to solve this problem it is necessary to optimize or separate the tasks to be carried out, which can be done with the cpu cores. Instead of a single core having to perform the calculations for 100 entities, let the task be divided equally among the other available cores. My computer contains 14 cores, each core could be performing the calculations of approximately 7 entities instead of 100. When performing the evolution with the quoted amount, the game only uses:

CPU -  10%-15%  -- 65% available

GPU -  4%-8%  -- 86% available

MEM -  2%-3%  -- 93% available

it is visible when you have around 100 entities and quote 5 seconds per generation, which in the end takes 12 seconds to switch to the next generation.

I would recommend relying on the computer's internal time for the time to work properly.

if (startTime - currentTime >= GenerationTime)
    nextGeneration()
(1 edit)

You may be using the video card to help with tasks other than rendering the game, as the video card usage reaches 15%.

I hope to have a choice of Chinese language

I would like a gliding gamemode. what i am talking about is run off a cliff and glide. and for this probably add skin so you can attach it to 2 points and making it look like bat wings.

I would enjoy an option to change the friction of the running surface, and it would be cool if I could choose some bones to be solid (so other bones cannot pass through them) so we can create joints with a limited range of motion. Not sure how hard that is to do tho.

Would be nice with an uninstaller or something because your evolutions, if ran a fair bit, will take a considerable amount of disk space and those evolutions are saved in the appdata folder, but the user has no idea of this.

Zero-gravity mode without floor

Viewing posts 101 to 182 of 182 · Previous page · First page