Author Topic: Venom impact on .fixed  (Read 9117 times)

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Venom impact on .fixed
« Reply #15 on: March 17, 2006, 06:38:02 PM »
FYI, that is preciesly what led me to this thread. My my first bot uses venom for exactly that: conspec confusion to avoid attacks then fixing in place to prevent the prey from running away.  I also shoot different venom at differnt bots I.e. conspec confusion for attackers, .fixed venom for veggies in motion.  The latter is useful for dumb bots like mine that don't have sophisticed vision, trajectory plotting or shot aiming (yet).  Eating stationary salad is just easier.

-E
Many beers....

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Venom impact on .fixed
« Reply #16 on: March 17, 2006, 06:42:22 PM »
Random thought:  I might be happy to restrict bots to one kind of venom.  That way if you want to shoot multiple kinds of venom, you have to be a multi-bot.  Simple way to keep the venom sacs and costs separate and one more reason to evolve MB level complexity.

-E
« Last Edit: March 17, 2006, 06:43:55 PM by EricL »
Many beers....

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Venom impact on .fixed
« Reply #17 on: March 18, 2006, 05:05:13 AM »
Here's something else to think about: Venom effect on 'species'

Venom doesn't affect conspecs: is this too artificial? Should bots be able to evolve venom resistance? How should resistance to venom be controlled?
etc.

 :D

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Venom impact on .fixed
« Reply #18 on: March 18, 2006, 01:41:22 PM »
My $0.02.  Warning, opinion spewage below.
/Soapbox on

Quote
Venom doesn't affect conspects: is this too artificial?

I would say yes.  I changed my little learning bot to use info shots to fix prey instead of venom after the discussion above and quickly found they were fixing each other occasionally with all those fixing info shots flying around until I added the .fixed checking/resetting gene.  So, I'm already coding my bots against a sort of anti-venom from conspecs.  I'd (perhaps naively he says) state venom should indeed impact conspecs and that if a species needs to avoid venom from conspecs, either they grow a sufficient shell, aim better or code around the impacted location (e.g. if they shoot *.myeye venom, use *.refshoot for conspec recognition instead of *.refeye.

Quote
Should bots be able to evolve venom resistance? How should resistance to venom be controlled?

I'd say sure, bots can evolve venom resistance, but not in anyway that the engine is aware of, which is essentially saying no to what I think is the essence of your question.  Bots can evolve whatever ways they want to work around the impacted memory location or evolve ways to prevent it from getting overwriten in the first place - thicker shells, etc. but I'm kind of naturally resistant to adding more n^2 feature-specific state for the engine to carry around for each bot.  The engine would need to track each bots resistance to each type of venom, we would need to add some sort of *.mkvenres sysvar, etc. or whatever the point being the engine has special case code for this functionality.  

Now, this is where a personal philosphy of mine rears it's ugly head.  Gack, how do I say this clearly?  I think a highlevel design philosophy for DB should be for the DB engine to focus as much as possibile on general physics, on simulating and providing data about artifacts of the bot's world and that it should try to remain out of low level features where possible and be as stateless as possible with respect to how much bot specific, feature specific state it carries around.  That is, to a reasonable extent, my preference is for the engine to provide the environment and let specific features such as venom resistance evolve within the DNA.  That's not very clear I know, but perhaps using an example....

Say we wanted to provide the ability for bots to dodge shots.  On the one hand, we could provide all sorts of special case capabilities for this one feature: *.mkdodge and *.refdodge sysvars, etc. and let the engine do all the work of maintaining state about each bot's shot dodging ability, how that wears off over time, figuring out if and when bots successfully dodge shots, maybe shots with higher .shootvals are harder to dodge, etc.  This is what I would term a whole bunch of feature specific code in the engine, a whole bunch of feature-specific state.   In this design, the engine would be intemently aware of all the nuances of this specific feature.  

But my preference would be to instead enhace the engine to make shots tangable and visable I.e. make them part of the world physics in a general way.  Any shot dodging ability would have to evolve or be coded for in a bot's DNA, but so could potentially lots of other features without the engine being explicitly revved e.g. hiding behind veggies, shooting waste as a protective screen, anti-shot shots, child sacrifice, perhaps tieing to a shot? and so on.   The engine remains as general as posssible - all it does is calculate who sees what shots and handle the physics of that (yea I know, not trivial) but the point is it remains focused on the physics of the world, providing the environment for specific capabilties/features to evolve or be coded for, but not getting bogged down in feature specifics.  

Whew.  I needed that.

/Soapbox off
« Last Edit: March 18, 2006, 01:45:10 PM by EricL »
Many beers....

Offline Griz

  • Bot Overlord
  • ****
  • Posts: 608
    • View Profile
Venom impact on .fixed
« Reply #19 on: March 18, 2006, 05:27:26 PM »
Quote
Now, this is where a personal philosphy of mine rears it's ugly head
in full agreement.
you rant more clearly on this than I have in the past. ;)
let the engine provide the environment ... the general world physics ...
within which ... the bots are allowed to evolve, or not.
I know it's a give and take ...
and sure PY and Nums will have plenty to say/share.
不知
~griz~
[/color]
   "The selection of Random Numbers is too important to be left to Chance"
The Mooj  a friend to all humanity
[/color]

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Venom impact on .fixed
« Reply #20 on: March 18, 2006, 06:22:54 PM »
I don't like artificial rule sets.  I like to keep things relatively simple and have the interactions between the simple parts define the world, so I agree with you guys.  That said, sometimes that's more difficult in practive than in theory.

Here's what I see we want:

1.  A way for bots to produce and react to different kinds of venom.  Different kinds of venom don't cancel each other out like they do right now.

2.  A voluntary conspec recognition system.  That is, bots can design or react to venom in such a way that they are immune to conspec's venom if that conspec agrees to doing so.

I've been thinking aout the combat system and how to change it for when I add phagocytosis.  Here's what I'm thinking at the moment:

Revamp the entire combat system into the following:

Attack - Defense
-1 nrg shots - Shell
Phagocytosis (eating another cell whole) - Poison (with poison not acting like it does now.  Instead, it would either drain energy from the digesting cell, or make the cell throw up, or something like that.  It's highly discussable).
Tie feeding - Slime

Venom and Info Shots - Anti-Venom (or you could call it something else.  Name isn't that important).  Also stopped by Shell perhaps.

(Viruses wouldn't be an attack that would work well against another species (at least, not without some modifications probably).  Viruses would be moved to be more for evolution simulations, where I think they belong.  This is another topic all together...)

Venom would be produced with two characterstics:

Conspec value and memeory location/value.

Conspec value is something I've been wanting to introduce for a while.  It's a value that a bot can set.  Venom that tries to attack a bot with the same conspec value won't harm that bot.  Ties that fire at a bot with the same conspec value won't be effected by that bot's slime.  .conspecID or something similar would be a super private sysvar that other bots can't either write to or read from.  Severeal existing sysvars would be moved to a similar private sysvar array for things generally accepted as private, such as delgene.  (That is, there are already private sysvars, I would just be formalizing the idea into a specific memory range).

Memory location/value would be where and what the venom does.

Venom that effects a bot is placed in a venom array that keeps track of what memory is being effected, controls the venom countdown, etc.

Venom produced by a bot would similarly be kept in an array that keeps track of what kinds of venom have been produced and are ready for use.

Anti-Venom works just like Venom except it stays in the bot and reduces the time effect of venom, being used up in the process.

I don't present the above as a finalized idea.  It's strictly a work in progress in my mind.  I present it now as an idea.  It does introduce alot of new crap that isn't strictly as clean as I'd like.  Feel free to take it and modify/mutilate it to create a better idea.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Venom impact on .fixed
« Reply #21 on: March 18, 2006, 06:46:32 PM »
Engine or not engine? That is the question.

Well first up you need to define what exactly you mean by the "engine".

If you mean the "physics engine" then what you say is entirely true. We need to develop DB such that this engine just maintains the environment and has little to do with what the bots do with it.

However there is a cross over in which the "engine" actually handles DNA actions. Something has to. The rules of the world's physics have to interact with the bot's DNA at some point. This is where we get the dilema. What exactly is the cutoff point where DNA handling engine stops and the physics engine takes over?

It would be great to get rid of all the arbitrary rules that plague DarwinBots but the problem is again.. What do you define as arbitrary? In real life, venom gets into the system of an organism and screws with it until either the organism dies or its metabolism manages to get rid of the venom. This, of course, takes time.

The present venom system is rather simple and was designed to replicate the effects of venom wearing off. It is rather imperfect and is one of the things that will benefit greatly from the new metabolism systems when they are implemented. It would be unrealistic to simply allow the DNA to remove venom as soon as it is detected. Even if we had a sysvar command such as .removevenom in which you can store energy to forcibly eject the venom, you still need some sort of "counter" that tracks the current level of venom in the robot's system. That counter has to be managed somehow.

Example: A robot has 4000 energy. It is hit by 16,000 points of venom (a really nasty dose). Some counter somewhere (possibly one of its memory locations) holds the venom value. It detects the venom and then saves some value into .removevenom to remove the venom. It can only spare 500 energy and this will remove 500 points of venom so it still has 15,500 left.

Now what? Does the venom remain until the bot can spare more energy to actively remove it? or do we just let it go away gradually? (like it does now) Either way it has to be tracked. We are just shifting the onus of tracking it from the main engine into the DNA engine.
Oh wait a minute. The two are actually the same thing as far as the program goes <_<

One improvement would be for the robots to have varying levels of resistance to certain venoms (ie. having memory locations forcibly changed for more than one cycle) This resistance could be learned and remembered but then we would have to track that too. A whole array equal in size to the actual memory array, would be need to track it.

Alternatively we use enzymes in the new metabolism system which are more or less efficient at removing venom. this allows for random mutations and selection based on venom immunity. That would be my vote.
Even so the enzymes would simply effect the efficiency of venom removal and th evenom still has to be track by some engine or other.

I just don't see any feasible way to totally remove venom from the physics engine, after all venom does have a physical effect on an organism.  :unsure:
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Venom impact on .fixed
« Reply #22 on: March 18, 2006, 10:38:15 PM »
Like the idea of conspecID. Would remove alot of the unatural effects of bots being conspecs. Canni's should be affected by another's venom like any other bot.

Would also making MB's much easier. Slime wouldn't be the major drawback it is now.

Perhaps bots in confusion could also change it to receive some sort of assistance from family.

Poison isn't similarly neutralized between conspecs is it?

I have one of my main EvoBots using this to moderate cannibotism, and it always seems to work.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Venom impact on .fixed
« Reply #23 on: March 18, 2006, 10:58:05 PM »
I thought poison was conspec immune, but I may have broke that when I rewrote the shot routines a while back.  Or I could just be wrong (a first time for everything :P)
« Last Edit: March 18, 2006, 10:58:23 PM by Numsgil »

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Venom impact on .fixed
« Reply #24 on: March 19, 2006, 09:42:31 PM »
At least in 3.6 EvoBot5.4StemA seems to work right. A cannibalistic conspec is poisoned, making it a non-conspec(in regards to the bots feeding). The unfortunate bot is quickly recognized and eaten.

If it wasn't working right the bots under mutations shouldn't be able to reach anywhere near the population levels they routinly manage.
« Last Edit: March 19, 2006, 09:44:51 PM by Endy »

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Venom impact on .fixed
« Reply #25 on: March 20, 2006, 11:49:43 AM »
Quote
Poison isn't similarly neutralized between conspecs is it?

Conspecs should be imune to the poison of their brethren.
Unless it got broken somewhere down the line.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D