Author Topic: Hivebot communication  (Read 9964 times)

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Hivebot communication
« on: January 28, 2006, 05:32:14 AM »
This is the *official* thread of hivebot's .out/.in communication systems, the Keepers' information gathering and (x, y) location stuff.
All bots should 'report in' at the hive to see a Keeper/Queen periodically so information will get to all the bots via .in/.out eventually. That's partially the reason for the hive concept - somewhere lots of bots can congregate to swap info.

We need quite advanced communication methods for the bots to be able to relay coordinates and 'explainations' to each other.
I was thinking:
The bots could use a 'tree' method. How you interpret the next .in depends on the previous .in - anyone get that? So .in1 could tell the bots wether the message is about pray, threats, hive location etc. and they could interpret .in2-5 based on that.
... just an idea

Even if you don't understand a word I'm saying  :D  feel free to play around with ideas relating to those sections of the code here.
I bet lots of you that say you can't program bots very well have some good ideas anyway (If you think of something good, then we'll program it for you)
« Last Edit: January 29, 2006, 07:25:58 AM by Elite »

Offline Old Henk

  • Bot Destroyer
  • ***
  • Posts: 229
    • View Profile
Hivebot communication
« Reply #1 on: January 28, 2006, 07:30:46 AM »
I suggest that the 'normal' hibernating bots all tie together, so that a wake-up call can be distributed quickly through the hive via a chain reaction.

A suggestion:

Keepercode:
Code: [Select]
cond[I]
I see something is wrong and
I see one of the hybernating bots[/I]
start
50 .shoot store
1 .shootval store
stop

etc.
Normal bot code:
Code: [Select]
cond
[I]I'm in hybernating mode[/I]
*50 1 =
start
*.robage 40 store
1 .tienum store (assuming that's the tie phase)
50 .tieloc store
1 .tieval store
stop

cond
*40 10 add *.robage =
start
1 .deltie store
[I]goto battle mode[/I]
stop

What'ya think?

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Hivebot communication
« Reply #2 on: January 28, 2006, 07:37:46 AM »
Hey, brilliant idea  :D

A bot going to hibernate could just tie on to the 'Hibernator blob' and fix. Then they can be woken up nearly instantaniously and can respond rapidly to a call to feed.
Also, If any one hibernating bot were attacked they could wake up the rest of the species.
And the bots could share nrg and even put one or two veggies in the 'Hibernator blob' to keep the hibernating bots from loosing too much nrg during hibernation and reduce the need for complex SG hibernation coding that avoids conditions.
Great! Thanks a lot for that!
Once we've got the hive location code sorted I'll try to code it.

Keep those ideas coming  :D This is exactly what I got you all involved for.


Any progress with Pray Species Henk?
« Last Edit: January 28, 2006, 09:59:24 AM by Elite »

Offline Old Henk

  • Bot Destroyer
  • ***
  • Posts: 229
    • View Profile
Hivebot communication
« Reply #3 on: January 28, 2006, 09:28:25 AM »
Not yet, to busy with annoying my brother and his girlfirend and beating 'em at Age of Empires. I'll get to it soon :)
« Last Edit: January 28, 2006, 09:28:38 AM by Henk »

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
Hivebot communication
« Reply #4 on: May 03, 2006, 11:10:54 PM »
Since comminicating with a series of in's and out's will take a lot of time (I estimate 3+ cycles per conversation?) it might be better to assign each command a bot might need to deal with to a particular in/out slot and value. Since this will mean multiple commands will be assigned to the same communication frequency, there should be a heirarchy of command importance. That is, the higher number command will overwrite the lower number command, but the lower level command will not overwrite the higher command. In addition to this, we want every drone that recieves the order to relay it to other drones. This can be done by copying the recieved value into it's own .out.

So, for example, a drone sees a conspec with 10 stored in in/out1. Suppose this is the hibernation command. It then copies that value into its own out1 and starts a 'countdown' until it goes to hibernate. It stops eating food, but it wanders around until that countdown expires so that other drones can see the command displayed.

When the keeper sees a drone that has not recieved a necessary message (which it can tell, based on the value it displays), it will approach and fire an info shot forcing the drone to look at the keeper. The drone then put's the keeper's command on display so that other drones who happen to see it will do the same.

Since this system requires a heirarchal command system, one of the following should happen:
1. The commands continue to escalate until hibernation, during which time they are set to zero.
2. There is a command to change from using frequency 1 to frequency 2  or 5 or etc. These cycle around infrequently enough that there arent any 'loops' in communication.
3. Drones periodically return to the hive to have their frequency changed. The hive gives the wraith instructions on when to return again. This isnt good because it is slow.

I suppose there are other ways to make this work, but I haven't thought of them.
« Last Edit: May 03, 2006, 11:11:11 PM by abyaly »
Lancre operated on the feudal system, which was to say, everyone feuded all
the time and handed on the fight to their descendants.
        -- (Terry Pratchett, Carpe Jugulum)

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Hivebot communication
« Reply #5 on: May 04, 2006, 11:42:55 AM »
It's actually a bunch quicker to tie to a friend then send a series of values into specific memory locations then break the tie when you have finished.
The other bot can then act on the information that you gave it.

I use a similar method in my Antbot 5 where the queen is able to program her offspring as well as hijacking workers from other queens of the same species
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
Hivebot communication
« Reply #6 on: May 04, 2006, 12:06:27 PM »
Quote from: PurpleYouko
It's actually a bunch quicker to tie to a friend then send a series of values into specific memory locations then break the tie when you have finished.
The other bot can then act on the information that you gave it.
It takes 1 cycle for a bot to recieve a message and then copy it into it's own in/out. It will then be visible to the next bot who sees him, who then uses 1 cycle to copy it. The vector bot I posted uses a system like this.

Even though the tie can send a higher volume of information faster, in/out can be used to spread simple information at very high speed.
Lancre operated on the feudal system, which was to say, everyone feuded all
the time and handed on the fight to their descendants.
        -- (Terry Pratchett, Carpe Jugulum)

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Hivebot communication
« Reply #7 on: May 04, 2006, 12:49:39 PM »
Quote from: abyaly
It takes 1 cycle for a bot to recieve a message and then copy it into it's own in/out. It will then be visible to the next bot who sees him, who then uses 1 cycle to copy it. The vector bot I posted uses a system like this.

Even though the tie can send a higher volume of information faster, in/out can be used to spread simple information at very high speed.
 That vector bot ate Una for breakfast

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Hivebot communication
« Reply #8 on: May 04, 2006, 12:50:41 PM »
Maybe a re-run of the leagues with all the new contestants is in order (*cough* PY *cough*).

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
Hivebot communication
« Reply #9 on: May 04, 2006, 01:04:03 PM »
Quote from: Elite
That vector bot ate Una for breakfast
Making it able to kill una was much harder than making it able to beat The One or the SG version of swarm. Had a rock/paper/scissors thing going for a while. Although Una 1 still rapes it >.>
« Last Edit: May 04, 2006, 01:05:44 PM by abyaly »
Lancre operated on the feudal system, which was to say, everyone feuded all
the time and handed on the fight to their descendants.
        -- (Terry Pratchett, Carpe Jugulum)

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Hivebot communication
« Reply #10 on: May 04, 2006, 01:08:57 PM »
Quote from: Numsgil
Maybe a re-run of the leagues with all the new contestants is in order (*cough* PY *cough*).
Not quite sure which version to actually run them in.
We seem to have a general movement toward 2.4 so it may be worthwhile to start the leagues over in that system and go from there.
Do the leagues actually work in 2.4 now?
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Hivebot communication
« Reply #11 on: May 04, 2006, 01:12:18 PM »
I think Eric's working on it (or is going to).

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Hivebot communication
« Reply #12 on: May 04, 2006, 01:17:03 PM »
Besides which I only run the F1 and F2 league.

We have others to run the short-bots and Multi-bots
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
Hivebot communication
« Reply #13 on: May 04, 2006, 01:22:29 PM »
Well bummer. The bot barely survives alone in 2.4
Lancre operated on the feudal system, which was to say, everyone feuded all
the time and handed on the fight to their descendants.
        -- (Terry Pratchett, Carpe Jugulum)

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Hivebot communication
« Reply #14 on: May 04, 2006, 01:28:55 PM »
We could always expand the league systems to run in both 2.3 and 2.4 as seperate systems.

I have to admit though that I would really like to see Darwinbots going in only one direction. (possibly two as I would like to see the VB version kept alive parallel with the C++ version)

This means that at some time we are all going to have to get together and decide which version to 'officially" endorse.

With the work that Eric has been putting into 2.4 lately it may well be that we will go that way. If we can just get the systems to be a little more compatible then it would be great.

Failing that we might just have to start over and design stuff to run in 2.4
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D