Poll

Could bots benefit from having the way their eyes work changed?

Yes
7 (87.5%)
No
1 (12.5%)
Couldn't care less and where's the chocolate?
0 (0%)

Total Members Voted: 8

Author Topic: Eyes  (Read 10773 times)

Offline Zinc Avenger

  • Bot Builder
  • **
  • Posts: 56
    • View Profile
Eyes
« Reply #15 on: November 13, 2006, 10:19:51 AM »
How about making which eye has focus changeable?

Strip the special status from eye5, and make eye5 the default "focus" eye, the way it currently is, and designate a memory location to hold an identifier to say which of the eyes has focus. So stick a 2 in it, and eye2 has focus. Stick a 9 in it and eye9 has focus. I don't really see why this should have much in the way of prohibitive costs, unless you want to give bots the option of focussing multiple eyes simultaneously.

This also has the benefit of not breaking existing bots

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
Eyes
« Reply #16 on: November 13, 2006, 12:16:54 PM »
The way I see it is the bots are single cellular life forms, and as such it is unrealistic for them to have any vision at all, but within DB it might be difficult to chose another way for them to sense their environment. That's why I have suggested that their vision radius should be decreased so they allmost need to touch another bot to see it. I'm thinking that real bacteria for instance has to be very close to sense something. I think real bacteria swim around searching for food and doesn't discover it until they bump into it.
The internet is corrupt and controlled by criminally minded people.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Eyes
« Reply #17 on: November 13, 2006, 01:32:55 PM »
There exist photo-sensitive bacteria which have multiple photo-receptors which can sense differences in directional brightness.  Many single celled species use such senses for navigation, so your claim of eyes on single cells being unrealistic is not well supportted.

But that is somewhat beside the point.  I see no strong reasn why DB must parallel biology at all and it is not a naive question to ask why the simulated environment has any relationship to the physical world at all.  We could have chosen a more CoreWars / Avida approach where bot phenotytpes are software artifacts competing in a nonintuitive virtual environment more condusive to pure software entities and wholly divorced from the physcial world and it's physics.  Why didn't we?

The answer of course is that humans are the ones viewing the evolved behaviour and choosing a virtual environment with an intuitive and consistant set of physics means it is easier for us to recognize evolved behaviour.  But this does not mean we must place artifical or biological limits on bot senses as an attempt to imitate biology.

I'm all for encouraging multibot evolution and as such there is a long list of things I would not want to see single bots capable of but we must be realistic w.r.t. available computing power.  If we required many bots to cooperate in order to acheive meaningful vision, it would take a long time to evolve and as I have said many times, I'm primarily interested in evolving behaviour, not senses, so I favor enhancing single bot vision, not degrading it.

Changing subjects somewhat, the suggestion of bots being able to change the focus eye and the suggestions of allowing for bots to change eye direction and field of view are not mutually exclusive.  Likely I will implement all of them over time.
« Last Edit: November 13, 2006, 01:36:32 PM by EricL »
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Eyes
« Reply #18 on: November 13, 2006, 03:45:51 PM »
If we were to modify the way the day/night cycles work, so that the amount of ambient light in the sim is near zero at dawn/dusk, and practically zero at night, we could have vision radius decrease to reflect this.

In the middle of the night you would have to get up really close to other bots to see them at all, because there isn't enough light.

This isn't an expensive operation in code at all.  You'd just decrease the vision radius.  We could also tie in the pond mode gradient, so bots in the deeper parts of the sim have the same effect, regardless of what time it is.

Testlund, that would let you run the sims you want, where eyes just really don't work.

The vision radius would need to relate to the cos or sin of the current day/night cycle.  I think it would be pretty easy to code.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Eyes
« Reply #19 on: November 13, 2006, 03:50:47 PM »
Quote from: Numsgil
If we were to modify the way the day/night cycles work...

A most execellent idea sir and I agree, fairly easy to code.  On my list.
Many beers....

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Eyes
« Reply #20 on: November 14, 2006, 06:08:15 PM »
I like the direction this is going, I have to say I agree with the premise that binocular vision should be the sole preserve of multi bots TBH, much as it pains me to say!

The idea that a bot can use all 9 eyes to see and then has to choose which eye to focus and therefore get information via rather than wasting a cycle to turn and look through eye 5 sounds really cool. I could imagine making, if I ever do, a multibot that had effective binocular vision using that.

Day night cycles affecting vision is also a great idea.

Quote
I see no strong reasn why DB must parallel biology at all
my bots were sharks with frikin laser beams... although pulse lasers seem to be out doing beams now; unlike Elite  
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
Eyes
« Reply #21 on: November 14, 2006, 11:22:15 PM »
Proper binocular vision's primary purposes aren't needed in current sims, which is a problem if we want to move towards binocular vision.

Basically, bots don't need binocular vision to have deoth perception, since they have a perfect ability to determine distance using a single eye.  Bots don't need binocular summation because if anything is within the bot's vision radius, and it's pointed in the right direction, it can see the object.

About the only reason I can imagine for bots to have binocular vision is determining the structure of another multibot using paralax.   And maybe using binocular vision in the dark could extend your vision radius if we do what I propose above.  That's it.

The problem is basically that current eyes are too powerful.  Dumbing them down is an option, but a drastic one and it tends to go in the oposite direction of most changes.

I don't have a solution, I'm hoping by outlining the problem someone else has an idea?

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Eyes
« Reply #22 on: November 15, 2006, 12:17:03 AM »
I don't see a problem.  Binocular vision is an evolved adaptation, something a small percentage of the 10 million biological species on the planet have evolved as a means to provide distance and depth of field inputs for their brains to utilize.  It's a complex sense, many millions of years in the making, but only because unlike DB, the real world doesn't have an easy way to provide organisms with distance inputs about the things around it.  If it did, binocular vision would not have evolved.

Yes we could simulate the environmental conditions that selected towards this adaptation in the real world or dumb down vision such that the evolution of determining how far away things are via paralax or some other means would convey an advantage but I don't find the goal of evolving such equipment as a means of providing inputs the system can easily provide to be particularly interesting.  Call me repeditive, but I'm interested in evolving complex behaviour that uses such inputs, not the inputs themselves.  And lest I be allowed to dream, perhaps someday, evenutally, evolving complex inteligence.

Any sense, any inputs we can provide to the bots we should provide, not evolve.  It's trivial for the system to provide to a bot directional and distance inputs about the things around it.  It's non-trivial to evolve behaviour that uses that information effectively e.g. hide and ponce or run and hide or coordinate attacks with others or any number of a zillion other interesting and complex things.

Bottom line, I'm interested in evolving non-trival complex behaviour, not senses.
Many beers....

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
Eyes
« Reply #23 on: November 15, 2006, 08:28:19 AM »
Well, I prefer biological realism, but maybe that's just me. I think DB has been developed in that direction quite well. I also agree with letting day/night cycles affect vision. Very good idea! Seems we have the same opinion how DB should be most of the time.  
The internet is corrupt and controlled by criminally minded people.

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Eyes
« Reply #24 on: November 20, 2006, 11:08:01 AM »
What about MB's? I thought one of the long term goals for DB was the evolution of MB's but with single bots having such powerful eyes anyway and no need for binocular vision to gain depth perception perhaps we are unfairly putting MB's in a really bad position.

If you want an evolutionary reason for MB's to exist then they need to have some defining advantage, rather than just being larger and less mobile food trays for smaller quicker bots.

The only time I seriously tried to make an MB was when ties were the most powerful weapon around, I figured that an MB using the max amount of ties it is allowed to have to create itself would make it invulnerable to tie bot hunters. Not that I managed 'cause ties always end up confusing me but the thought was good.

For this reason I am taking the idea of dumbing down uni bot eyes as a simple but effective way of driving the evolution of bots forward.

I am also very interested in creating complex behaviour patterns, perhaps giving all the bots access to all the abilities isn't the best way to do it. Evolution isn't driven by having everything, that just makes you fat and lazy!  
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
Eyes
« Reply #25 on: November 20, 2006, 12:07:40 PM »
Something on my list is to add (obviously optional) switches to turn various single bot capabilites off.  For example, I have been considerring an option that would turn off the movement sysvars.  This would mean that bots would have to evolve their own mechanisms for locomotion based on the physics of the system, which would select heavily for multbots.  For example, using ties for swimming or tie torque/tie length and fixing and unfixing to walk.

I could do the same thing for vision if people really wanted I.e. turn off all eyes but .eye5 or turn off the distance values so all you know is that there is something in the eye's field of view, but not how far....

Personally, I can think of many things that would favor the evolution of multibots but I think it may require some tweaks to costs and also increased topological complexity before they really take off.  As to the former, I see cell specialization as a key driver for MB's.  I.e. some cells get good at attacking, others good at storing nrg, others good at defense, etc.  I'm wondering whether we need to tweak costs or add additional ones that favor this I.e. that make it more costly for a single cell to do multiple things that it is for two separate cells to specialize.

As to the latter, I can envision MB's being necessary to climb over obstacles, bridge chasms, fly, swim, move faster, dig deeper  and perhaps more importantly, think better.  A long distance goal of mine is to create morphological artifacts (think nurons) which favor MB's hooking up to be able to think better.  It's not a complete idea yet, but something I would like to explore down the road.
Many beers....

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Eyes
« Reply #26 on: November 20, 2006, 02:53:27 PM »
Wow, I come up with a bright idea and Eric's already so far ahead of me that he's ordering a pint down the local pub!!

I'd love the option to turn depth perception off for uni bots, especially if there was a way for MB's to still get the ability.

I've always wanted MB's to evolve into omethng more viable than web bots or cancerous veg imitators.

You get my full support for adjusting the game anyway you see fit when it comes to emphasising the difference between one cell and multi cell life.  
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
Eyes
« Reply #27 on: November 20, 2006, 05:32:10 PM »
I think a step in the right direction is charging bots nrg for eyes, ability to move, shooting, etc.  As bots turn off their capabilities to do various things, they are charged less and less for upkeep.

That encourages a high degree of specialization, especially if the reduction in nrg use is non linear.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Eyes
« Reply #28 on: November 20, 2006, 06:49:16 PM »
Quote from: Jez
I'd love the option to turn depth perception off for uni bots, especially if there was a way for MB's to still get the ability.

Something I would love to see is someone hand-author a mutlibot that uses binocular vision to determine how far another bot is.  No program changes would be needed to do this.  Simply author a bot that divides, ties the two bots together using a known tie length, then ignoring the number that the eyes reads back, uses the relative eye angles on the two bots and a little triganometry to tranangulate on a third viewed bot and track that bot in motion.

This excercise would give us some insite into the complexity it would take to actually have binocular vision evolve.

Quote from: Numsgil
I think a step in the right direction is charging bots nrg for eyes, ability to move, shooting, etc.  As bots turn off their capabilities to do various things, they are charged less and less for upkeep.

I fully agree and this is exactly what I have meant in posts past when I indicated I favorred morphological costs over genotypic costs (such as DNA operations).  IMHO, we shoudl charge bots for what they do, not how they do it.  So I'm all in for, for example, adding costs directly tied to phsyical movement (including eye movement if we want) in addition to the other morphological costs we already have (producing posion, slime, shots, ties, etc).  I'd also like to add costs for reproduction as described in previous threads.

Charging for using (I.e. reading from) specific sysvar values (such as the eye sysvars) that the system is populating anyway is more problematic.  It's easy for me to see how we can charge for writing to a sysvar (and thus charge for the corrosponding/resulting morphological action that implies) but reading from mem locatiosn is harder to catch.   I'm open to suggestions on how we might do this if people really want to say, make a bot with 9 eyes more expensive than one with 3.
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Eyes
« Reply #29 on: November 20, 2006, 07:11:59 PM »
The simplest method I can imagine is to start every bot off with no eyes activated.  Activate an eye only if the bot tries to read from its memory location.  Activated eyes cost nrg to upkeep every cycle.  Eyes that haven't been addressed in a while are automatically turned off, and aren't charged anymore (maybe over the length of 1000 cycles or something similar).