Author Topic: MutBot  (Read 3886 times)

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
MutBot
« on: December 19, 2005, 03:01:46 AM »
I was working on the idea of having a cannibot and normal altruistic bot combined in one package and instead wound up with the cannibot also being a true carnivore(MutBot in Starting Gate).

While I didn't intend on making the canni form only able to eat and hunt it's own species, it has seemed to make decent predator-prey cycles form. The carni-canni's need the altruists for food and the altruists need the cannis to defend against true canni threats.

Code: [Select]
cond
*.robage 1 =
start
1 rnd *.myeye 50 store
stop

Thisgene here is the main attraction, causing an approximatly 50/50 split between a given offspring being a canni-carni or altruist.

I've still got the simulation going, the latest mutations being repro nrg level increases, continual acceleration, and a continual shot mod, allowing a canni-norm phenotype(which is ironically more or less what I originally intended). The most gratifying effect is that none of the surviving lines haven't broken the altruist/canni gene, hopefully meaning the flexability is extremly useful to the bots.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
MutBot
« Reply #1 on: December 19, 2005, 08:45:00 AM »
wouldn't that gene just place the value of *.myeye into memory location 50 and just leave the random (0 or 1) value on the stack?
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
MutBot
« Reply #2 on: December 19, 2005, 01:21:57 PM »
Yeeah, not to burst your bubble but it looks like you need an add in there.

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
MutBot
« Reply #3 on: December 19, 2005, 11:34:11 PM »
Code: [Select]
cond
*.robage 1 =
start
*.myeye 1 rnd mult 50 store
stop

Oops, that'll teach me not to try and rewrite the gene from memory. Still a decent bot, I had a couple of divergent species evolve from it. One was optimized towards pure canni with all of it's conspec avoidance genes changed to allow hunting family; the other was also a canni but avoided family members.

The second would reach decent population sizes with the second lagging a bit behind. Oddly the second would do better overall than it's canni cousin.

The interesting thing is that the semi-canni switched the mult with a dec and would deliberatly store just *.myeye into 50, so it always avoided kin.

The two bots also both appear to diverge from the main line at different points; since for the pure canni, the line is ignored(50 store peice added) but is otherwise unchanged.

MutBot
« Last Edit: December 19, 2005, 11:52:10 PM by Endy »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
MutBot
« Reply #4 on: December 20, 2005, 09:28:44 PM »
That's interesting.  Would you say they were seperate species, or were the divergences short lived?

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
MutBot
« Reply #5 on: December 21, 2005, 08:51:57 PM »
I think they were both a couple of fairly stable species in their own rights.

They appear to at least partially balance each other for an unusually long while in their ecosystem("hunter" and "prey" cycles). Hunter's population peaking a smaller level and just after prey's peaked. I'd like to acheive something similar in a more controlled fashion; but I'm not sure if it is possible to acheive a man-made version without artificial seperation.

Eventually the prey mutated it's own barbarians and took over. Took an amazingly long time though.

I'm going to try and make a bot deliberatly be a semi-canni that avoids it's own kin. Maybe adding some epigenetic stuff and using in1/out1 for id(refeye/myeye too easy for evo to fool).
« Last Edit: December 21, 2005, 08:53:12 PM by Endy »