Author Topic: Horizontal Gene Transfer via Codule Swapping  (Read 2315 times)

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Horizontal Gene Transfer via Codule Swapping
« on: April 20, 2006, 03:56:05 PM »
Here's my (and Num thought of it too) brilliant idea  

Swapping codules around as a form of horizontal gene transfer, keeping the root DNA but swaping around codules like bacteria swap plasmids. You could use this either to:
  • Gain an entirely new piece of code from another bot (ie. a new antivirus code or a new trick that some other bots have evolved)
  • Use a different piece of code for a task one of your codules was already doing, temporarily 'deactivating' or discarding your codule that the new one replaces
Also, a new way of exchanging DNA. Like in/out except putting whole codules in there 'on display'.
Two new sysvars:
.outdna
.indna

These allow bots to display specified codules of DNA to other bots, and for other bots to save codules they want. This also gives them more choice about who they accept genes off (viruses don't: if you don't want it then tough - it's in your genome anyway). I like this idea. It's much 'safer' and less hassle than viruses

Just store the number of a codule into .outdna. If a bot wants it it will put the codule number that it wants to save to into .indna to save it to it's own genome

Here's a sample description of a bot that uses this method to trade codules:

1) Randomly display codules (not your root DNA) using your root DNA and store the codule number in .out1

*.codules rnd .outdna store

2) If you see a bot with more energy/kills/age than you then you might want to share some of their genetic success.

*.in1 .indna store

The new codule will overwrite the one you have in that codule slot and you can start using it immediately.

3) If you have a really cool codule that is completely new you might put 0 in .out1 and then recieving bots would save it into their next free space rather than overwriting an existing one
« Last Edit: April 21, 2006, 11:15:05 AM by Elite »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Horizontal Gene Transfer via Codule Swapping
« Reply #1 on: April 20, 2006, 04:19:12 PM »
I like it, but I think some form of physical contact should be necessary to transfer the DNA.

Either in the form of a shot (virus) or through ties.  We could offer both, though ties makes the most sense I think.

Then when you receive a new codule you can either place it where it wants to go in the codules array or pick a place for it.

The trick is to make the mechanisms allow:

1.  Implicit acceptance of the new codule.  Even viruses generally do not force themselves into a cell.  Rather, they trick the cell into accepting them in.

The reverse of this is denial of a new codule.

2.  Limit the spread of codules across species lines (but not prevent), since viruses generally are tailored to their hosts, and horizontal gene transfer is less common between different species of bacteria (but not unheard of).

3.  Allow the mechanisms to be overridden by a "selfish" gene to become a virus.

The idea I was toying with was a "conspec ID" that the bots set.  For instance, someone shooting a tie at you that knows your conspec ID will pass through your slime no problem.  And codules that know your conspec ID will be able to access your DNA.  Those that don't, can't get in.

If bots are allowed to change their conspec ID on a whim, this method would fulfill the three above.

Your idea also fulfills the three, though perhaps to a lesser extent on #2 and #3.

edit: and while I'm thinking of it:

If the receiver has a ployploid codule, you'd probably want to replace the one that's most syntactically similar to the incoming codule.