Darwinbots Forum

Code center => Darwinbots3 => Topic started by: spike43884 on April 04, 2015, 08:17:27 AM

Title: Viruses (Re: Programming task (DNA editor))
Post by: spike43884 on April 04, 2015, 08:17:27 AM
I have some ideas for projects in Sunweaver if you aren't sick of it yet (things like static code analysis to find sections of DNA that don't do anything and remove them when executing the code to make it faster) .  Or if you want something more adventurous I might have some ideas for things in other modules.  At the easier side it's writing tests to expose bugs in things I'm pretty sure have bugs in them, and then trying to fix them.  At the more extreme end it's things like integrating Yeppp! (http://www.yeppp.info/) in to the math library and seeing what sort of performance gains that gives.
You can't remove static code. Your going to artificalise it by doing that.
Static code might be there and not be static in a few cycles from a mere little mutation. Think of the 2nd generation of wrinkly pea's and round pea's.
Title: Re: Viruses (Re: Programming task (DNA editor))
Post by: Numsgil on April 04, 2015, 02:30:26 PM
It's just for performance and to help people analyze bots.  The "real" DNA is kept around for things like reproduction.
Title: Re: Viruses (Re: Programming task (DNA editor))
Post by: spike43884 on April 05, 2015, 08:34:45 AM
It's just for performance and to help people analyze bots.  The "real" DNA is kept around for things like reproduction.

Well considering your identifying the null chunks of code, you could always make it skip those null chunks (but keep them in storage) until a mutation, virus or reproduction event happens.

Also could you make virus's a bit cheaper in DB3?
Title: Re: Viruses (Re: Programming task (DNA editor))
Post by: Numsgil on April 05, 2015, 02:05:24 PM
Also could you make virus's a bit cheaper in DB3?

Cheaper in what way?
Title: Re: Viruses (Re: Programming task (DNA editor))
Post by: spike43884 on April 06, 2015, 06:45:02 AM
Also could you make virus's a bit cheaper in DB3?

Cheaper in what way?
NRG-wise, but possibly to stop them becoming to powerful make copying slightly slower. Generally virus's aren't to costly to the cell (As they want to really reproduce before the cell is out of energy) but take a bit of time (on a biological time-scale) to actually explode the cell...

Possibly also a limit to the maximum number of viruses your individual bot can contain depending on its body, otherwise it explodes.
Title: Re: Viruses (Re: Programming task (DNA editor))
Post by: Panda on April 06, 2015, 07:31:46 AM
The DarwinBots2 "virus" wasn't particularly virus like; it was simply a way to transfer a gene using a shot, which inserted the gene into another robot.

The cost of a "virus" (if DB3 using the same idea as in DB2) will probably a community decision, depending on how powerful the concept is.
Title: Re: Viruses (Re: Programming task (DNA editor))
Post by: Numsgil on April 06, 2015, 02:03:42 PM
I'm not really sure how I want to handle viruses in DB3 just yet.  A lot of it I won't know until I have bots in the simulation and I'm happy with how they physically work.  Either something like shots, but more bound to floating around in the fluid, and bots are vulnerable to them when they're pinocytosis-ing, or larger bot-like structures that bots are vulnerable to when they phagocytosis-ing.
Title: Re: Viruses (Re: Programming task (DNA editor))
Post by: Peter on April 06, 2015, 03:22:48 PM
I'm not sure if I want viruses. Genes running around can mess up stuff.
Title: Re: Viruses (Re: Programming task (DNA editor))
Post by: Panda on April 07, 2015, 01:55:00 PM
I think viruses were overpowered. Just compiled a quick list with their problems:
Title: Re: Viruses (Re: Programming task (DNA editor))
Post by: Numsgil on April 07, 2015, 02:04:44 PM
In terms of how they work in the bot, I think they'd be separate chromosomes.  That is, their code would be isolated from the rest of the genome and the results of all chromosomes' stores would get combined in some way that doesn't favor plurality.  Something like a simple max.  That's the same mechanism that I want to use to do diploid, so we can mimic the lifecycles of some fungi that have haploid and diploid alternating generations.  A diploid cell would have two "brains" controlling it, and dominant/recessive genes work just by how large of numbers they're storing to sysvars.  An infected cell would likewise be controlled by multiple programs, but the programs are largely ignorant of each other and can't directly interfere with each other.
Title: Re: Viruses (Re: Programming task (DNA editor))
Post by: Panda on April 07, 2015, 02:12:00 PM
I like the idea of bots "voting" on stores.

What sort of protection could bots have against viruses, other than a more "artificial" protection?
Title: Re: Viruses (Re: Programming task (DNA editor))
Post by: Numsgil on April 07, 2015, 02:36:54 PM
I like the idea of bots "voting" on stores.

Some sort of majority rule sounds good at first, but it gets in to situations where each DNA strand tries to red queen race the others to have the majority.  Meaning lots and lots of duplicated DNA running.  That's not something that I want to encourage for performance reasons.  So I think the voting structure needs to be something you can't ballot stuff.  Taking the max is the best I've come up with so far.

Quote
What sort of protection could bots have against viruses, other than a more "artificial" protection?

In real cells once you're infected you're infected.  Individual cells don't really have internal defense mechanisms against viruses except suicide.  But viruses generally are not infectious across large ranges of animals, because they can't really force themselves in to a cell.  The cell has to allow them in.  Sort of vampire rules.  There's nothing really similar in DB2 but DB3's fluid model should allow for more interesting things around sending chemical signals and selectively bringing some things in to bots.  Once we have the mechanics of that figured out, viruses which can mimic that should hopefully be easier.
Title: Re: Viruses (Re: Programming task (DNA editor))
Post by: Panda on April 07, 2015, 05:31:59 PM
I like the idea of bots "voting" on stores.

Some sort of majority rule sounds good at first, but it gets in to situations where each DNA strand tries to red queen race the others to have the majority.  Meaning lots and lots of duplicated DNA running.  That's not something that I want to encourage for performance reasons.  So I think the voting structure needs to be something you can't ballot stuff.  Taking the max is the best I've come up with so far.

What do you mean by taking the max? The maximum value to be stored?
Title: Re: Viruses (Re: Programming task (DNA editor))
Post by: Numsgil on April 07, 2015, 05:34:17 PM
Yeah.  So if one chromosome wants to do 10 .up and the other wants to do 100 .up, the 100 .up wins.

This is very roughly how real dominant/recessive genes work.  The dominant gene is doing something, and the recessive gene isn't.  So if you have both, doing something wins.  If you have just recessive, the thing doesn't get done and what you get is the absence of the dominant gene.
Title: Re: Viruses (Re: Programming task (DNA editor))
Post by: Panda on April 07, 2015, 06:13:07 PM
I don't understand how all of the DB3 processes are going to work.

Is there a location where all of the decisions made so far are/the options that there is? I suppose this sort of resource would be really difficult to keep up to date (if it was a wiki page) so I'm just going to read through everything in the forums.
Title: Re: Viruses (Re: Programming task (DNA editor))
Post by: Numsgil on April 07, 2015, 07:45:42 PM
For a while I was documenting things on the forum and the wiki but like you say it's hard to keep up to date.  It's also one thing to theorycraft something; quite another to actually implement it and see how it works in practice.  A lot of times I'll completely change my mind about something once I start building it and see how it's going to work in practice.  And the stuff around fluid is a pretty recent addition, and has a lot of subtle implications in all sorts of things.

I like talking things through, of course, but I don't really have a design doc I can point to for anything really.
Title: Re: Viruses (Re: Programming task (DNA editor))
Post by: spike43884 on April 08, 2015, 05:14:25 AM
Well, 1stly, we can be more realistic and have viruses explode the bot at a certain no. of viruses, as the bots surface is made up of those 'panels'
We could also give each bot species a specific protein pattern (aka code) on the outside of them (of course which would change SLIGHTLY when they reproduce) then we'd be identifying things like cells, and viruses (as viruses have a protein pattern as well) much more realistically, instead of looking at these imaginary "eyes". This means bots with very well programmed DNA (which has the capability to 'learn') could identify one type of virus, and build immunity to it...We could then have viruses not costing virtually anything to create, but then the viruses actually store some NRG within them, then the higher the stored NRG within them the longer they can last outside of a bot (This would create the decay rate for virus's quickly...)


Also, The idea of a petition is nice panda but remember the community is only about 10 of us. I've played minor flash games which get more plays in a week, and those flash games show up on page 50 of google, not page 1...So a petition isn't nessisarily going to give us a good amount of data...We need to dicuss it, to gain qualitative data. Unless nums sends out some sort of questionnaire to all his google collegues