Author Topic: "Eyeless" bots  (Read 4728 times)

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
"Eyeless" bots
« on: October 06, 2005, 12:33:14 AM »
Alright since I can't quite get this to work as well as I'd like, I'll post it so perhaps someone else can make use of it.

The new * operator allows the creation of bots that don't appear to have eyes to the other bots. (found some bad coding in One that allowed blind leachers to destroy it :D )

Code: [Select]
499 6 add * 0 !=
is equivalent to: *.eye5 0 !=

The downside to this is that the program also thinks the bots don't have any eyes and subsequently doesn't allow them to see any refvars. I've gotten a fully functional version of Din down to a single eye, but can't go any further because of this :sad2:

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
"Eyeless" bots
« Reply #1 on: October 06, 2005, 11:02:55 AM »
That's not what I added * for  :angry:   :P

I think I've changed it so that veggies can still use their eyes even though they don't need to.  This would apply to other bots as well.  values get stored in eye slots wether they use them or not.

I was thinking of people hijacking a veg, and using it as a shield.  You could use its eyes to see through, and command it to shoot using venom, etc.

I'll go look through the code with this in mind, make sure things are working in a logical and consistant manner.
« Last Edit: October 06, 2005, 11:03:34 AM by Numsgil »

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
"Eyeless" bots
« Reply #2 on: October 06, 2005, 05:15:58 PM »
Quote
That's not what I added * for

Honestly the dastardly plot was already foiled by View. Without any sort of species recognition the bots are impossibly difficult to control. The first din mod wiped itself out simply due to it attacking it's own family continuously.

It's always been possible to hide most refvars just by having them be mathmatical parts instead of a single number. Thats one of the problems with using the ref's to look directly at dna, that's it's too easy to hide the true meaning of all those numbers.
« Last Edit: October 06, 2005, 05:53:06 PM by Endy »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
"Eyeless" bots
« Reply #3 on: October 06, 2005, 05:52:41 PM »
Most conspec abandoned using eyes a long time ago, so I'm not too worried.

What all ways do people use for conspec recognition?  These are all the ones I can think of:

memloc/memval
in/out
refeye

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
"Eyeless" bots
« Reply #4 on: October 06, 2005, 06:06:51 PM »
Normally I and alot of others just use eyes since the number is more likly to be unique and you can't change the eye number easily. With the modified Din I switched to using shoot, since it has a goodly supply of those.

I've worked on using memloc/memval for identification. I still don't like how another bot can query .memval to discover what you're looking for. It's alot like the old in/out problem, with another cycle thrown in :(

I played with checking their *.thisgene(last gene when view by another) but decided against further use due to all the viruses.

I'm planning on developing a variable memval/memloc checker, I just need to figure out how to make it so it doesn't cost too much. I think you could do something like this with the refvars and myvars now with * . Something similar to:

Code: [Select]
Puesdo code:
3 rnd 50 store

cond
.myeye *50 add * .refeye *50 add !=
start
etc

Should randomly check different refvars and equivalent myvars against each other.

(Note I'm nowhere near sure the ref/my's align correctly for the example above additional math tweaking is likely required)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
"Eyeless" bots
« Reply #5 on: October 06, 2005, 06:49:47 PM »
At one point I played around with using in/out, but instead of a specific universal .myID number, I used a value that was based on an attribute that was likely unique for each bot, modified slightly.

For instance, you could do:

*.body 17 div .out1 store

and then to check:

cond
*.refbody 17 div *.in1 store

I had trouble making it work back then, but I bet with the new commands it'd be a snap.

I think the days of using constant values for conspec recognition are comming to an end.  Some day I'd like to construct a bot that's sort of like Umbrella.  A mimic bot that mimics all known ID methods.  Each bot would try hard to crack the oponents ID system, and when it did, it would share the knowledge.  Just to encourage people to find new ones.

Something like the above would be much harder to mimic unless you knew the pattern.  If you did something like:

*.nrg 17 mod *.body 23 mod mod

for conspec, that might be even harder to crack.
« Last Edit: October 06, 2005, 06:50:41 PM by Numsgil »

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
"Eyeless" bots
« Reply #6 on: October 07, 2005, 04:19:31 AM »
Interesting looking. Only issue is that you'd have to expend nrg whenever body changes to keep an accurate id.

Maybe something like:
Code: [Select]
cond
*.body *.out1 17 mult !=
start
*.body 17 div .out1 store
stop

cond
*.refbody 17 div *.out1 !=
start
"Attack!

The only problem with mimics is knowing when to stop. Din would simply hurt them by making them think it was referencing values it wasn't in fact using, causing the mimics to waste massive amounts of nrg continually storing randomly changing values.

Still think it'd be hard to crack the ref (dna amounts) without some dna copying method. It's normally easier to change an opponent's myeye or look like a veggie. They're useful in this regard, just not to form a basis for judging behaviors.

Quote
I think the days of using constant values for conspec recognition are comming to an end.

They'll probably just fade away rather than end. The refs that refer to amount of dna, are more like semi-permanent cosmetic looks than anything else. If the number more directly correlated to a bot's abilities, they'd be more useful.

Speaking of which I think Din's guilty of making a similar assumption...let me go make just a few changes :pengysmiley:
« Last Edit: October 07, 2005, 04:25:56 AM by Endy »