Author Topic: Senses  (Read 14943 times)

Offline Zelos

  • Bot Overlord
  • ****
  • Posts: 707
    • View Profile
Senses
« Reply #15 on: February 27, 2005, 01:53:33 AM »
if it slows down the simulation to much it aint worth it now. but wouldnt smell as well slow it down?
When I have the eclipse cannon under my control there is nothing that can stop me from ruling the world. And I wont stop there. I will never stop conquering worlds through the universe. All the worlds in the universe will belong to me. All the species in on them will be my slaves. THE ENIRE UNIVERSE WILL BELONG TO ME AND EVERYTHING IN IT :evil: AND THERE IS NOTHING ANYONE OF you CAN DO TO STOP ME. HAHAHAHAHAHAHAHA

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Senses
« Reply #16 on: February 27, 2005, 02:13:50 AM »
Smell wouldn't be so bad as the robots would only have to check a very small number of grid locations on each cycle. That kind of computation is very fast.

 :D  PY  :D
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Zelos

  • Bot Overlord
  • ****
  • Posts: 707
    • View Profile
Senses
« Reply #17 on: February 27, 2005, 02:31:25 AM »
sweet, if we add smell, the bots should be able to decied little what smell they release. kinda like:
Code: [Select]
cond
start
5 .fermo store
stop
then it release a fermone of type 5
and to notice what it smell
Code: [Select]
cond
5 .smell =
start
*.smeaim .aimdx store
stop
here it smell the fermone of type 5 and aim to the direction it smell most of it from. .smeaim is smell angel, the angel which it smell most of it. how about it?
When I have the eclipse cannon under my control there is nothing that can stop me from ruling the world. And I wont stop there. I will never stop conquering worlds through the universe. All the worlds in the universe will belong to me. All the species in on them will be my slaves. THE ENIRE UNIVERSE WILL BELONG TO ME AND EVERYTHING IN IT :evil: AND THERE IS NOTHING ANYONE OF you CAN DO TO STOP ME. HAHAHAHAHAHAHAHA

Offline Light

  • Bot Destroyer
  • ***
  • Posts: 245
    • View Profile
Senses
« Reply #18 on: February 27, 2005, 04:55:23 AM »
for hearing your just  limit it to bots that are close by say the nearest 5 or 10, rather than having it over the entire population

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Senses
« Reply #19 on: February 27, 2005, 08:31:58 AM »
Even then you have to find which robots are close enough to other robots to hear.  Still means checking every robot against every other robot.  Basically O(n^2) for computer science people.

There are ways to make it faster, something along O(n log(n)), still not great.  And it gets worse the more bots you have.  ANd how worse it gets gets worse as you have more bots.

And what about shouting loudly?  And what about a group of 10 creatures all shouting at once?
« Last Edit: February 27, 2005, 09:39:02 AM by Numsgil »

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Senses
« Reply #20 on: February 27, 2005, 11:18:49 AM »
Darwinbots uses a "sorted" list which keeps track of the x positions of all the robots in a dynamic array.

This speeds things up a whole lot since we don't need to go quite as far as n^2 when we are calculating. We just look at a smaller slice of the population to save processor time.

It is still by far the slowest part of the program though (that and graphics)

 :D  PY  :D
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Senses
« Reply #21 on: February 27, 2005, 11:28:08 AM »
The Pain <--- Yep same problems with PB, Imagine if yo got 20 robots pushing each other off the screen.

Offline MightyPenguin

  • Bot Destroyer
  • ***
  • Posts: 189
    • View Profile
Senses
« Reply #22 on: February 27, 2005, 01:02:37 PM »
Model the enviroment, I'm telling you,and everything will follow after. Trust me on this. Instead of searching through all the bots to find which ones are closest, then looking at what they're saying, model sound waves as objects. Update positions every cycle and set up a rule for collisions.

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Senses
« Reply #23 on: February 27, 2005, 02:30:28 PM »
seeing witch robots are closest and setting up rules for collison is kinda the same thing, unless "seeing witch robots are closest" was an idea to actualy check the relative position of each robot and then do another loop to get the closest robot. And anyway I dont think there is going to be mutch difference of speed.

Offline MightyPenguin

  • Bot Destroyer
  • ***
  • Posts: 189
    • View Profile
Senses
« Reply #24 on: February 28, 2005, 01:11:14 PM »
Fuck yes. I've solved it. :pengysmiley:  Add a layer to the e-grid that stores the objects currently present in that square. Then, when a bot wants to check hearing or smell or sight or anything like that it can access that information for a suitable number of squares in each direction a get a small list to check distances for.

You'd never need to search the entire array for anything ever again. At least from a single bot perspective.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Senses
« Reply #25 on: February 28, 2005, 01:21:24 PM »
We could have sounds be like regular stuff in the env grid only it'd diffuse into neighboring cells quicker.  Then it'd work.

I'll get back to streamlining the program again soon.  I've learned more about how VB works and I think I could add another 30-40% speed increase to large sims.  Would make these things less of a hit.
« Last Edit: February 28, 2005, 01:25:14 PM by Numsgil »

Offline MightyPenguin

  • Bot Destroyer
  • ***
  • Posts: 189
    • View Profile
Senses
« Reply #26 on: February 28, 2005, 02:46:31 PM »
Dude, I just told the better part of the CPU load how go shove its head up its arse and you have nothing to say? At least tell me how badly I got it wrong.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Senses
« Reply #27 on: February 28, 2005, 02:48:51 PM »
I actually was thinking of something like that for the collisions system, since ideally I'd like some robots to be huge and it'd make the current collision routines slow.

So basically good idea.

Not sure how effective it'll be till I try it out.

Offline Zelos

  • Bot Overlord
  • ****
  • Posts: 707
    • View Profile
Senses
« Reply #28 on: March 03, 2005, 11:43:54 AM »
guys, you know that animals like the shark have a sense of electricity? would that be possible in a later db version?
and when its about the vision of the bot, we all know that electromagnetic spectrum is pretty large, everything from radiowaves to gamma waves. what we humans see is just a tiny part of it. it goes from 405 THz(740 nm) to 790THz (380nm). but many animals see in ultraviolet and many plants use it. so why not give plants/animals colors (wavelenght / Frequency) to identefy them. instant of .refeye (which tells about the dna, since when have animals been able to do that?) we give  them like a color that is decieded in the begining of their life whit something like:
Code: [Select]
cond
*.robage 0 =
start
460 .color store
stop
where 460 is the frequency in THz or wavelenght in nm, what ever you like most, and color is the color the will have bot. yeah I know what you think, what if the bot use this gene over and over whit random colors all the time? a way would be it would cost alot more energy to change the color after the bot is 1 cycle old. while its free before it. and maybe to program to make it so that "X rnd .color store" will always become 0 .color. in thiis way it will not be good whit rnd coz it makes you show more. and to see what color it have:
Code: [Select]
cond
*.refcolor *.mycolor !=
start
bla bla
stop
this would make the bot do what ever you replace the bla bla whit when the color doesnt match his own. but this would make the bots see the entire spectrum. so how do we solve that? we could use it like:
Code: [Select]
specstart
400
800
specstop
this makes the bot see from 400THz to 800THz, but it should be like that the bigger the difference between the numbers are the mroe it costs. a bot who see the entire spectrum would use so much energy it would be dead before it reach a age to talk about. what about this formula?
F=frequency difference, in this case 800-400=400
(F/100)² energy per seconds
the good things whit this is that it become much mroe expensive the bigger the difference is. a hunting bot who see 2 different bots and both of them have a color that the hunting bot cant see apphere the same.
correct me if im wrong numsgil, arent you working on the enzyme system? if so, wouldnt it also be possible whit a protein system. like 1 protein gives the sight of X to Y and cost Z to make, or something like that, what do you guys think?
and onefunny thing would be that if we run a simulation whit this it would sooner or later develope a color that means "poison", in reality black,red,yellow have that symbol(but they need to be mixed to get that message), and it would most likly be in the range most bots see, and other colors would also have other meaning. doesnt this sounds fun?
When I have the eclipse cannon under my control there is nothing that can stop me from ruling the world. And I wont stop there. I will never stop conquering worlds through the universe. All the worlds in the universe will belong to me. All the species in on them will be my slaves. THE ENIRE UNIVERSE WILL BELONG TO ME AND EVERYTHING IN IT :evil: AND THERE IS NOTHING ANYONE OF you CAN DO TO STOP ME. HAHAHAHAHAHAHAHA

Offline MightyPenguin

  • Bot Destroyer
  • ***
  • Posts: 189
    • View Profile
Senses
« Reply #29 on: March 03, 2005, 03:18:59 PM »
Check

Ignore the first few pages, it's me talking rubbish.

Important; in this simple enviroment, how does electroception differ from any other sense? It doesn't. And the implementation you describe makes it little more than colour sensitive sight.