Author Topic: Excess nrg -> body, excess body -> death  (Read 13963 times)

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Excess nrg -> body, excess body -> death
« on: December 11, 2006, 06:38:47 AM »
Partly to deal with the problem of big Berthas but mostly 'cause I'm having to wait for the first match between 100's of Anubis Canis and 5 Atrium Venator's(Dark Hunter) to finish (at about 10 cycles/sec).

It seems a shame that excess nrg (over 32000) isn't being turned directly into body. I presume it's not anyway 'cause Dark Hunter seems to spend most its time at >31900 nrg but its body is growing quite slowly (12k cycles 8k body)

To go with that, punishing Berthas, if body gets over a limit, say 25k or 30k why not give them Altzheimers in the same way excess waste is punished?

Seems a biologically sound idea to me;

excess food = excess fat = less mobility & more chance of heart failure etc

***

The question is; will Dark Hunter ever reproduce before it dies of waste? (16k cycles now still only 8.5k body) Or will Anubis Canis just die from boredom?
« Last Edit: December 11, 2006, 06:39:51 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 Light

  • Bot Destroyer
  • ***
  • Posts: 245
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #1 on: December 11, 2006, 07:34:46 AM »
Neither of them have any body genes so there not really going to grow, Dark hunter doesn't have any repro gene so will never reproduce and as waste is disabled it wont die of it, Anubis Canis is so small in size and terrible at aiming that its never going to kill off the Dark hunters, I think its pretty much a stalemate. I think you could leave it all day and nothing will happen, call it a draw and move on. Also if they dont appear to be shooting each other its worth checking they aren't matching on cospec recognition ie both have the same .myeye value, but this isn't happening in this case

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #2 on: December 11, 2006, 08:18:02 AM »
I think you are right.

It reached 32000 waste a while ago and no mutations, this match would go on forever.  
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 EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #3 on: December 11, 2006, 10:38:53 AM »
Quote from: Light
Also if they dont appear to be shooting each other its worth checking they aren't matching on cospec recognition ie both have the same .myeye value, but this isn't happening in this case
FYI, in leaugemode, the code fudges .myeye valeus for combatants with the same number of .eye statements so .myeye should always be different between contestants.  Old routine, there long before I came along, but I did fix a bug or two there.  Should be working.
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #4 on: December 11, 2006, 04:02:27 PM »
If you exceed 32000 nrg I think maybe the excess should either be converted into waste (10 nrg -> 1 waste) or shot out automatically through the bots front, like a "leak".

Waste for leagues should exist, I think, but very high.  Like maybe 20 000 or something around there.

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #5 on: December 11, 2006, 05:43:55 PM »
Eric suggested 10k waste limit.

That fudged eye ref completely wastes Blue on Blues delgene chameleon tactic
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 EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #6 on: December 11, 2006, 05:55:33 PM »
Quote from: Jez
That fudged eye ref completely wastes Blue on Blues delgene chameleon tactic
Happy to turn it off if people like.  It's kind of a big hack.  IMHO, using *.refeye/*.myeye as a means of conspec recognition strikes me as brittle, lazy programming.  Writing some special value to .out1 might be better.  Species spoofing strikes me as a totally valid tactic and reason for bot authors to get even more sophisticated in this sapce.
Many beers....

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #7 on: December 11, 2006, 06:46:38 PM »
It brings to mind, what should a bot use for species ID and how much should we allow confusion? Greenbeards by Haig? The Altruism thingy, in the same way it was suggested that bots' point of reference should be specific not exact. What should be the bots POV? What is the biological comparison?

Bots should be allowed species (greenbeard) ID but chameleons exist so how to model them as well?
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 shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #8 on: December 11, 2006, 07:11:47 PM »
What should be the bots POV? What is the biological comparison?

No simple solutions here.  Organisms use many different criteria to define "own species".  Some don't care at all.  Some use very complicated visual and behavioral clues.  Actually, comparing number of eye commands is probably very close to the real biological situation for higher animals.  If only bots could compare other things as well...  Theoretically, they should be able to check on almost any property of a genome and come up with their own definitions of "their species".
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #9 on: December 11, 2006, 08:11:57 PM »
Quote from: shvarz
Actually, comparing number of eye commands is probably very close to the real biological situation for higher animals.

I'd love to hear more on this as it does not strike me as anything like what biological organisms do.  I would think they inspect relativly accessable morphological traits - color, size, plumage, scent, behaviour - rather than peering into the genetic code of another organism and determining how many of a specific base pair sequence it has in it's genome....

Equivalents in DB might be eye angles and widths, the values of the .out sysvars, movement speed, spin rate, size, mass, amount of body, navigational behaviour, whether it has ties or is shooting, color if we had it, etc.   I would consider each of these a morphological trait, relatively accessable to other organisms.  But relying upon the specifc way a bot's DNA is coded, makign a conspec determination on whether it uses *.eye5 as opposed to *505, I don't get how that parallels biology at all.
Many beers....

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #10 on: December 11, 2006, 10:41:26 PM »
Well, any morphological trait that can be used to tell your own species must be defined genetically.  So, yes, you are looking at the phenotype, but you judge the genotype.  In real life the complexity of phenotype is almost unlimited, whereas in DB it is strictly defined by the program.  For example, right now there is simply no way for a bot to tell that another bot is of a different color.  Bots are limited to the properties you described, but those properties are few and difficult to observe.  

One solution is to increase the number of phenotypic properties.  But to be done correctly those properties must bear a functional significance.  Just assigning a bunch of numbers and calling them "color", "fatness" or something else is pointless.  But if done properly I'm for it!

But the other way to look at this is that all our DNA makes us look and behave the way we do.  It's really the DNA that we care about.  We can't look at each other's DNA directly, but bots can.  So give them the ability to create and read certain fingerprints of DNA - problem solved.  You can even view these fingerprints as their "senses" - smell, taste, vision.  You may say that a dog "smells like a dog", but bot can say that a dog "has certain DNA patterns that make it smell like a dog".
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #11 on: December 11, 2006, 11:42:40 PM »
Hmmm.  I hear you.  But I wonder whether not having a clean seperation between phenotype and geneotype is wise, not just for conspec recognition but for everything in DB.  It goes back to the other threads we've had concerning evolvability mechanisms.  If we allow the genotype to essentially be part of the morph, then I worry that morphological selective pressures will place morphological constraints on the genotype and cause us problems with evolving the right information structures in the long run.

Take mimicry.  If conspec recognition is all about direct interogation of the genotype, then there will be select pressure in some cases to artifically decorate one's genotype to look like another's.   The genotype becomes the morph.  It's hard enough to evolve a good information passing and evolvabilty language but if it is also directly subject to morphological selection as well... well what?  I don't know...  It makes my brain hurt.  You and others have probably thought depper and longer about this than I but my gut tells me that a clean seperation between genotype and phenotype is important.
Many beers....

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #12 on: December 12, 2006, 04:37:52 AM »
I don't know; having read what you guys have written I can see now how a bot 'seeing' another bots dna length could be considered a 'genetic fingerprint', a relatively good way of a bot being able to define anothers shape, something it is otherwise going to have difficulty doing. (ooh look you're a circle, you must be my friend!)

Things like 'movement speed, spin rate, size, mass, amount of body,' are non defining characteristics, they change all the time.
Quote
"Just assigning a bunch of numbers and calling them "color", "fatness" or something else is pointless."
We have an equivalent of this in being able to ref locations in a bots dna just without the meaningless labels.

Even something minor like *.refeye rather than only seeing a bots outward eye postions could be considered a judgement on the number/size/colour of eyes.

In essence I think the way it is done could be considered analagous to many real life comparisons. As long as there is no way to lock an ID, other than an individuals ID, I will be ok with it. If a bot only wants to use one ID system then it is going to be easy to fool, the fun comes trying to con a bot that uses multiple ID methods, or multiple species opponents with different ID systems.

I vote the code fudge for .myeye ID be removed. Otherwise it becomes the defining ID system that will replace all others. An advantage without disadvantage.
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 Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #13 on: December 12, 2006, 04:46:18 AM »
The fudge for the eyes occurrs at the start of a round, and was added to reflect what PY did manually when I asked him what he did when two competitors had the same eye count.

It's not meant to screw with any ID system.  It's just a "fudge".  It also lets you run a league round against identical bot species, which is interesting and should be done at least once by anyone interested because it gives results you wouldn't expect (there actually is a winner after long enough.  Interestingly, it takes fewer rounds than some other competitions between very dissimilar bots).

In short, it's used in a very specific case where the starting DNA of two species has the same number of eye statements, and shouldn't interfere in any conspec strategy except maybe in very specific cases.

As a side note, I've been considering dropping the refeye, refshoot, etc. sysvars in favor of a DNA "hash" code that's built to maximize collisions and non linear distributions.  That is, it's a hash code that changes very little as DNA changes from mutations.  The simplest version would simply be the DNA length, though I'm hoping to make it a little more comlex.

It would be equally spoofable as any current refeye versions, but would prevent the moderate issue of bots knowing more than they should about an opponent.  It just seems weird to me that the number of eye commands in the other bot is visible.  And we use it for conspec recognition almost exclusively anyway.
« Last Edit: December 12, 2006, 04:50:24 AM by Numsgil »

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #14 on: December 12, 2006, 05:02:37 AM »
Didn't know that, thanks Nums, in that case I'm not worried about that either.
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