Author Topic: About Conspec recognition  (Read 4977 times)

Offline Ramiro

  • Bot Neophyte
  • *
  • Posts: 25
    • View Profile
About Conspec recognition
« on: September 02, 2006, 09:55:20 AM »
When does it ends? Appart from cannibots that donĀ“t recongnize even its own offspring, is there a set amount of mutations for a DBot to stop reconnizing its original form? How can I make a bot that has suffered a mutation to stop reconnizing its parent as CONSPEC but still recongnizing its childs?

I would like to try simulations with fast evolution without setting mutations rates too high wich are eventually deleterious to al DBots.

Offline Mutchy

  • Bot Neophyte
  • *
  • Posts: 35
    • View Profile
About Conspec recognition
« Reply #1 on: September 02, 2006, 10:02:27 AM »
could .mrepro be used instead of normal .repro?

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
About Conspec recognition
« Reply #2 on: September 02, 2006, 12:36:34 PM »
If you're using eyes for conspec recognition, then whenever a bot changes the number of eyes it has in its DNA, it will be recognized as an enemy.

Each conspec recognition system has a different robustness to population genetic drift.  You'll just have to play and see what you come up with.

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
About Conspec recognition
« Reply #3 on: September 03, 2006, 06:29:25 AM »
Quote
How can I make a bot that has suffered a mutation to stop recognizing its parent as CONSPEC but still recognize its children?

Cannibots quite often lose their cospec recognition by deleting or changing it so it doesn't work.
I.e.
Code: [Select]
cond
*.refeye *.myeye !=
start
-1 .shoot store
stop

changes to something like
Code: [Select]
cond
*.refeye *.robage !=
start
-1 .shoot store
stop

Which means that it won't recognise anything as a friend really but all the other bots using the *.refeye ID would still see it as a friend.

If one of the bots mutates so that it changes the number of eyes it has then you would get the effect you are looking for. The parent that gets the mutation would recognise all it's offspring and vice versa while seeing all the other (unmutated amount of eyes) bots as enemies.
The problem you run into then is that it will probably be shot at birth by its unmutated parent, if it survives it's going to have a lot of problems, it is now one bot on a screen full of enemies, life probably isn't going to be very long for the poor little critter!

For this reason you are unlikely to see a truly 'different species' develop, the mutations that survive, the ones that don't get killed off at birth, are more likely to give you a species that imitates the rest of the bots on the screen and use cannabilism or something to gain an advantage.

Even using .dnalen and all the refvars for ID would miss mutated bots that had changed an instruction rather than adding of removing one. Perhaps if you used the mutation rate button to zero all the 'change' mutations it might work.

Something like a .parent/.baby recognition system would be cool, I could see that being a lot of fun to use in evo sims and possibly changing the mutation trends we normally see.
« Last Edit: September 03, 2006, 06:30:48 AM by Jez »
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline Ramiro

  • Bot Neophyte
  • *
  • Posts: 25
    • View Profile
About Conspec recognition
« Reply #4 on: September 03, 2006, 11:35:57 AM »
Quote from: Jez
Something like a .parent/.baby recognition system would be cool, I could see that being a lot of fun to use in evo sims and possibly changing the mutation trends we normally see.

Exactly, that kind of sysvars I was looking for. Perhaps for a future edition. And maybe .grandparent / .grandson too (or a variable number of generations)

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
About Conspec recognition
« Reply #5 on: September 05, 2006, 11:48:26 PM »
Any kind of individual bot recognition could have interesting results. I wonder if holding a grudge would be a survival trait.
Lancre operated on the feudal system, which was to say, everyone feuded all
the time and handed on the fight to their descendants.
        -- (Terry Pratchett, Carpe Jugulum)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
About Conspec recognition
« Reply #6 on: September 06, 2006, 04:48:23 PM »
I would certainly imagine so.  It would be a very good way to guard against cannibals without becoming one yourself.

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
About Conspec recognition
« Reply #7 on: September 07, 2006, 08:27:44 AM »
Yay, another refvar!

*.howmanyofmyfriendshaveyoukilled

Seriously though, good idea.
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
About Conspec recognition
« Reply #8 on: September 07, 2006, 10:14:48 AM »
This is my cannibot ^^
Brothers and parents are conspecs, but distant cousins and great-grandparents might not be.

Someone once posted about a sim where all their bots evolved to look in the same direction, because any bot who ended up looking in a different one got killed off. Any cannibot that attacked the ones looking in the same direction reduced the number of bots looking in the same direction, so it was selected against.
This is based on that idea.



Code: [Select]
'Attacks conspecs, but only the ones who are more distant relatives
'The theory is that a cannibot who also attacks his close relatives
'wont have anyone to protect them against them against their cousins


cond
*.robage 0 =
start
'the value initiallystored in 971 determines how well he gets along with his family
'the higher the number, the more distant the relatives need to be in order to get attacked
50 971 store
.delgene inc
stop

cond
*.robage 0 =
start
971 .memloc store
stop

cond
*.robage 2 =
start
*971 2 rnd add 1 sub 971 store
stop

cond
*.eye5 0 =
*.memval *971 %= or
start
5 .up store
314 rnd .aimdx store
stop

cond
*.eye5 0 >
*.eye5 40 <=
*.memval *971 !%=
start
*.refvelup 10 add .up store
*.refveldx .dx store
stop

cond
*.eye5 40 >
*.memval *971 !%=
start
-6 .shoot store
*.refvelup .up store
stop

cond
*.nrg 10000 >
*.robage 100 >
start
30 .repro store
stop
Lancre operated on the feudal system, which was to say, everyone feuded all
the time and handed on the fight to their descendants.
        -- (Terry Pratchett, Carpe Jugulum)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
About Conspec recognition
« Reply #9 on: September 07, 2006, 03:32:06 PM »
I had a similar idea but never made a bot for it.

Looks interesting.