Author Topic: 2.43y Eye Troubles RESOLVED 2.43z  (Read 3529 times)

Offline googlyeyesultra

  • Bot Destroyer
  • ***
  • Posts: 109
    • View Profile
2.43y Eye Troubles RESOLVED 2.43z
« on: December 30, 2007, 08:30:28 PM »
I've just installed the new 2.43y buddy drop, and I sadly find that my well-tweaked bot no longer runs properly. The DNA is attached.

Two major problems in the new version:
Foremost, when two bots are touching (aka, directly after repro), the conspec avoidance code no longer works (they turn away, but they don't run away. Probably because it uses eye5 there.)

Secondly, when one of my bots that has accumulated a large amount of body (probably greater than 10000 or so), when it gets close to a non-moving veggie, it will stall outside of shot distance.

As a postscript, I find that common eye values (such as thirty) occur at much shorter distances than they used to.
« Last Edit: January 12, 2008, 03:46:19 PM by EricL »

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
2.43y Eye Troubles RESOLVED 2.43z
« Reply #1 on: December 30, 2007, 08:44:38 PM »
Hi Googley;

While I am not perhaps in a place to reply to the second question I think I can repy to the first; recognition of new-borns has always (for me) been an issue, I always avoided it by using a post-repro timer, this may not work if you are facing an enemy but **** happens: Being a mum isn't all goodness and candy!
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 googlyeyesultra

  • Bot Destroyer
  • ***
  • Posts: 109
    • View Profile
2.43y Eye Troubles RESOLVED 2.43z
« Reply #2 on: December 30, 2007, 08:49:21 PM »
My bot uses omnieye targeting and the following code to ensure that it stays away from any of it's own species (as well as shapes):

When *.idcheck 0 =, I'm looking at a conspec. As far as I can tell, the new changes have somehow broken *.eye5 .up store when a large bot is touching another large bot.

I'd also like to note that number two is my fault. Having done some testing, I find that that happens in 2.43x as well. Ignore that. Please figure out what is wrong with number one.

'===========Avoid===========
*.eye5 0 > *.idcheck 0 = *.robage 1 > and *.reftype 0 != or and
*.refxpos *.refypos angle 628 add .setaim store
*.eye5 .up store
« Last Edit: December 30, 2007, 09:04:23 PM by googlyeyesultra »

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
2.43y Eye Troubles RESOLVED 2.43z
« Reply #3 on: December 30, 2007, 09:08:16 PM »
Could I ask you to post a sim and point out where I should look please?  I need to see the full DNA of the bot and also see the behaviour in context.  Thanks.

Quote from: googlyeyesultra
As a postscript, I find that common eye values (such as thirty) occur at much shorter distances than they used to.
I expected something like this.  The good news is that now that this code is all cleaned up, I can tweak this easily.  If we need more resolution farther away to match previous behaviour I can now easily change the shape of the curve that describes eye values along the sight distance.
Many beers....

Offline googlyeyesultra

  • Bot Destroyer
  • ***
  • Posts: 109
    • View Profile
2.43y Eye Troubles RESOLVED 2.43z
« Reply #4 on: December 30, 2007, 09:12:48 PM »
Alright, sim attached. I just made them veggies to give them energy, but the behavior happens either way.

The only bots in the sim are afflicted with it.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
2.43y Eye Troubles RESOLVED 2.43z
« Reply #5 on: January 12, 2008, 03:45:47 PM »
This issue with the conspec avoidance is fixed in 2.43z.  As of 2.43y, when two bots are touching, overlap or when one in inside the other or when the bot is touching, overlapping or inside a shape and an eye is looking in the right direction, the eye value is 32000.  But in the DNA execution logic, stores are MODed 32000.  So, the DNA

*.eye5 .up store

is really storing 0 to .up when the bots overlap.  

To fix this, I have changed the DNA exection logic to special case 32000 and -32000.  32000 is still the value eyes will have in the above cases, but these values can now be stored to memory and I have verfied that this addresses the conspec avoiadance issue with these bots in this sim.

With respect to the eye value range issue, I have made some small tweaks to this for 2.43z.  Additionally, 2.43z contains other significant eye value changes as sight distance is now a function of eye width.   The eye values for eyes with different widths and thus different ranges will now no longer rcorrospond to the same distance.  The eyevalue curve is "stretched" or "shrunk" as appropriate to the sight distance of the particular eye, which is now a function of it's width.  

So, I am going to resolve this specific bug for now.  If you find that eye values are still not what they should be in 2.43z, please re-open this bug or file a new one.
Many beers....