Author Topic: Mutation: from evolve-2(x) series  (Read 4468 times)

Offline peterb

  • Bot Destroyer
  • ***
  • Posts: 148
    • View Profile
Mutation: from evolve-2(x) series
« on: April 09, 2010, 07:24:06 PM »
I was a bit amazed by this bot, the main movement gene was mutated to move sideways ???.
We almost never design bots to move like crabs, but apparently its not so bad.
the eyes acted more like ehmm a fishnet, the robot didn't move to fast, but still was pretty reproductive.
Only when it sees something it moves forward to eat to eat it, otherwise it walks sidewards.
I never would think it would work, but it was pretty good actually.
It had lots of offspring, and .... it seamed to catch better !!,  but why ??

Hmm maybe the side walk of a crabs in nature, does have a benefit ??

What i can think of is that the catching, although more difficult,
has less chance of chasing long, resulting, in giving up, 'out of reach targets' earlier,
and getting the ones nearby more easily...???
well its a gues.



Code: [Select]
''''''''''''''''''''''''  Gene:  1 Begins at position  1  '''''''''''''''''''''''
 cond
 *.robage 30 >
 *.eye5 0 >
 *68 0 =
 start
 *67 sgn 1 add sgn 60 store
 -32 *.eye5 div .shootval store
 -1 .shoot store
 *.refxpos *.refypos angle .setaim store
 -1 *60 mult .shoot store
 0 .fixpos store
 *.refvelup 20 add *60 mult .up store
 *.refveldx 7 div *60 mult .dx store
 *67 1 add 67 store
 *.pain *.pleas sub sgn 1 add sgn 1 sub abs 3 mult *64 add 64 store
 *.pain sgn 1 sub abs 66 store
 *0 sgn 1 sub abs *66 add sgn *64 add 64 store
 *64 150 mod sgn 1 sub -628 mult .aimright store
 *64 150 mod sgn 1 sub -1 mult .fixpos store
 *.slime 50 sub sgn 1 sub sgn -7 mult 60 store
 *.refmulti *60 mult .mkslime store
 *.eye5 40 sub sgn 1 sub sgn -1 mult *.refvelup 61 store
 *.up 60 store
 60 *0 add * .up store
 stop
''''''''''''''''''''''''  Gene:  1 Ends at position  151  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  152  '''''''''''''''''''''''
 cond
 *.eye5 0 =
 *.robage 30 >
 *68 0 =
 start
 *.eye9 *.eye1 sub sgn 54 store
 *54 130 mult .aimright store
 *54 abs -1 add abs 5 mult .up store
 *54 abs -1 add *.mass mult .dn store
 *.robage -2 div .dx store
 10 .up store
 *.eye6 *.eye4 sub sgn 63 store
 *63 35 mult .aimright store
 *.eye6 *.eye4 add sgn abs .fixpos store
 *.pain 1 sub abs .pain store
 *54 abs 65 store
 *63 add *65 abs sgn 65 store
 *65 *64 mult 64 store
 *67 1 add 67 store
 stop
''''''''''''''''''''''''  Gene:  2 Ends at position  244  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  245  '''''''''''''''''''''''
 cond
 *.nrg 16000 mod 0 =
 *.mass 2 >
 start
 -4 .shoot store
 *.waste .shootval store
 20 .strbody store
 20 .mkshell store
 -40 67 store
 30 68 store
 stop
''''''''''''''''''''''''  Gene:  3 Ends at position  273  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  4 Begins at position  274  '''''''''''''''''''''''
 cond
 *.robage 30 <
 start
 *.tiepres .deltie store
 500 .dx store
 *.robage 5 sub sgn 1 add sgn 500 mult .dn store
 *.robage 20 sub 0 floor 9 mult .aimright store
 stop
''''''''''''''''''''''''  Gene:  4 Ends at position  305  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  5 Begins at position  306  '''''''''''''''''''''''
 cond
 *68 0 >
 start
 41 .aimright store
 4 .repro store
 *68 1 sub 68 store
 stop
''''''''''''''''''''''''  Gene:  5 Ends at position  322  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  6 Begins at position  323  '''''''''''''''''''''''
 cond
 *.body *.refbody <
 *69 20 <
 *.robage 5 mod 0 =
 start
 300 .shoot store
 50 .shootval store
 *69 1 add 69 store
 stop
''''''''''''''''''''''''  Gene:  6 Ends at position  347  '''''''''''''''''''''''
« Last Edit: August 28, 2010, 07:47:31 AM by Shasta »

Offline ashton15

  • Bot Builder
  • **
  • Posts: 99
    • View Profile
Mutation: from evolve-2(x) series
« Reply #1 on: April 10, 2010, 11:56:16 AM »
Quote from: peterb
I was a bit amazed by this bot, the main movement gene was mutated to move sideways ???.
We almost never design bots to move like crabs, but apparently its not so bad.
the eyes acted more like ehmm a fishnet, the robot didn't move to fast, but still was pretty reproductive.
Only when it sees something it moves forward to eat to eat it, otherwise it walks sidewards.
I never would think it would work, but it was pretty good actually.
It had lots of offspring, and .... it seamed to catch better !!,  but why ??

Hmm maybe the side walk of a crabs in nature, does have a benefit ??

What i can think of is that the catching, although more difficult,
has less chance of chasing long, resulting, in giving up, 'out of reach targets' earlier,
and getting the ones nearby more easily...???
well its a gues.




[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']''''''''''''''''''''''''  Gene:  1 Begins at position  1  '''''''''''''''''''''''
 cond
 *.robage 30 >
 *.eye5 0 >
 *68 0 =
 start
 *67 sgn 1 add sgn 60 store
 -32 *.eye5 div .shootval store
 -1 .shoot store
 *.refxpos *.refypos angle .setaim store
 -1 *60 mult .shoot store
 0 .fixpos store
 *.refvelup 20 add *60 mult .up store
 *.refveldx 7 div *60 mult .dx store
 *67 1 add 67 store
 *.pain *.pleas sub sgn 1 add sgn 1 sub abs 3 mult *64 add 64 store
 *.pain sgn 1 sub abs 66 store
 *0 sgn 1 sub abs *66 add sgn *64 add 64 store
 *64 150 mod sgn 1 sub -628 mult .aimright store
 *64 150 mod sgn 1 sub -1 mult .fixpos store
 *.slime 50 sub sgn 1 sub sgn -7 mult 60 store
 *.refmulti *60 mult .mkslime store
 *.eye5 40 sub sgn 1 sub sgn -1 mult *.refvelup 61 store
 *.up 60 store
 60 *0 add * .up store
 stop
''''''''''''''''''''''''  Gene:  1 Ends at position  151  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  2 Begins at position  152  '''''''''''''''''''''''
 cond
 *.eye5 0 =
 *.robage 30 >
 *68 0 =
 start
 *.eye9 *.eye1 sub sgn 54 store
 *54 130 mult .aimright store
 *54 abs -1 add abs 5 mult .up store
 *54 abs -1 add *.mass mult .dn store
 *.robage -2 div .dx store
 10 .up store
 *.eye6 *.eye4 sub sgn 63 store
 *63 35 mult .aimright store
 *.eye6 *.eye4 add sgn abs .fixpos store
 *.pain 1 sub abs .pain store
 *54 abs 65 store
 *63 add *65 abs sgn 65 store
 *65 *64 mult 64 store
 *67 1 add 67 store
 stop
''''''''''''''''''''''''  Gene:  2 Ends at position  244  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  3 Begins at position  245  '''''''''''''''''''''''
 cond
 *.nrg 16000 mod 0 =
 *.mass 2 >
 start
 -4 .shoot store
 *.waste .shootval store
 20 .strbody store
 20 .mkshell store
 -40 67 store
 30 68 store
 stop
''''''''''''''''''''''''  Gene:  3 Ends at position  273  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  4 Begins at position  274  '''''''''''''''''''''''
 cond
 *.robage 30 <
 start
 *.tiepres .deltie store
 500 .dx store
 *.robage 5 sub sgn 1 add sgn 500 mult .dn store
 *.robage 20 sub 0 floor 9 mult .aimright store
 stop
''''''''''''''''''''''''  Gene:  4 Ends at position  305  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  5 Begins at position  306  '''''''''''''''''''''''
 cond
 *68 0 >
 start
 41 .aimright store
 4 .repro store
 *68 1 sub 68 store
 stop
''''''''''''''''''''''''  Gene:  5 Ends at position  322  '''''''''''''''''''''''

''''''''''''''''''''''''  Gene:  6 Begins at position  323  '''''''''''''''''''''''
 cond
 *.body *.refbody <
 *69 20 <
 *.robage 5 mod 0 =
 start
 300 .shoot store
 50 .shootval store
 *69 1 add 69 store
 stop
''''''''''''''''''''''''  Gene:  6 Ends at position  347  '''''''''''''''''''''''

I found something similar to this and so decided it was because as they moved there eyes saw more of the enviroment and therefore it could spot veggies easier, I thus changed the eye setup so that the eyes pointed to the sides like so:

342  dup *.eye1dir   sub sgn abs .eye1dir   mult store
 223  dup *.eye2dir   sub sgn abs .eye2dir   mult store
 176  dup *.eye3dir   sub sgn abs .eye3dir   mult store
 78   dup *.eye4dir   sub sgn abs .eye4dir   mult store
 -78  dup *.eye6dir   sub sgn abs .eye6dir   mult store
 -176 dup *.eye7dir   sub sgn abs .eye7dir   mult store
 -223 dup *.eye8dir   sub sgn abs .eye8dir   mult store
 -342 dup *.eye9dir   sub sgn abs .eye9dir   mult store
 260  dup *.eye1width sub sgn abs .eye1width mult store
 -20  dup *.eye2width sub sgn abs .eye2width mult store
 115  dup *.eye3width sub sgn abs .eye3width mult store
 85   dup *.eye4width sub sgn abs .eye4width mult store
 70   dup *.eye5width sub sgn abs .eye5width mult store
 85   dup *.eye6width sub sgn abs .eye6width mult store
 115  dup *.eye7width sub sgn abs .eye7width mult store
 -20  dup *.eye8width sub sgn abs .eye8width mult store
 260  dup *.eye9width sub sgn abs .eye9width mult store


I'm more of a progammer than an evolver like you so this worked fine for me but it probably would be hurt my mutations easily... anyways it worked even better than moving to the side because it coverd way more space as it moved than either of the methods.

Offline peterb

  • Bot Destroyer
  • ***
  • Posts: 148
    • View Profile
Mutation: from evolve-2(x) series
« Reply #2 on: April 10, 2010, 08:37:53 PM »
yes i can imagine changing eye directions and width does improve what you see.
It still is a bit strange to me as to why side moving can be so good.
its contra of what i think, i mean you design eyes so it folows a path, and now it turns out the path isnt that important.

Maybe the eye system is nothing more then a scoope  or fishnet system.
Not realy moving but a bigger mouth, as basicly in DB we dont get realy a lot of info from eyes
Mainly there is something there and we shoot eat it..
Sometimes we add extra rules to not eat it when it is one of our kind but thats about it.

Offline Houshalter

  • Bot Destroyer
  • ***
  • Posts: 312
    • View Profile
Mutation: from evolve-2(x) series
« Reply #3 on: April 10, 2010, 11:17:58 PM »
I didn't study the code, but it could be a makeshift way of conspec. When you reproduce in front of yourself and your moving sideways your offspring isn't going to eat you when you bump into them and you can avoid eating each other untill the birth tie breaks. Maybe not, I just know that darwinbots come up with strange solutions to problems.

Offline ashton15

  • Bot Builder
  • **
  • Posts: 99
    • View Profile
Mutation: from evolve-2(x) series
« Reply #4 on: April 11, 2010, 11:37:04 AM »
Look at fish, there eyes are to the side so they can see more things such as predators or maybhe food but less likely where it doesn't disepear after a few seconds like in darwin bots... I think part of it is because dawrinbots are tremoundsly short-sighted when you think about it, they can only see the width of about 20 cells whilst we see accuratly for about quarter of a kilometer, thus darwinbots have to make the most of the little we can see, the only reason our eyes point forwards is it means we can focus eyes on a single object and I guess at some point in our brain we do some trigonometry or some other thing to work out how far away anything is, bots bieng as short-sighted as they are it's also not as important to judge distances, maybhe if you allow bots to develop longer-ranged sight (maybhe longer range costs more energy like shootval) and delete the ability to know where exactly something is (x & y co-ords) so that a bot can only judge distance on apparent size and calculations then encourage complex MBs I don't think it would be long until you get some complex solutions to sight...
« Last Edit: April 11, 2010, 11:39:13 AM by ashton15 »

Offline peterb

  • Bot Destroyer
  • ***
  • Posts: 148
    • View Profile
Mutation: from evolve-2(x) series
« Reply #5 on: April 12, 2010, 08:40:41 AM »
Quote from: ashton15
Look at fish, there eyes are to the side so they can see more things such as predators or maybhe food but less likely where it doesn't disepear after a few seconds like in darwin bots... I think part of it is because dawrinbots are tremoundsly short-sighted when you think about it, they can only see the width of about 20 cells whilst we see accuratly for about quarter of a kilometer, thus darwinbots have to make the most of the little we can see, the only reason our eyes point forwards is it means we can focus eyes on a single object and I guess at some point in our brain we do some trigonometry or some other thing to work out how far away anything is, bots bieng as short-sighted as they are it's also not as important to judge distances, maybhe if you allow bots to develop longer-ranged sight (maybhe longer range costs more energy like shootval) and delete the ability to know where exactly something is (x & y co-ords) so that a bot can only judge distance on apparent size and calculations then encourage complex MBs I don't think it would be long until you get some complex solutions to sight...

Maybe your onto something, your right their eye sight is short, most bots run forward, without looking around.
Better might me adjusted vision (maybe just as narrow as an eye5) but over a longer range using eyewidth.
Then create some kind of a multibot, with a few of such good eyes, maybe 2 or or more, maybe 2 forward and a few rotating eyes.
Hmm this indeed could become a complex bots, i wonder who will be first to create such bots.

I'm trying to get a grip on neural networks, so combined withe such a bot it would be real cool

Offline Moonfisher

  • Bot Overlord
  • ****
  • Posts: 592
    • View Profile
Mutation: from evolve-2(x) series
« Reply #6 on: April 15, 2010, 12:12:07 PM »
If you have a large environment with low food and start out using eye5, then you're likely to end up going sideways, since a single mutation can easily cause it to happen and a bot moving sideways will scan a much larger area for food. The initial eyes aren't very wide, so moving forward looking through the middle eye will only scan a narrow path.
If you use a wider eye this is less likely to happen, and if you have abundant food then the next step will often be to spin when no food can be seen.
There are also other advantages to strafing, for instance if the conspec breaks it'll help offspring get away from their parents alive.
And ofcourse theres some disadvantages too obviously.

Personaly I think an interesting way to start off an evo bot is with reversed sight and .backshot inc executed every cycle (And a wider eye usualy).
This way offspring get away easy and don't spawn in ones line of fire. (Ofcourse if you want it to evolve tie feeding, this may not be the best way to go, but for shooters I think it's a good base)