Author Topic: multibot theories  (Read 8840 times)

Offline Light

  • Bot Destroyer
  • ***
  • Posts: 245
    • View Profile
multibot theories
« Reply #15 on: September 25, 2005, 04:28:01 PM »
when you set sharefeeding to 90/10 they tend to try and kill each other and act quite strange

tiefeeding isn't out of the question, but you want to mantain the energy levels around the ring so each bot has equal energy, which sharenrg will do, it also wont kill the veg by accidentally sucking to much energy out of it, it will just generally be a lot simpler to implemtent.

It certainly is an interesting idea, I thought about it a while ago but never really found any time to have a go at it.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
multibot theories
« Reply #16 on: September 26, 2005, 09:09:24 AM »
Quote
Shit making a ring is not that easy somehow the angle direction always gets alternated :/.And somehow I still not understand how this works in Hexagonis.
...ah I see you did not use fixang but aimsx
[hint]When creating the ring structure try setting fixpos to 1. That way they won't drift around and screw up your shape before completing the ring. Reset it to zero when the bot goes MB or after some kind of timer[/hint]

Set your sharing to 50:50 and use a condition which looks at trefnrg and compares it to your own within 10%. Something like this.

cond
*.trefnrg *.nrg %!=
start
50 sharenrg store
stop
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Light

  • Bot Destroyer
  • ***
  • Posts: 245
    • View Profile
multibot theories
« Reply #17 on: September 26, 2005, 01:04:19 PM »
Here is how to form a simple ring round some veg :)
Code: [Select]
def count 50
def state 51

cond
  *.state 1 =
  *.count 20 <
start
  .count inc
stop

cond
  *.eye5 30 >
  *.refeye 0 =
  *.myeye *.refeye !=
  *.robage 20 >
start
  1 .tie store
  1 .fixpos store
  1 .state store
stop

cond
  *.count 2 =
start
  250 .aimsx store
  75 .repro store
stop

cond
  *.count 3 =
start
  314 .aimsx store
stop

cond
  *.robage 0 =
  *.eye5 70 >
start
  5 .tie store
  1 .fixpos store
  2 .state store
stop

cond
  *.robage 1 =
  *.state 2 =
start
 550 .aimsx store
stop

cond
  *.robage 2 =
  *.state 2 =
start
  75 .repro store
stop

cond
  *.robage 2 =
  *.state 2 =
  *.eye5 60 >
start
  10 .tie store
stop

cond
  *.robage 3 =
  *.state 2 =
start
  -314 .aimsx store
  20 .tie store
stop

cond
  *.robage 4 =
  *.state 2 =
start
  628 .aimsx store
  200 .fixlen store
stop

cond
*.nrg *.trefnrg !%=
*.multi 1 =
start
50 .sharenrg store
stop

end

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
multibot theories
« Reply #18 on: September 29, 2005, 07:01:23 PM »
It makes a nice ring, however has a high rate getting blocked etc

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
multibot theories
« Reply #19 on: September 30, 2005, 02:36:51 AM »
Maybe force them to clear the area if there's anything in front, either by feeding or shooting the other's dn. There's always oddball effects trying to form these, ocasionally they'll tie to plants or to other bots. The saddest is when they don't finish forming the mb and just sit there looking pathetic, a incomplete mb not doing anything to help itself.
« Last Edit: September 30, 2005, 02:37:30 AM by Endy »

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
multibot theories
« Reply #20 on: September 30, 2005, 11:44:40 PM »
Figured out the equations for forming the smallest size MB's with each bot tied to every other bot.

Bots=MaxTies + 1

Lines=(MaxTies^2 + MaxTies)/2

Basically it goes Point, Line, Triangle, Square, Pentagram...

If ten ties becomes possible you could make a massive 11 bot MB with some 55 total ties :wacko:

Checking out L-systems, interesting stuff basically describes how to make fractals following a simple repeted set of rules; I was thinking that a MB could be made according to these so it would slowly expand it's structure rather than all at once.

Something like:

Line > Triangle > Square
« Last Edit: October 01, 2005, 01:47:31 AM by Endy »

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
multibot theories
« Reply #21 on: October 09, 2005, 05:56:34 AM »
Here an bot that surrounds food sources.He is still a little bit buggy and does not work in 2.4
has a new search gene.He still need some genes for closing the ring and to produce spores(not connected children)

(I think next I will try out a bot that reproduces to make a long chain and then wraps it around anything he discovers, will call it fishing net)

name: niemand(when he is completed he will become fortress)

'search

cond
*.numties 0 =
*.multi 0 =
*.eye4 *.eye5 >
*.refeye *.myeye !=
start
100 *.eye4 sub  *.eye1 mult add
.sx inc
.sx inc
.sx inc
stop

cond
*.numties 0 =
*.multi 0 =
*.eye3 *.eye5 >
*.refeye *.myeye !=
start
100 *.eye3 sub  *.eye3 mult add
.sx inc
.sx inc
.sx inc
stop

cond
*.numties 0 =
*.multi 0 =
*.eye2 *.eye5 >
*.refeye *.myeye !=
start
100 *.eye2 sub  *.eye2 mult add
.sx inc
.sx inc
.sx inc
stop

cond
*.numties 0 =
*.multi 0 =
*.eye1 *.eye5 >
*.refeye *.myeye !=
start
100 *.eye1 sub  *.eye1 mult add
.sx inc
.sx inc
.sx inc
stop


cond
*.numties 0 =
*.multi 0 =
*.eye6 *.eye5 >
*.refeye *.myeye !=
start
100 *.eye6 sub  *.eye6 mult sub
.sx dec
.sx dec
.sx dec
stop

cond
*.numties 0 =
*.multi 0 =
*.eye7 *.eye5 >
*.refeye *.myeye !=
start
100 *.eye7 sub  *.eye7 mult sub
.sx dec
.sx dec
.sx dec
stop

cond
*.numties 0 =
*.multi 0 =
*.eye8 *.eye5 >
*.refeye *.myeye !=
start
100 *.eye8 sub  *.eye8 mult sub
.sx dec
.sx dec
.sx dec
stop

cond
*.numties 0 =
*.multi 0 =
*.eye8 *.eye5 >
*.refeye *.myeye !=
start
100 *.eye8 sub  *.eye8 mult sub
.sx dec
.sx dec
.sx dec
stop

cond
*.numties 0 =
*.multi 0 =
start
50 div .aimsx store
stop


'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
cond
*.numties 0 =
*.multi 0 =
*.refeye *.myeye =
*.eye5 30 >
start
314 .aimdx store
stop

cond
*885 12 >
*.numties 0 =
*.multi 0 =
1 *.fixpos =
start
0 .fixpos store
stop

'gen3
cond
*.vel 30 <
*.multi 0 =
*.numties 0 =
start
30 *.vel sub 2 div .up store
stop

'gen4
cond
*885 5 >
*.eye5 50 >
*.numties 0 =
*.multi 0 =
*.refeye 0 =
start
20 .tie store
20 .readtie store
0 .aimsx store
1 .fixpos store
stop

'gen5
cond
start
885 inc
stop

'gen6
cond
*100 0 =
*.nrg 4000 >
*.numties 0 >
*.numties 3 <
start
*66 .aimsx store
*66 50 add 66 store
stop

'gen7
cond
*100 1 <
*.eye9 20 >
*.eye8 10 <
*.multi 0 != or
*100 1 <
*.eye9 20 >
*.eye7 10 <
*.multi 0 !=
start
70 .repro store
100 inc
stop

'gen7
cond
*103 4 >
*66 314 >
*.numties 1 =
start
70 .repro store
stop


'gen8
cond
*66 1255 >
start
0 66 store
103 inc
stop

'gen9
cond
*.numties 2 =
start
314 aimsx store
20 .tie store
stop

cond
*.numties 1 =
*.refeye *.myeye =
*100 1 =
start
100 dec
stop

'gen10
cond
start
60 .sharenrg store
stop

'gen11
cond
*.eye5 20 >
*885 5 <
*885 1 >
*.refeye *.myeye =
multibot 0 =
start
10 .tie store
stop


end
« Last Edit: October 10, 2005, 04:40:11 PM by Welwordion »

Offline Ulciscor

  • Bot Destroyer
  • ***
  • Posts: 401
    • View Profile
multibot theories
« Reply #22 on: October 09, 2005, 07:46:48 AM »
Just to be pedantic, you have missed the 'cond' statement in Genes 4 and 9.
:D Ulciscor :D

I used to be indecisive, but now I'm not so sure.

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
multibot theories
« Reply #23 on: October 09, 2005, 12:34:02 PM »
0k now the text above is fully correct an I changed something in gen 6 conditions
and added a turn away from own kind gene.

I wanted to enable them to reproduce, so I wrote the following:

OLD  STUFF DELETED AND REPLACED BY THE FOLLOWING

cond
*67 0 =
start
2 rnd 67 store
stop

cond
*67 2 =
start
*102 .deltie store
102 inc
stop

cond
*.numties 0 =
*.multi 0 =
*67 2 =
start
67 dec
stop

cond
*102 30 >
start
0 102 store
stop
« Last Edit: October 09, 2005, 05:25:24 PM by Welwordion »

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
multibot theories
« Reply #24 on: October 10, 2005, 07:18:27 AM »
Ok a new idea for multibots:
As for now the main reason single bots are superier in combat is the higher maneuverability. To compensate this MB could have "tentacles" bots that are
tied with only one, flexibile tie to the corepart of the bot and perform a simple search pattern of backwards, forward rotation(rotating till you reach a certain angle
then the rotation value gets inversed (*-1))

Tentaclles would enable a multibot to fire with multiple bots at the same enemy foodsource.
(I already got a conept for a tentacle testbot in mind)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
multibot theories
« Reply #25 on: October 10, 2005, 09:24:07 AM »
Sounds like fun.  I'd like to see something like that in action.

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
multibot theories
« Reply #26 on: October 10, 2005, 03:34:03 PM »
oh heres my first testdesign, as I placed the old niemand into fortress,this bot took over the proud name niemand (maybe I will call him seastar or octopus ).

Moved him to the bestiary as octopus
« Last Edit: October 10, 2005, 05:05:20 PM by Welwordion »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
multibot theories
« Reply #27 on: October 10, 2005, 04:13:16 PM »
If fortress is done, go ahead and post him in the Beastiary, if you haven't do so yet.

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
multibot theories
« Reply #28 on: October 10, 2005, 04:54:51 PM »
Nah fortress is far from completed, I still could not figure out to let him aim outwards so he could defend himself, also the reproduction is still not worked out  
he fails to surround large algae collections, algae can not reproduce inside and
I need to insert some virus into the veggies so th will tie and sharefeed from their neighbour algae.

Well to make it short he is still one mess of unuseful prototype.

But see for yourself it s the bot 6 posts above  :P.
(note any reproduction gene was deleted from the code)

well most of the repro gains I tried involve these genes:

cond
.....(based on the activation conditions I tried out)
start
*102 .deltie store
102 inc
stop

cond
*102 30 >
start
0 102 store
stop

one problem is also I have to set back *100 to 0 to make him "fertile" again
I use that memspace to shut of reproduction mode

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
multibot theories
« Reply #29 on: October 10, 2005, 04:57:50 PM »
I have a real difficulty in running people's bots at the moment.

See, I only have internet at the library.  By tghe time I get home, I forget totally what I went home to do.  Same with coming to the library.  It's very distracting.