Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics


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

About customizable neuron network

A topic by pizduxax created Oct 06, 2017 Views: 1,433 Replies: 3
Viewing posts 1 to 4

Could please explain the neural network design and how should i customize it ? Also what is the nodes  in the game ?


Neural net: 3 layers

23 NODES (6+ 10+ 7)

ok nevermind found the menu in the settings... But the another question rises. So if I understand correctly, the more layers and nodes the creature "mind" has, the more "smarter" it gets through generations ?

Nooo idea, Ive poked around with it a bit, and there seems to be allot of totally stagnent combinations that dosn't really generate allot of variety.

    So far the best I have put together through trial and error is:

   4 layers

Then a 5 for the first set and 10, for the seccond. = 27 nodes.

   Seems to add enough variety for evolution to take place without being totally unstable.

Swap the 10 and the 5 and get total stagnation and not allot of movment,

Make it a 10 and a 10 (On paper should be smarter) And its also equally as stagnent.


What I think the neural net does (based on other neural nets) is for each node  it will check for variables: Speed, height, angle, and attachments (I think these are 4 out of the 6 variables it tests), and for the first set it'll calculate a number for a muscle to move, from -100%(contract) to 100%(expand), then it'll pass that number onto the next layer of the net to make its decision based on the variables and number it received, and so on and so forth. However here's where the evolution part comes in; Every mutation is in the neural net changing the "weight" of each connection. What that means is let's say for example node 1 in the first layer is outputting 75%, and node 2 in the first layer is outputting 30%; Now each of these is sent to every single node in the second layer, but the weight of the connection marks how valuable that information is because layer 2's nodes can only receive one input, so let's say that node 1 in layer one is connected to 2 nodes in layer 2; Now node 1 is still outputting 75% and has its connection to node 1 in layer 2 at a weight of 0.8 and its connection to node 2 in layer 2 at a weight of 0.4, while node 2 in layer one is still outputting 30% and its connection to node 1 in layer 2 is at a weight of 0.9, and its connection to node 2 in layer 2 at a weight of 0.1; Now node 1 in layer 1's connection to node 1 in layer 2 has more weight than node 2 in layer 1's connection to node 1 in layer 2, so node 1 in layer 1's signal is marked as more valuable and node 1 in layer 2 receives 75% as its input, while the reverse happens for node 2 in layer 2 as node 2 in layer 1's connection is marked as more important than node 1 in layer 1's, so node 2 in layer 2 receives 30% as it's input. Now that our nodes in layer 2 have received their input the exact same thing happens again, but this time from layer 2 to 3 and so on and so forth. The evolution aspect of this simulation is the testing of weights, marking certain inputs more valuable and seeing the outcome, if it's desireable it'll keep most of the traits while mutating a random few, which could be good or bad, with the best ones being reproduced as closely as possible.

Sorry if that was a little long, but for the TL;DR more complex means your creature will learn slower, but once it learns it'll be more adaptable, while the reverse is true for simpler creatures; This doesn't mean one will be better than the other. One thing to note is that having too many inputs can confuse the creature and make learning dreadfully slow, while having too few can result in a creature that can't find new ways to become better without impacting performance at first meaning they have somewhat of a "limit" to their potential.