Author Topic: Rabidus v1.1 (F1)(Googlyeyesultra)-15.07.07  (Read 5549 times)

Offline googlyeyesultra

  • Bot Destroyer
  • ***
  • Posts: 109
    • View Profile
Rabidus v1.1 (F1)(Googlyeyesultra)-15.07.07
« on: July 14, 2007, 07:57:10 PM »
In my own personal runs, this one was able to beat the entire F1 league EXCEPT for Etch. Curse you, Etch! Some of 'em take a little while, though.

Code: [Select]
'Rabidus: A bot by googlyeyesultra.

cond
start
'Conspec, Self-Virus Protection, Set Eyewidth
*.myeye *.myshoot add 998 *.robage sgn 1 sub -1 mult mult store
65 999 *.robage sgn 1 sub -1 mult mult store
1221 .eye5width *.robage sgn 1 sub -1 mult mult store

'Targeting/Movement
*.refxpos *.refypos angle .setaim
*.eye5 sqr dup div
*997 *998 sub dup div mult mult store

*.refveldx *.veldx sub .dx
*.eye5 sqr dup div
*997 *998 sub dup div mult mult store

*.refxpos *.refypos dist 2 div *.refvelup add *.velup sub .up
*.eye5 sqr dup div
*997 *998 sub dup div mult mult store

'Sharefeed if multi
99 .sharenrg *.multi mult store
.sharewaste *.multi mult inc
stop

'Reproduce
cond
*.nrg 850 >
*.body 50 >=
start
100 .strbody store
49 .repro store
stop

'Conspec
cond
*.refeye *.refshoot add *997 !=
start
*.refeye *.refshoot add 997 store
stop

'Birthie cut
cond
*.robage 2 <
start
.tie *.robage -1 mult 1 add mult inc
.deltie inc
11 990 store
stop

'Spread out when born
cond
*.eye5 0 !=
*997 *998 =
*.robage 20 <
*.robage 2 >
start
*.refxpos *.refypos angle 628 add .setaim store
*.eye5 .up store
stop

'Shoot feed
cond
*.eye5 30 >
*997 *998 !=
*.refpoison *.refshell >=
start
-6 .shoot store
stop

cond
*.eye5 30 >
*997 *998 !=
*.refpoison *.refshell <
start
-1 .shoot store
stop

'Making venom
cond
*.nrg 300 >
*.body 40 >
*.nrg 2 div 100 75 *.venom sub >
start
75 *.venom sub .strvenom store
stop

'Firing venom
cond
*.eye5 30 >
*997 *998 !=
*997 0 !=
*.venom 25 >
*.robage 10 sub *990 >
start
.setaim .vloc store
*.aim .venval store
*.venom 25 sub rnd 25 add .shootval store
-3 .shoot store
*.robage 990 store
stop

'Deltie enemy ties/conspec ties
cond
*.numties 0 >
*.tiepres *996 !=
*.trefshoot *.trefeye add *998 = or
start
*.tiepres .deltie store
stop

'Tie
cond
*.eye5 30 >
*997 *998 !=
*.numties 0 =
start
999 rnd 996 store
*996 .tie store
stop

'Tiefeed/Counter leach
cond
*.numties 0 >
*.trefshoot *.trefeye add *998 !=
start
*996 .tienum store
*.tieval sgn .tieloc store
-1000 .tieval store
stop

'Body to Energy Conversion
cond
*.nrg 850 <
*.body 50 >
start
*.body 50 sub 100 ceil 10 mult .fdbody store
stop

'Energy to Body Conversion
cond
*.nrg 250 >
*.body 50 <
start
*.body 50 sub 100 ceil .strbody store
stop

'Waste Removal
cond
*.waste 100 >=
start
-4 .shoot store
*.waste .shootval store
stop

'Shoot Virii
cond
*.eye5 15 >
*.nrg 150 >
*.vtimer 1 =
start
50 .vshoot store
stop

'Make Virii
cond
*.vtimer 0 =
start
*.thisgene 1 add .mkvirus store
stop

'Virus
cond
65 *999 !=
start
*.thisgene .mkvirus store
*.myeye *.myshoot add 31999 mult 50 floor .vshoot store
.delgene dec
stop

'Chameleon genes
cond
*.in1 0 !=
*.in1 *.out1 !=
start
*.in1 .out1 store
stop

cond
*.in2 0 !=
*.in2 *.out2 !=
start
*.in2 .out2 store
stop

'Some various code defenses
cond
*.fixed 0 !=
start
0 .fixpos store
stop

cond
*.delgene 0 !=
start
0 .delgene store
stop

cond
*.shoot -2 =
start
0 .shoot store
stop

cond
*.mrepro 0 !=
start
0 .mrepro store
stop

cond
*.sexrepro 0 !=
start
0 .sexrepro store
stop

cond
*.repro 49 !=
*.repro 0 !=
start
0 .repro store
stop

'End of Program
end
« Last Edit: July 16, 2007, 02:33:38 PM by Jez »

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
Rabidus v1.1 (F1)(Googlyeyesultra)-15.07.07
« Reply #1 on: July 15, 2007, 02:07:44 AM »
That is really impressive
I need to make a new F2 bot now that Aura will be less than second place. I don't think I can make an F2 bot that kills Etch, though.

* those matches against aura are really long.
« Last Edit: July 15, 2007, 02:22:39 AM 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 googlyeyesultra

  • Bot Destroyer
  • ***
  • Posts: 109
    • View Profile
Rabidus v1.1 (F1)(Googlyeyesultra)-15.07.07
« Reply #2 on: July 15, 2007, 04:55:37 AM »
I still can't figure out how to beat Etch. The only improvement I've been able to make involves them spreading out a little more, so they end up clumping a lot less... Aside from duo-geneing it (SG + virus), anybody got any suggestions on how to make an upcoming Rabidus 1.2 far better?

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Rabidus v1.1 (F1)(Googlyeyesultra)-15.07.07
« Reply #3 on: July 15, 2007, 05:04:43 AM »
You could try some cooperative behavior.  Maybe have them swarm together to kill a tougher foe.  There hasn't been much cooperation in the league bots, so I think it's an avenue to explore.

Offline googlyeyesultra

  • Bot Destroyer
  • ***
  • Posts: 109
    • View Profile
Rabidus v1.1 (F1)(Googlyeyesultra)-15.07.07
« Reply #4 on: July 15, 2007, 06:09:53 AM »
I tried some very simple code (just a little modification of the swarming code in the wiki), but they tend to get close enough together so that they block each other's vision. I'm thinking about transmitting coordinates of food and enemy bots through .out4 and .out5, so that anything without a target would look for coordinates in other nearby Rabiduses (Rabidii?). I still need to work out the specifics, though, and bugtest it.

Offline googlyeyesultra

  • Bot Destroyer
  • ***
  • Posts: 109
    • View Profile
Rabidus v1.1 (F1)(Googlyeyesultra)-15.07.07
« Reply #5 on: July 15, 2007, 08:17:15 AM »
Dopplepost!

I figured out why Aura vs Rabidus takes so long. Apparently, Aura has no eye commands, no shoot commands, or really any other refvar that I could use to distinguish it from a veggie. So, my bot assumes it's a harmless little plant and doesn't use things like venom on it.

Well, at least I made my conspec a bit more secure. Now it adds 3 values instead of two (I'll wait until I can get a fairly different version before I post a v. 1.2)

Offline Trafalgar

  • Bot Destroyer
  • ***
  • Posts: 122
    • View Profile
Rabidus v1.1 (F1)(Googlyeyesultra)-15.07.07
« Reply #6 on: July 15, 2007, 09:30:20 AM »
Quote from: googlyeyesultra
Dopplepost!

I figured out why Aura vs Rabidus takes so long. Apparently, Aura has no eye commands, no shoot commands, or really any other refvar that I could use to distinguish it from a veggie. So, my bot assumes it's a harmless little plant and doesn't use things like venom on it.

Well, at least I made my conspec a bit more secure. Now it adds 3 values instead of two (I'll wait until I can get a fairly different version before I post a v. 1.2)

My bot (not yet posted - I'm waiting for the very long matches with Etch to finish) had the same problem for a while. I fixed it by making it additionally check refshell/trefshell. Aura uses (lots of) shell, so that'll point it out as a non-veggie for you.

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
Rabidus v1.1 (F1)(Googlyeyesultra)-15.07.07
« Reply #7 on: July 15, 2007, 11:45:25 AM »
Someone noticed ^^. It makes me happy that my actions have a strong effect on other people's approach to league bots
I think I can render that particular type of venom useless on the next Aura by implementing the navigation system I wanted to use originally, but was too lazy to  figure the math out for.

Is Etch's lack of strong conspec recognition and viral defense coming back to bite him?

My experiments with social behavior have usually been detrimental to league performance. I would like to see one that is effective so that I can steal it. *Oh, I just remembered that Excalibur 1.12 has a really good cooperative behavior, but that a different thing from what y'all were talking about, I think.
« Last Edit: July 15, 2007, 12:00:10 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 Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Rabidus v1.1 (F1)(Googlyeyesultra)-15.07.07
« Reply #8 on: July 15, 2007, 03:28:58 PM »
Quote from: abyaly
Someone noticed ^^.

I tried,    it's hard enough for me to decipher 1G anyway though without the particular brand of mysticism you work on them as well!  

Quote from: abyaly
My experiments with social behavior have usually been detrimental to league performance. I would like to see one that is effective so that I can steal it.

I have noticed in the past, pre Aura days, how to much group behaviour is detrimental. Using the .out method to transmit target location I found it best if only the closest bots responded. Spiral might be better if it didn't work in such large groups for instance.
Small groups (max that can get to veg before veg disappears maybe) did seem to have a positive affect, at least on the bots I tested it on.
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
Rabidus v1.1 (F1)(Googlyeyesultra)-15.07.07
« Reply #9 on: July 15, 2007, 05:49:24 PM »
If your bots went together in packs of maybe, say, 3, and acted cohesively as a group, I imagine it would be helpful in overcoming harder foes.  Especially if you made your bots reproduce more and at lower energy.  Shots coming from 3 directions instead of just 1 has to be more effective against a harder foe, right?

Offline Trafalgar

  • Bot Destroyer
  • ***
  • Posts: 122
    • View Profile
Rabidus v1.1 (F1)(Googlyeyesultra)-15.07.07
« Reply #10 on: July 15, 2007, 06:42:30 PM »
Etch seems kind of cooperative, though it may just be that with so incredibly many bots flying around, it's hard not to wind up near several at the same time.

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
Rabidus v1.1 (F1)(Googlyeyesultra)-15.07.07
« Reply #11 on: July 15, 2007, 07:35:24 PM »
Actually, spiral's behavior was a result of experiments I did while writing Etch. Even if I only made the closest bots respond, it was still detrimental, although it may have been because of the type of bot it is.
So I think swarming is bad for super light weight bots, where stray -6 shots from large bots may kill off more bots than just the one that was being shot at. Swarming behavior is also bad if you use one giant eye, since close proximity to allies makes you unable to see enemies from far away - I think Una 3 demonstrated (before it broke) just how important it is to strike first. So in order to take advantage of swarming, I think you first need to set up  search mechanism that can be compared to the big eye without that one drawback.

Jez, do you think you can move most of this thread somewhere? It seems we've derailed a bit from talking about rabidus.

Quote
I tried, tongue.gif it's hard enough for me to decipher 1G anyway though without the particular brand of mysticism you work on them as well! clap.gif
Eh? I try and make mine as readable as I can. I think the only mystic things about Aura is how I butchered the conspec ID and the stack math that goes into its navigation.
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 googlyeyesultra

  • Bot Destroyer
  • ***
  • Posts: 109
    • View Profile
Rabidus v1.1 (F1)(Googlyeyesultra)-15.07.07
« Reply #12 on: July 15, 2007, 08:53:58 PM »
I've cobbled together a little buggy cooperation code, but it honestly makes the bot buggier. If you want to see it, just copy and paste it into rabidus, replacing the section labeled "Spread out later".

Code: [Select]
'Spread out later
cond
*.eye5 0 !=
*997 *998 =
*.robage 20 >=
*.numties 0 =
*.robage 30 sub *.out3 >
*.out4 *.out5 dist 0 = or
start
*.refxpos *.refypos angle 628 add .setaim store
*.eye5 2 div .up store
stop

'Communicate locations
cond
*.eye5 0 >
*997 *998 !=
start
*.robage .out3 store
*.refxpos .out4 store
*.refypos .out5 store
*.robage 989 store
stop

'Recieve locations
cond
*.eye5 0 >
*998 *997 =
*.in4 0 !=
*.in5 0 !=
*.in4 *.out4 !=
*.in5 *.out5 !=
start
*.in3 .out3 store
*.in4 .out4 store
*.in5 .out5 store
*.robage 989 store
stop

'Travel to location
cond
*.out4 0 !=
*.out5 0 !=
*998 *997 =
*.robage 30 sub *.out3 <
*.numties 0 =
*.out4 *.out5 add *.refxpos *.refypos add !=
start
*.out4 *.out5 angle .setaim store
*.out4 *.out5 dist 2 div *.velup sub .up store
*.veldx -1 mult .dx store
stop

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Rabidus v1.1 (F1)(Googlyeyesultra)-15.07.07
« Reply #13 on: July 16, 2007, 02:47:12 PM »
Quote from: abyaly
Jez, do you think you can move most of this thread somewhere? It seems we've derailed a bit from talking about rabidus.

Can't seperate posts in topic AFAIK so have moved this thread to bot tavern and re-entered bot in starting gate. If you feel like posting your congrats again in the new thread I'm sure Googlyeye won't mind!

Quote from: abyaly
Eh? I try and make mine as readable as I can. I think the only mystic things about Aura is how I butchered the conspec ID and the stack math that goes into its navigation.

Just goes to show how good I am at deciphering 1G bots I guess!
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