Code center > Specialization, Metabolism, Digestions and Env Grid
Darwinbots enzyme system
Carlo:
--- Quote ---What we came up with was either a use it or lose it kind of specialization, where omnivores in a meat free environment, over time, tend to lose tha ability to digest meat as the enzymes, which aren't important anymore, are lost.
-Or- a system where specializing in A causes a despecialization in B. This is how most games deal with class speciation.
--- End quote ---
So, what's wrong in the system with an array? You have an array of values, with the first stating the ability to digest element x, the second to digest element y, etc. The total sum of the array (better: of the square of the values) has a fixed cap.
This way, you'd force specialization: every unused ability would be rapidly lost since mutations would favour robots with higher values for the used abilities.
But I still don't understand how do you expect different kinds of bots to have different composition (say, cellulose or proteins or fat), so that they can be methabolized in different way by predators.
Numsgil:
--- Quote ---But I still don't understand how do you expect different kinds of bots to have different composition (say, cellulose or proteins or fat), so that they can be methabolized in different way by predators.
--- End quote ---
Currently bots are made up of body and nrg. We'd subdivide body into muscle and fat (fat stores nrg, muscle makes the bot stronger). There'd be animal fat and plant fat (ie: cellulose). I don't remember how we decided, but plants are allowed to produce animal fat, and animals are allowed to produce cellulose, but there are incentives for bots to produce what is best for their given situation.
That gives 4 basic bot substanes. Then you add substances that occur in the grid, and that bots can use for either production of stuff or producing energy. For instance, elemental sulfur can be combined with water to produce hydrogen sulfide and nrg. Wether its sulfur or we call it glimglam 96 doesn't matter. For producing stuff, we would have something like silicone -> shell.
Then things like -1 shots feed on nrg, while -6 shots feed on a random sample of the opposing bot, say, returning mostly indigestable shell if the shot couldn't break through the shell, or returniong 40% fat and 55% muscle from a bot that's roughly the same percentages.
Carlo:
--- Quote ---Carlo,
if we follow your logic, then limiting bots only to DNA commands that we give them is also not good. From this point of view bots should be able to create their own DNA commands, because re-arranging DNA commands is "optimization, not evolution".
--- End quote ---
The system you outlined in your post (with carbs doing this, fats doing that) and only the few reactions needed to obtain just one or the other, well, seemed to me really far from being open ended. DNAs are programs, you can make whatever you want with them: even use them to calculate greatest common divisors, or sorting an array.
A suggestion. Why don't you use, instead of fats, carbs, etc., the dna sequence itself? Say that enzymes act on the dna: for example, that they're able to split the dna sequence in some points. Say that an enzyme which fits a certain dna portion, is able to delete it from the dna, leaving it splitted in two parts.
For example:
you have the dna:
cond
start
10 .up store
stop
cond
*.eye5 0 >
start
-1 .shoot store
stop
end
and the enzyme: *.eye5 0 >
what you get is
cond start 10 .up store stop cond
and
start -1 .shoot store stop end
You can state that the smaller the blocks enzymes can mince, the more energy a robot can take from his prey's dna. Or that the energy is proportional to the length of the remaining ends, and then you can repeat on these the enzymes attack, until you can't split anymore. The rest would be waste? This way you'd have also that longer dnas provide more energy, and that there are many different ways of taking energy from a dna. Vegs would provide little energy, as they have simple dnas.
The advantage is that, this way, you'd tie together enzymes and dna structure, and then evolution of dna, at the same time putting on it the constraint of functionality.
I mean:
predator has an enzyme specialized in a portion of dna; this identifies the prey in a natural way in particular species; prey has an advantage in evolving to change that portion of dna; at the same time, that portion provides a functionality, so it can't change it freely. It may have to choose between becoming undigestable and conserving a particular feature.
Carlo:
--- Quote ---Currently bots are made up of body and nrg. We'd subdivide body into muscle and fat (fat stores nrg, muscle makes the bot stronger). There'd be animal fat and plant fat (ie: cellulose). I don't remember how we decided, but plants are allowed to produce animal fat, and animals are allowed to produce cellulose, but there are incentives for bots to produce what is best for their given situation.
That gives 4 basic bot substanes. Then you add substances that occur in the grid, and that bots can use for either production of stuff or producing energy. For instance, elemental sulfur can be combined with water to produce hydrogen sulfide and nrg. Wether its sulfur or we call it glimglam 96 doesn't matter. For producing stuff, we would have something like silicone -> shell.
--- End quote ---
So, in the beginning there were DNAs, memory, and energy. Vegs were simply robots which received food for free.
Then you divided energy in Energy and Body; now you want to divide Body in fat and muscle. But not just one type of fat and muscle, two types. The types for vegs, and the types for non vegs (I guess this means erbivores. What about carnivores?). Every robot can produce all four kinds of stuff, but there will be "incentives" to produce only the right stuff. This means that vegs will receive food for free, and also incentives to produce the right stuff. Also non vegs will have their own incentives. Chaotic.
Then you'll add sulfur, or let's call XYZ. XYZ, combined with ABC, will produce HJK and energy. I understand that this can be an interesting way to tie some of the many bots parameters, which are now balanced, if I'm not wrong, by totally arbitrary rules (I mean, there's something preventing bots from having max shell and max slime at the same time, isn't it?).
For example, if you have that
XYZ+ABC -> shell
and
QWE + ABC -> slime
then you'll have to choose whether to use ABC for shell or for slime. There will be also some competition for the resources.
However, I'd prefer something which leaves some more possibility. For example, say that slime is QWC. Then producing slime would be something like taking off E from QWE, C from ABC, and sticking them together to form QWC. This may cost energy, and would leave out E and AB, which may form ABE or EAB. These things may accumulate in the bot, become dangerous, or be ejected in the environment. All you'd have to do is to define a set of rules telling you how much energy you need to detach letters from a molecule, and to stick them together. Some robots may evolve a transformation sequence which uses the byproducts of another bot's transformation sequence to produce something else. Or a robot may develop alternative, less efficient, transformation sequences to face a lack of some basic molecule.
You'd not have to invent molecules and transformations: all would be in the intial rules. And it would be open ended, too. Wouldn't it be cool?
PurpleYouko:
I think you may have misunderstood what we are attempting to do here Carlo.
Your concerns about open endedness are justified and what we actually want is to make the sim even more open ended by blurring the distinction between veggies and animals.
If we use a system of enzymes (actually a bit pattern stored as a hash number in the DNA file) then all robots can do all things to some degree. It will be possible to get a robot that learns to photosynthesize as well as eating other bots. There will be no automatic setting for autotroph any more so no free food. We already have day/nigh cycles with adjustable light intensity so we will just allow photosynthesis to generate energy and create oxygen and cellulose as a by product.
The main thing is that the bit pattern can only contain a finite number of different enzymes which stack to increase efficiency in certain areas.
A primarily veggie bot can have maybe 10 enzymes that photosynthesize and maybe one that can metabolize energy shots. The energy shots can either be stored in a kind of stomach until they are metabolized or simply lost if not used immediately.
A carnivore can have 10 enzymes that digest meat but none that can digest cellulose. Maybe one that can photosynthesize but that could be a drawback as woody cellulose (a byproduct of photosynthesis) isn't as efficient at moving muscles as proteins are. It would gain weight but without any added benefits so evolution should tend to favor carnivors without this enzyme.
A system like this should be totally open ended and will even allow for veggies to evolve into animals and vice versa.
We are going to have to work on the balance though.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version