Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles

Evolution

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

Bugs Sticky

A topic by Keiwan created May 06, 2018 Views: 1,283 Replies: 28
Viewing posts 1 to 12
Developer

If you find any bugs, please let me know over here and I'll try to fix them in future updates. The more information you can give me about when exactly the bug happens, the better.

Thanks!

My creature falls off the edge of the map. Red circle and arrow just in case.

 

probably the thing ran so far it reached the end of the platform. It's not infinite

(1 edit)

The Programm stops and gives an Error, if you do more than 256 generations.

Edit:

There isn't a problem with the generations, it just stops after some time and says "Class not defined"

When I try to launch it, it crashes straight away.

Same I cant even play it.

me too anyway to get around this problem

Mine crashes right as the first generation ends.

(+1)

I know this has probably been posted a lot already, but the "best of gen" sometimes doesn't actually show the best of gen. 

(+1)(-1)

exactly! Sometimes when I made tall creatures, all the next gen is falling creatures, becouse the software choose who goes far, and the simple fact to falling is a "best of gen", the software should choose stand up creatures in the first generations than who goes far.

Not uh.. exactly what I meant. The game choosing falling creatures isn't a bug, more like a flaw in the evolution, which is why the creator should add "kill joints", which aren't against machine learning since all what machine learning is is to find a solution for a problem, kill joints would just further improve the efficiency of the problem solving. Anyways, what I meant by my bug report is that in the normal gen screen, you can clearly see creatures moving pretty fast in the running mode, but sometimes, the "best of gen" won't show the actual "best" creature in each gen. This is made obvious when you can see the creatures in the normal screen clearly running, yet the "best of gen" will just show a creature sitting down, without doing anything. It also isn't just bad luck, since the best of gen shows statistics for each best creature, and when it says that it's "0.7m/s" when it obviously isn't true, then that's a big problem.

Developer

I explained what the latest state of that bug is over here: https://itch.io/t/150983/somthing-seems-off-in-the-pick-best-creature-algorithm-...

Effectively, the bug isn't that the best creature isn't being selected correctly, but that the best creature sometimes decides to just not repeat what it did really well in the previous generation, even though it has the exact same brain as before. Makes the whole thing much much more complicated to try to fix.

(1 edit)

Hey Keiwan did you see this another "game" ? this is working very well but the user interface is horrible, maybe it could help you with the bugs and the neural network...

https://miorsoft.github.io/Site/index.html

I just installed the Linux version on Ubuntu 18.04 after mucking around with it a bit in the web version a bit. It's a fun and cool 'game'. Unfortunately I ran into a annoying bug. I try changing the brain size to '4' layers instead of 3. But anything I type gets dupplicated. So if I enter '4' it actually becomes '44' (which is way too many layers :-).

I even tried to work around it using copy-paste, first typing '4' in a text editor and copy-pasting from there. But even that ends up entering '44'. 

So annoying! So I hope you'll fix it. 

Cheers.

PS: I guess it's this problem: https://issuetracker.unity3d.com/issues/linux-keystrokes-recorded-twice so maybe its really not something that you can fix.

Developer

Yes, I'm aware of that. It's a Unity bug, which I also pointed out over in this thread. They say that they fixed it in the latest update but that doesn't really mean anything and I haven't had time to check yet.

Potential cause to "best of gen" problem is that You probably store reference to "best entity" (or shallow copy, instead of deep one) and then modify it by mistake. Second problem i encountered is that used evolution algorithm sometimes regresses in fitness, possibly because its "too static" (meaning there are problems with discovering other potential solutions and/or its stuck in local minima).

Developer

I only store the brain of the best creature in its chromosome representation, i.e as a string, which is an immutable object in C#, so there is no way for me to accidentally modify it without replacing the whole thing. On top of that, I have also already tested and confirmed that the creature in the "best of"-screen always has the exact same brain it had during the simulation. 

In theory, the fitness should never decrease if the "keep the best creature" setting is turned on, but yes, I have also seen this happen. I currently attribute both of these problems to the fact that Unity's physics system (which the whole simulation is based on) depends quite a lot on random external variables - such as frame rate drops - and given its approximative nature isn't as deterministic as it should be. 

I'm trying to optimize the performance as much as I possibly can for the next update in order to get rid of any potential performance spikes that might interfere with the physics system. I unfortunately can't change the physics system itself so there is a certain performance limit that I can possibly optimize to. If you create tons of creatures with a bunch of body parts each, the physics system is by far the main reason for the extreme lag that you will see, and there's pretty much nothing I can do about that, which sucks. I can't even hardware-accelerate it, even though the fact that none of the creatures collide with each other is a perfect basis to parallelize those physics calculations on the GPU.

(+1)

Thanks for the long answer. Game is very good despite those few problems. I'm enjoying it a lot and  looking forward to try next update.

(1 edit)

I have been doing some testing with the climbing simulation.  Is there a way to make it so it will try move both horizontally and vertically evenly? Seems like as it progresses it will favor extending out vertically way more than horizontal if it is capable and eventually learn to fully stretch out and topple over instead of trying to climb.

Edit to better explain:

Seems the way it works right now if it moves higher or to the right it rewards itself but it would make more sense to only reward if it moves both higher and to the right because the end goal is for it to go diagonally up the stairs.

(1 edit)

Edit: Thank you so much for this fun simulator!

I tried to make a rolling creature made of two wheels joined together by an axle at the center; and muscles between the opposite spokes.

I think you have a raw input for rotation, since my creature wobbles back and forth: My guess is the angle jumps from 359 to 0, which is bad for my use case.

What I would love, that would allow a continuous rotation, would be to split the rotation into sin(angle) and cos(angle) as 2 inputs. This allows nearby angles to get transformed into nearby (sin,cos) points in 2d space, and would allow for continuous rolling of creatures!

I've got a bug where the application crashes as soon as my creature hits generation 301. I glanced at the crash log, and this looks a bit strange, but I have no idea what it means:

16% memory in use.
0 MB physical memory [0 MB free].
0 MB paging file [0 MB free].
0 MB user address space [3579 MB free].

Also, here's another bit that looks like it might be informative:

Evolution [version: Unity 2017.4.0f1 (b5bd171ee9ba)]
UnityPlayer.dll caused a Privileged Instruction (0xc0000096)
  in module UnityPlayer.dll at 0023:63e64c61

I tried updating my Unity installation as well as updating my graphics driver, but the issue seems the same now as it was before. Would you like me to send the full log anywhere?

Update:  It looks like previous crashes might be a slightly different, although it still looks like a memory issue:

Evolution [version: Unity 2017.4.0f1 (b5bd171ee9ba)]
UnityPlayer.dll caused an Access Violation (0xc0000005)
  in module UnityPlayer.dll at 0023:5f721f4d. Error occurred at 2018-08-03_041922.
C:\Users\[installation location redacted]
37% memory in use.
0 MB physical memory [0 MB free].
0 MB paging file [0 MB free].
0 MB user address space [3136 MB free].
Read from location 0d74e0a0 caused an access violation.
Developer

If you like, you can send me the full Unity player log to keiwan@gmx.de and I'll try to look into the problem for the next update.

A bug I found in the Windows version:

If you want to run several instances of the simulation at the same time and then save them, all instances  save under the name of the last instance called. Unfortunately, because of this bug you cannot run and save multiple instances at the same time.

Developer

Manual or auto saves? Also, are you simulating the exact same creature design with the same name (or unnamed) in all instances?

Both for manual and automatic saving. There are different creatures with different settings saved before. If I let the different creatures simulate at the same time they are all saved under the name of the last started simulation.

In the" best of gen..."it shows me the previous creature that i simulated.   

That is because the generation you are on hasn't been completed yet so it can't show you the best because it hasn't scored it yet.