Author Topic: New virus?  (Read 4787 times)

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
New virus?
« on: December 10, 2007, 05:22:07 PM »
I had a surge of virus infections in Alga minimalis this morning. Since the internet mode is supposedly not working, then I could not get it from some other sim. The virus is absolutely rampant, it reached over 300 copies in Alga and it killed off all of bots that were in my sim (Flypaper, Lionfish, Anemone and others).

I am just curious whether this virus appeared on its own or was designed by someone.  Here is a representative copy:

start
 *.thisgene 335 *.tie sgn 1 sub abs mult inc
 *.nrg 100 div 338 *.vtimer sgn 1 sub abs mult store
 0 7 *.in3 sgn 1 sub abs mult store
 stop
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
New virus?
« Reply #1 on: December 10, 2007, 05:24:54 PM »
That definately looks artificial.  No idea who the culprit is though

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
New virus?
« Reply #2 on: December 10, 2007, 05:33:56 PM »
Heh, there's a chance it might be one of mine, the coding looks slightly familiar and there's loads out there.

If it is though, it's mutated beyond my recognition. That third line looks totally mulched.

EDIT: Started up IM, and the first thing that comes in is an enormous clump of infected alga from shvarz. Damn, those things are nasty. I shudder to think what else is out there, especially with mutated strains and such. Looks like some sort of antivirus is mandatory from now on:

cond
*.mkvirus 0 !=
start
*.mkvirus .delgene store
stop
« Last Edit: December 10, 2007, 06:06:09 PM by Elite »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
New virus?
« Reply #3 on: December 10, 2007, 07:52:08 PM »
The third line looks like it clears out one of the early sysvars, probably .shoot.  I'll bet there was some "don't attack me" conspec recognition short circuit in it, but it mutated out to attack the originator.  Reminds me of some sort of scifi apocalypse.  The bio-weapon engineered to eliminate everyone of a different race from you mutates to attack you too, and everyone dies

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
New virus?
« Reply #4 on: December 10, 2007, 08:15:29 PM »
That's from an older Lionfish 5, totally. I see only two mutations. *.tie was *.vtimer and inc, store. I tried several virus ideas one week ago and dropped that one. It's bugged also, as it should have had .out3 instead of .in3.

But, well, it has spread.  

That's actually why I dropped it for the final LF5. Uncontrolled virus are a pest, even worse if they include the .mkvirus and .vshoot.  

Current LF5 looks like this:

Code: [Select]
cond
*.robage 2 >
start
50 .repro *.body 100 sub sgn 0 floor mult *.out3 *.myeye sub sgn abs mult store
10 .strbody *.nrg 500 sub sgn 0 floor mult *.out3 *.myeye sub sgn abs mult store
*.thisgene 1 add .delgene *.out3 *.myeye sub sgn abs mult store
*.thisgene .delgene *.thisgene 3 sub sgn 0 floor mult 1 rnd mult store
stop

I dunno if there are any still around.
« Last Edit: December 10, 2007, 08:19:41 PM by MacadamiaNuts »
Sometimes you win, and sometimes you lose...

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
New virus?
« Reply #5 on: December 20, 2007, 02:39:04 PM »
This virus has been mutating and spreading more and more. Now the most prevalent form has 49 commands. But I sometimes see 9 or 12-command viruses coming into bots, but I can't find them in the DNA.  Instead, I find normal genes duplicated. In my view this is just an amazing parallel to real viruses and gene transfer. But I wonder how it happens.  Anyone cares enough to explain it to me?

Here's an example:
Mutation log:
Quote
Infected with virus of length  9 during cycle  1588647
Infected with virus of length  12 during cycle  1588643
Infected with virus of length  12 during cycle  1588591
Infected with virus of length  12 during cycle  1588523
Infected with virus of length  49 during cycle  1588200
Infected with virus of length  12 during cycle  1588168
Infected with virus of length  12 during cycle  1588030
Infected with virus of length  49 during cycle  1587914
Infected with virus of length  49 during cycle  1587776
Infected with virus of length  49 during cycle  1587248
Infected with virus of length  49 during cycle  1587096
Infected with virus of length  49 during cycle  1587013
Infected with virus of length  49 during cycle  1586772
Copy Error changed value of flow command from start to cond at position 48 during cycle 1583980

DNA:
Quote
cond
 *.thisgene 1 >
 *.out3 *.myeye !=
 or
 *.robage 20 >
 *.vtimer 0 =
 start
 *.thisgene .mkvirus store
 100 .vShoot store
 *.thisgene 1 add .delgene store
 *.thisgene 1 sub 340 1 over mult store
 *.thisgene 340 *.out3 *.myeye 1 floor sub over abs 1 sub abs mult store
 stop

''''''''''''''''''''''''Gene  1: Last 'stop' at position  49''''''''''''''''''''''',

 cond
 *.robage 0 =
 start
 .tie inc
 stop

''''''''''''''''''''''''Gene  2: Last 'stop' at position  57''''''''''''''''''''''',

 cond
 *.robage 1 =
 start
 .deltie inc
 stop

''''''''''''''''''''''''Gene  3: Last 'stop' at position  65''''''''''''''''''''''',

 cond
 *.nrg 1000 <
 start
 10 .fdbody store
 stop

''''''''''''''''''''''''Gene  4: Last 'stop' at position  74''''''''''''''''''''''',

 cond
 *.nrg 10000 >
 start
 20 .repro store
 stop

''''''''''''''''''''''''Gene  5: Last 'stop' at position  83''''''''''''''''''''''',

 cond
 *.thisgene 1 >
 *.out3 *.myeye !=
 or
 *.robage 20 >
 *.vtimer 0 =
 start
 *.thisgene .mkvirus store
 100 .vShoot store
 *.thisgene 1 add .delgene store
 *.thisgene 1 sub 340 1 over mult store
 *.thisgene 340 *.out3 *.myeye 1 floor sub over abs 1 sub abs mult store
 stop

''''''''''''''''''''''''Gene  6: Last 'stop' at position  132''''''''''''''''''''''',

 cond
 *.thisgene 1 >
 *.out3 *.myeye !=
 or
 *.robage 20 >
 *.vtimer 0 =
 start
 *.thisgene .mkvirus store
 100 .vShoot store
 *.thisgene 1 add .delgene store
 *.thisgene 1 sub 340 1 over mult store
 *.thisgene 340 *.out3 *.myeye 1 floor sub over abs 1 sub abs mult store
 stop

''''''''''''''''''''''''Gene  7: Last 'stop' at position  181''''''''''''''''''''''',

 cond
 *.thisgene 1 >
 *.out3 *.myeye !=
 or
 *.robage 20 >
 *.vtimer 0 =
 start
 *.thisgene .mkvirus store
 100 .vShoot store
 *.thisgene 1 add .delgene store
 *.thisgene 1 sub 340 1 over mult store
 *.thisgene 340 *.out3 *.myeye 1 floor sub over abs 1 sub abs mult store
 stop

''''''''''''''''''''''''Gene  8: Last 'stop' at position  230''''''''''''''''''''''',

 cond
 *.robage 1000 >
 *.shell 10000 <
 cond
 1 .mkshell store
 stop

''''''''''''''''''''''''Gene  10: Last 'stop' at position  242''''''''''''''''''''''',

 cond
 *.robage 1000 >
 *.shell 10000 <
 cond
 1 .mkshell store
 stop

''''''''''''''''''''''''Gene  12: Last 'stop' at position  254''''''''''''''''''''''',

 cond
 *.nrg 11000 >
 start
 -2 .shoot store
 100 .shootval store
 200 .aimright store
 stop

''''''''''''''''''''''''Gene  13: Last 'stop' at position  269''''''''''''''''''''''',

 cond
 *.robage 1000 >
 *.shell 10000 <
 cond
 1 .mkshell store
 stop

''''''''''''''''''''''''Gene  15: Last 'stop' at position  281''''''''''''''''''''''',

 cond
 *.thisgene 1 >
 *.out3 *.myeye !=
 or
 *.robage 20 >
 *.vtimer 0 =
 start
 *.thisgene .mkvirus store
 100 .vShoot store
 *.thisgene 1 add .delgene store
 *.thisgene 1 sub 340 1 over mult store
 *.thisgene 340 *.out3 *.myeye 1 floor sub over abs 1 sub abs mult store
 stop

''''''''''''''''''''''''Gene  16: Last 'stop' at position  330''''''''''''''''''''''',

 cond
 *.thisgene 1 >
 *.out3 *.myeye !=
 or
 *.robage 20 >
 *.vtimer 0 =
 start
 *.thisgene .mkvirus store
 100 .vShoot store
 *.thisgene 1 add .delgene store
 *.thisgene 1 sub 340 1 over mult store
 *.thisgene 340 *.out3 *.myeye 1 floor sub over abs 1 sub abs mult store
 stop

''''''''''''''''''''''''Gene  17: Last 'stop' at position  379''''''''''''''''''''''',

 cond
 *.robage 1000 >
 *.shell 10000 <
 cond
 1 .mkshell store
 stop

''''''''''''''''''''''''Gene  19: Last 'stop' at position  391''''''''''''''''''''''',

 cond
 *.nrg 3000 >
 *.robage 30 >
 start
 10 .strbody store
 stop

''''''''''''''''''''''''Gene  20: Last 'stop' at position  403''''''''''''''''''''''',

 cond
 *.nrg 3000 >
 *.robage 30 >
 start
 10 .strbody store
 stop

''''''''''''''''''''''''Gene  21: Last 'stop' at position  415''''''''''''''''''''''',

 cond
 *.thisgene 1 >
 *.out3 *.myeye !=
 or
 *.robage 20 >
 *.vtimer 0 =
 start
 *.thisgene .mkvirus store
 100 .vShoot store
 *.thisgene 1 add .delgene store
 *.thisgene 1 sub 340 1 over mult store
 *.thisgene 340 *.out3 *.myeye 1 floor sub over abs 1 sub abs mult store
 stop

''''''''''''''''''''''''Gene  22: Last 'stop' at position  464''''''''''''''''''''''',

 cond
 *.robage 30 <
 start
 30 .up store
 stop

''''''''''''''''''''''''Gene  23: Last 'stop' at position  473''''''''''''''''''''''',

 cond
 *.robage 30 =
 start
 300 rnd .aimright store
 stop

''''''''''''''''''''''''Gene  24: Last 'stop' at position  483''''''''''''''''''''''',

 cond
 *.robage 1000 >
 *.poison 200 <
 start
 1 .mkpoison store
 stop

''''''''''''''''''''''''Gene  25: Last 'stop' at position  495''''''''''''''''''''''',

 cond
 *.nrg 3000 >
 *.robage 30 >
 start
 10 .strbody store
 stop

''''''''''''''''''''''''Gene  26: Last 'stop' at position  507''''''''''''''''''''''',

 cond
 *.nrg 1000 <
 start
 10 .fdbody store
 stop

''''''''''''''''''''''''Gene  27: Last 'stop' at position  516''''''''''''''''''''''',
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
New virus?
« Reply #6 on: December 20, 2007, 03:02:41 PM »
What I think is happening with the small 12 bp viruses is that a virus tries to make itself in to a virus, and another virus hits it in the same cycle.  The virus making target gets pushed to another hapless gene.

Viruses are one of my favorite aspects of Darwinbots.  They really do feel like real viruses.

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
New virus?
« Reply #7 on: December 20, 2007, 03:33:44 PM »
Meh. Another mutation of a LF6 beta. I'm sorry I seem to have introduced many different virus as I was doing tweaks and tests. Since they can be carried by any host, their chance of survival is at least the chance of their best host.

I noticed the wrong gene transfer too. I think it's related with differences on how .thisgene and .mkvirus understand gene count. That was how nasty plant inherited the whole LF3 DNA, back when LF was one-gene.
Sometimes you win, and sometimes you lose...

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
New virus?
« Reply #8 on: December 20, 2007, 04:54:15 PM »
Cool!

What about this virus:
Quote
0 cond
 start
 *.pleas 0 >
 *.myeye 0 =
 50 .repro store
 314 .aimleft store
 *.out3 *.myeye !=
 *.robage 1 >
 and
 *.myeye 0 =
 or
 *.thisgene 1 add .delgene store
 *.thisgene 1 sub 340 1 rnd mult store
 *.out3 *.myeye =
 *.out3 0 !=
 and
 *.thisgene 1 >
 and
 *.thisgene .delgene store
 *.vtimer 0 =
 *.thisgene .mkvirus store
 100 .vShoot store
 stop
It deleted bot's own DNA and causes the infected bot to go cancerous by forcing it to divide without limitations. Who made this beast?
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
New virus?
« Reply #9 on: December 20, 2007, 07:26:32 PM »
Sometimes you win, and sometimes you lose...

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
New virus?
« Reply #10 on: December 20, 2007, 08:10:13 PM »
Quote
What I think is happening with the small 12 bp viruses is that a virus tries to make itself in to a virus, and another virus hits it in the same cycle. The virus making target gets pushed to another hapless gene.

Yep, you can also delgene a previous gene to throw it off. Kinda buggy, be better if virus size was factored into cost/shot distance, when the actual virus was shot out istead.