Darwinbots Forum

Code center => Suggestions => Specialization, Metabolism, Digestions and Env Grid => Topic started by: Numsgil on February 23, 2005, 07:04:51 PM

Title: Numsgil's Super Cool Specialization System
Post by: Numsgil on February 23, 2005, 07:04:51 PM
Aright, this is the system I wanted to implement.  Whatever the final version is, this should be a subset of it, the way Newtonian Physics is a subset of general relativity.

Food is divided into 'bits'.  Food is combined into the stomach of a bot.

Here are the food bit types:

Code: [Select]
Public Type StomachMouth
  Amount As Single 'how much stuff is actually in our stomach.
                   'used for calculating ratios
  
  Waste As Single 'chloroplasts in the presence of waste will use the waste up and become more productive
  nrg As Single
  light As Single 'silly, yes, but this is how plants will receive nrg from light
  protein As Single
  muscle As Single
  fat As Single
  Poison() As Poisontype 'we can have more than one type of poison in our stomach
  Venom() As Poisontype
  Slime As Single
  CalciumShell As Single
  SilicateShell As Single
  carbs As Single
  calcium As Single 'most of the time this will pass right through
  sand As Single 'Si2, this too shall pass
  SH2 As Single 'for black smokers
  SO4 As Single 'ditto
End Type

Look into the 'Energy Types and Stomachs' thread in the old forum.

Now, each bot has an enzyme array that it uses to digest foods.  The more enzymes you have, the more food you can digest at any given moment.

Light and photosynthesis are treated as a special case of this digestion process.

A bot recieves light into its stomach based on its surface area.  Light is removed from a bots stomach at the end of a cycle.  An enzyme called chloroplast converts light to nrg.  It is more productive in the presence of waste.



At the other end of the spectrum, each bot has a muscle array.

The strength of an action is determined by a heirarchy of muscles.

At the top you have general muscles.  These can perform all tasks.

Next you have group muscles.  These can only perform general tasks like movement and tie commands.

A list of all group areas:

Movement,
Shots,
Production and Metabolism
Digestion
Ties

Last you have specific muscles.  These can only affect a single command.

The strength of an action is determined by:

General Muscles + Group Muscles * 2 + Specific Muscles * 8

The coefficients are still undetermined, but you get the relative strengths.  The idea is that trying to specialize in all areas at once is less efficient than specializing in a few areas.

Now, each muscle can fire harder and harder, but it costs more and more energy.

Something like cost = 2 ^ Muscle Strength.

Each specialized muscle counts as 8 general muscles, etc.  You get the idea.

Desired Effect / (General Muscles + Group Muscles * 2 + Specific Muscles * 8) = Muscle Strength.

That is, Muscle Strength is used in cost figuring:

(General Muscles + Group Muscles * 2 + Specific Muscles * 8) * 2 ^ (Muscle Strength) = cost of action.



Muscles can be easily destroyed and turned into protein, but they take a long time to build up, and take alot of energy.  Muscles are split between parent and daughter cells during reproduction, so daughter cells inherit the specialization of the parent cell.

So for a cell to change anything about its specializations takes a long time and alot of energy, but is still possible since the mechanical mechanisms of the cell were never abandoned, just turned off.



That's it.  It's not quite finished.  Add your bits to complete the puzzle.
Title: Numsgil's Super Cool Specialization System
Post by: Numsgil on February 23, 2005, 11:36:25 PM
MECHANICS

Aright, this part is Anon Guest Person and me working together for an hour or two (he can post after I'm done if there's a point not agreed on:

All game sysvars are divided into groupings called 'mechanics'.

Definition: [you]Mechanics[/you] - a grouping of similar commands and reference variables

Definition: [you]Specializations, or specs[/you] - the more mechanics that are turned off, the more specialized the bot is said to be.  The collection of which mechanics are on/off are said to be the bot's specializations.

Mechanics can be turned on/off.  DNA files have lines at the start that set mechanics as on/off.  Children bots inherit the specializations of their parents.  The spec code at the start of the DNA represents the specs the bot inherited from its imaginary parent. Bots can change specializations by turning on/off mechanics but it isn't cheap.

Here's a possible example of the spec code at the start of DNA.  If something isn't turned off it defaults to on, for backward compatibility with older bots.

Code: [Select]
disable ties
disable poison
disable venom

It's just that easy!

To turn on/off mechanics during the simulation, a robot uses a setmech and strmech couple, not unlike the memloc/memval couple.

example:

15 .setmech store
1 .strmech store

This will turn on mechanic number 15.  We can make a set of sysvars that label the different mechanics with numbers.

It is expensive to turn on/off mechanics (the degree of this expense is still debated by Anon and me.  Input welcome).  I'd say something like 15000 energy to enable a mechanic, 10000 energy to disable and several hundred cycles for the changes to take effect. (with safeguards in the program to prevent abuse by weapons, somehow).

Anon wanted a much, much easier way to change specualizations (I believe).

If we go more expensive, we may opt for a piece-meal system to enable/disable mechanisms.

Now, the more mechanics you disable the higher your mechanics multiplier is.

Definition [you]Mechanics Multiplier[/you] - A multiplying force to all actions.  The higher it is the less actions cost or the stronger they are (depends on the action).  The rough shape of this Mechanics multiplier is (mechanics multiplier = a * b ^ (disabled mechanics)

Why have a mechanics multiplier?  It simulates the way some eukaryotic cells have lost the ability to move but used the old cillia mechanisms for other purposes.  This should help multibots' cells differentiate, as there is a strong incentive now.


MUSCLES

An analogy is in order.  Mechanics are like bones.  You must have an arm bone to have an arm, but the bone itself does nothing.

This is where muscles come in.  Muscles attach to the 'bone' of the mechanics, allowing actions.

The strength of an action is determined by a heirarchy of muscles.  At the top you have general muscles. These can perform all tasks that aren't disabled by a disabled mechanic (no bone, no muscle).

Next you have group muscles. These can only perform the actions of a particular mechanic (like a bicep of your arm).

Last you have specific muscles, that control a single command (like the muscles controlling your index finger).

Look above for more on muscles.  The only difference is the mechanics multiplier, which makes muscles stronger.


DIGESTION

Last, but not least, we have digestion.  The same mechanics/muscle system applies here but at a much more specialized level.

Each energy type gets its own enzyme.  Enzymes are the equivelant of muscles.  You can have generalized enzymes and specific enzymes.

Definition [you]Enzyme Template[/you] - The mechanism which produces a particular enzyme.

These enzymes are made from enzyme templates, which are analogous to mechanics.  If you disable an enzyme template, the remaining enzymes are made more efficient.  This represents the machinery for one enzyme's production being moved to the other enzyme production machinery.  This will create a strong incentive for specialized feeding.

Again, look above for more on enzymes.



The beauty of the above system is all the marks it passes.

It fulfills both practice and birth specializations.  It allows bots to be as generalized or specialized as they want in feeding, while providing incentive to be specialized.  It allows bots to become plants and vice-versa through painful, long evolutionary processes.

Still a few fine points to smooth out, but I think we have an all around system that fullfills all the necessities of a proper system.

I've included the mechanics' groupings Anon worked out.  There are about 35 groups he's worked out.  I haven't cracked my knuckles yet, I may suggest combining some groups together.
Title: Numsgil's Super Cool Specialization System
Post by: Numsgil on February 23, 2005, 11:57:37 PM
This is a subset of the above that I thought about after a while.

Instead of having the mechanics be only on/off, we could also define them as a string of bits.  These bits represent the actual DNA coding for the mechanics.  Mutations can change these bits.

If a bit system changes, it can either increase or decrease in efficiency.  The efficiency of a bit system is determined by some kind of hash function, so the changes appear to be random to the bot.

Bad mutations are weeded out.  Good ones are rewarded with more efficient (ie: an increase in the mechanics multipier) muscles.  Slowly you'll see bots begin to produce better and better mechanics.

Bots can still disable mechanics to increase the multiplier.  This short little bit system would effect the efficiency of those mechanics.
Title: Numsgil's Super Cool Specialization System
Post by: shvarz on March 05, 2005, 11:00:41 PM
In general I like this idea, because it mirrors my idea of specialization.  What I don't like is things like
Quote
15000 energy to enable a mechanic, 10000 energy to disable and several hundred cycles for the changes to take effect

It's just too... artificial.  The "turning on/off" needs some more thought.  My vote would be to count how many times a given mechanic is used and set a counter for that.  The more you use something, the easier/cheaper it gets.  So that using .up would increase the counter for ".up", but also for the whole "movement".  Kind of like what Nums had with hierarchy of muscles.
Title: Numsgil's Super Cool Specialization System
Post by: Numsgil on March 06, 2005, 04:53:13 AM
The practice specialization would be mirrored in the muscle hierarchy.  You build muscles on mechanics you use.  So it's kind of a manual specialization.

I'm not sure how turning on or off mechanics would work yet.  We need to balance the fact that multicellular organisms specialize by changing their structure, and that unicellular organisms tend to be more generalized.
Title: Numsgil's Super Cool Specialization System
Post by: shvarz on March 07, 2005, 11:51:57 AM
Even for multicellulars changing of structures comes from regulation of gene expression.
Title: Numsgil's Super Cool Specialization System
Post by: Botsareus on March 07, 2005, 12:10:14 PM
outh , really complex type there...
Please dont make it complexer :)
Title: Numsgil's Super Cool Specialization System
Post by: PurpleYouko on March 07, 2005, 12:14:57 PM
Quote
Even for multicellulars changing of structures comes from regulation of gene expression.
But how the heck do we model it without getting so complex that nobody could ever write the DNA code?

We gotta get arbitrary at some point I think.

 :unsure:  PY  :unsure:
Title: Numsgil's Super Cool Specialization System
Post by: shvarz on March 07, 2005, 12:30:54 PM
I think my counter system would work for that.  Remember, the counters will give [relative] efficiency to other things, not absolute.  

Efficiency of A~ A/(A+B+C)
Efficiency of B~ B/(A+B+C)
Efficiency of C~ C/(A+B+C)

You have functions A, B and C.  Use only A - it will make A better, B and C - worse.  Then stop using A and start using B - first it will suck, but as the counter reaches counter of A - it wil get better and better, until B is done better than A.  C is not used at all, so it is really expensive to start using it.
Title: Numsgil's Super Cool Specialization System
Post by: PurpleYouko on March 07, 2005, 01:24:50 PM
Yes I quite like your counter idea.

It is good that it also allows us to keep rarely used genes functional too by expending a little energy in the right places.

 :D  PY  :D
Title: Numsgil's Super Cool Specialization System
Post by: Numsgil on March 07, 2005, 02:42:43 PM
I'd really like to seperate the DNA and the specializations as much as possible.  Real life forms define everything about themselves through their DNA.  In DB, only behavior is determined in the DNA.
Title: Numsgil's Super Cool Specialization System
Post by: shvarz on March 07, 2005, 02:50:47 PM
Huh, what do you mean Nums?  What else do you see as driving force of specialization if not DNA?  You worry me  :huh:
Title: Numsgil's Super Cool Specialization System
Post by: Numsgil on March 07, 2005, 03:21:19 PM
No, I mean that specialization shouldn't affect behavior, only mechanics.  If you've specialized in turning left, it means you're body has.  It doesn't mean you yourself have ever turned left in your life.
Title: Numsgil's Super Cool Specialization System
Post by: shvarz on March 07, 2005, 03:37:52 PM
But in DB behaviour is the form and shape of a bot.

Besides, how (and why) would I specialize in turning left if I never turn left in my life?

You are getting me confused Nums...

Consider this:  Even in real life, specialization can be viewed as behaviour of cells.  If you work out a lot, your muscles get bigger - look at it as if your body "decided" to invest more in production of muscles.
Title: Numsgil's Super Cool Specialization System
Post by: shvarz on March 07, 2005, 03:42:22 PM
Maybe I should repeat this again.  There are two types of specialization and it seems like some people confuse the two.

Specialization 1: evolutionary adaptation to a specific environment.  We already have that in DBs.  We have genes, they mutate, the best one survives and is more adapted to its environment.

Specialization 2: DNA codes for several possible scenarios for organism and depending on its environment the organism chooses one of the paths at the expense of not being able to choose others.  This we don't have and this is what we need!
Title: Numsgil's Super Cool Specialization System
Post by: PurpleYouko on March 07, 2005, 03:50:05 PM
Actually I would argue that we don't have 1 either except in a very limited sense.

A robot cannot evolve to eat only veggies or to metabolise waste or any of those kind of specializations.

The universe in which they live doesn't have the physical laws to allow this.

 :D  PY  :D
Title: Numsgil's Super Cool Specialization System
Post by: Numsgil on March 07, 2005, 03:57:45 PM
You would specialize in turning left, even if you haven't done it yet, in the hope that one day you will need to turn left, and you'll want to do it very well.

Like a fetus's lungs.  They haven't breathed when they come out of the womb, but the lung cells are already specialized to exchange gases between the air and the blood.

The form and shape of a bot can be said to be the sum of all the mechanics that it can do and all the mechanics it can't do.  This is what I'd like specialization to affect.  What a bot chooses to do or not do should be independant (except, of course, it can't choose to do something it can't do).

Wow, that didn't make any sense at all, did it?  Oh well.
Title: Numsgil's Super Cool Specialization System
Post by: Botsareus on March 07, 2005, 04:12:56 PM
Quote
I'd really like to seperate the DNA and the specializations as much as possible. Real life forms define everything about themselves through their DNA. In DB, only behavior is determined in the DNA.

Finaly I catched you Num  :P ,

Thats by far the stupedst thing Num sayed for the lest ±2 weeks.

Let me explain:

Quote
"In DB" , only behavior is determined in the DNA.

DB is not something god maid up right? DB is somthing we maid up (actualy Carlo maid it up and we changed it) There is no sutch a thing as "but in DB" because we can make DB do what ever we want. You sayed yourself that "anything" is possible with programing.

Now as far as I know: Everything about a creature is stored in its DNA exsept the actual movie its going to play out in real life.

I consider "specializations" as a type of behaviur too.

One day I can see DB going 3D and then having the shape of the bot define its "specializations". But for a bot to grow a shape it needs to have it in the DNA first.

One further day I can see us making a factory that builds this bots into real life.
Title: Numsgil's Super Cool Specialization System
Post by: Numsgil on March 07, 2005, 04:29:55 PM
Here's what I'm thinking:

DNA code:

cond
blah
blah
blah
end

MECHANICS:
5B 9E 64 1
etc.

ENZYMES:
97 12 5A 0
etc.

dnaend

The last 0, 1 define if a mechanic is on or off.
If an enzyme is on, it will start to produce enzymes as soon as the substances it can metabolize come into the stomach (or it's prompted to by the bot).

If a mechanic is on, then any commands that use that mechanic will work.  Else they won't.

In schvarz's system, specializations are based more on genes than what the genes do.  I'd much rather have specialization in movement than in gene 4.
Title: Numsgil's Super Cool Specialization System
Post by: PurpleYouko on March 07, 2005, 05:41:18 PM
This I like too.

Up to now I have been keeping out of this discussion (mostly anyway) but I can see reasons for both sides.

Here are my opinions for what they are worth.

Firstly, specialization in feeding needs to be defined at birth and only by evolutions. To coin a method used in many RPGs, you get a certain number of specialization points to spread between all the possible "enzymes"

Let's say 20 points to split between half a dozen or so different possible metabolism methods.

One robot becomes a veggie and spends 10 points on metabolizing Oxygen and the other 10 on metabolizing waste (Nitrates probably).
These enzyme settings are fixed throughout the robot's life. he doesn't necessarily have to use them but they are available at any time that he comes into contact with the necessary metabolites.

The ONLY way this species can ever become a carnivore is by evolution through successive generations. As each new generation is born the 20 specialization points are slightly mutated. Num's bit activation system will do this very well.


As to physical specialization, that is really 2 different issues.

On the one hand you have practice specialization (muscles becoming stronger with use or atrophying without use) This can be worked by either Num's method or by Shvarz's method. Either one or a combination of both work for me.
Possibly genes placed into groups so that they are all made better if only one of the set is regularly used. Maybe using .up should also increase the efficiency of .dn, .sx and .dx. By grouping types rather than individual genes or functions, the system might become viable. Each type can then be made stronger or weaker via a counter as Shvarz suggested.

On the other you have cell specialization in a Multi-Bot. A cell might become an arm with muscle and dexterity while another is the brain and has to control the Multi-Bot somehow. This is a lot trickier and will require a much better inter-cellular communication system than we have now. The whole MB needs to act as one instead of a whole bunch of self willed bits.
I don't really have an answer for this yet.

Right now I am going to shut up again because this isn't really my favorite area of improvement anyway.

 :D  PY  :D
Title: Numsgil's Super Cool Specialization System
Post by: shvarz on March 07, 2005, 06:26:23 PM
Makes sense to me BUT!

Quote
Firstly, specialization in feeding needs to be defined at birth and only by evolutions.

... is incorrect.  Nature is full of proof.  We ourselves are proof that it is incorrect.  We, humans, ourselves are a proof that it is incorrect.  If you, PY, right now will switch your diet to pig fat and vodka, then a month or so later you will be much better than me in absorbing that.  You will become "specialized" in that food.  Your whole body will respond to this diet and adjust accordingly.  We humans are omnivores, so we carry genes for a whole lot of different kinds of food.  That is because our survival dependent on being able to eat different crap.  The downpoint for that is that our genomes are so huge and some of these genes are bound to get messed up in some individuals (I.e. the alcohol-intolerance or lactose-intolerance mutations).  Also, we spend a lot of energy to upkeep all these systems.

Other organisms do not have this ability, not because they chose to do so.  Say a bacteria has a gene to utilize glucose.  If it does not ever see glucose (because it lives near underwater volcano), then mutations in glucose-maintaining genes will not matter and eventually glucose-utilizing gene will be completely messed up.  It is not because it distributed "points" to something else.  It is a matter of evolution.
Title: Numsgil's Super Cool Specialization System
Post by: Numsgil on March 07, 2005, 06:48:22 PM
I think what PY is getting at is that if you do not have an appropriate enzyme that you can make to digest a substance, you shouldn't be able to magically come up with it.

But if you have the blueprint for it somewhere in your list of enzymes, then you should be able to digest it.

An analogy:

Imagine the stomach is a hotel.  Each room is for different substances.

First a carb comes in.

"Ah yes, Mr. Carb.  Good to see you again.  Room 315, here's your key."

A new substance comes in.  "I have reservations," it says.

"Name?" asks the receptonist.

"Fat."

"Ah Fat, yes, we've been expecting you.  Your room isn't ready yet.  Can you come back in a few hours?"

Now, imagine something new coming in.

"Name?" asks the receptionist.

"Silicate based shell." responds the substance.

"I'm sorry, Messieur.  Do you have a reservation?  I'll have to ask you to leave."

You get the idea I think.
Title: Numsgil's Super Cool Specialization System
Post by: Botsareus on March 07, 2005, 07:38:33 PM
Quote
QUOTE  
Firstly, specialization in feeding needs to be defined at birth and only by evolutions.  



... is incorrect. Nature is full of proof. We ourselves are proof that it is incorrect. We, humans, ourselves are a proof that it is incorrect. If you, PY, right now will switch your diet to pig fat and vodka, then a month or so later you will be much better than me in absorbing that. You will become "specialized" in that food. Your whole body will respond to this diet and adjust accordingly. We humans are omnivores, so we carry genes for a whole lot of different kinds of food. That is because our survival dependent on being able to eat different crap. The downpoint for that is that our genomes are so huge and some of these genes are bound to get messed up in some individuals (I.e. the alcohol-intolerance or lactose-intolerance mutations). Also, we spend a lot of energy to upkeep all these systems.

That why I used to argue with you before Shvartz, I dont see how the quote and the information in your paragraph contradict!

Quote
Other organisms do not have this ability, not because they chose to do so. Say a bacteria has a gene to utilize glucose. If it does not ever see glucose (because it lives near underwater volcano), then mutations in glucose-maintaining genes will not matter and eventually glucose-utilizing gene will be completely messed up. It is not because it distributed "points" to something else. It is a matter of evolution.

That stuff in the paragraph can work using any method, as long as evolution is enabled for that stuff. If the "Enzimes" change or the "Genes" change wont make a difference.
Title: Numsgil's Super Cool Specialization System
Post by: shvarz on March 07, 2005, 10:42:56 PM
Well, yeah.   My point exactly  B)
Title: Numsgil's Super Cool Specialization System
Post by: Jasper on March 31, 2007, 05:48:08 PM
In my humble outsider opinion (only been making bots for a week), I would suggest being able to specialise at any time. (at pretty high cost and some time) It it probably much simpler to write then having to specify all the specialisations when .repro storing, perhaps with starting default specialisations the same as parent. Or are you suggesting not being able to change specialisations at any time? Wouldnt multibots be unable to have specialised parts then, unless already consisting of a bunch of cells, missing the whole point of specialisations?
Title: Numsgil's Super Cool Specialization System
Post by: Peter on September 24, 2007, 03:22:27 PM
Quote from: Jasper
In my humble outsider opinion (only been making bots for a week), I would suggest being able to specialise at any time. (at pretty high cost and some time) It it probably much simpler to write then having to specify all the specialisations when .repro storing, perhaps with starting default specialisations the same as parent. Or are you suggesting not being able to change specialisations at any time? Wouldnt multibots be unable to have specialised parts then, unless already consisting of a bunch of cells, missing the whole point of specialisations?

In my humble outsider opinion, I don't really see a reason to react on a topic that's not being posted in for 2 jears.

Has there been done anything on specialisation stuff anyway.

Also in my humble outsider opinion I don't now why somebody would post in a topic of 6 months old, just to be ahaid of anybody else  
(it was even the lasted post in the subtopic)
Title: Numsgil's Super Cool Specialization System
Post by: Numsgil on September 24, 2007, 03:28:05 PM
I've been doing some conceptual work on speciation and the env grid.  No code work though.
Title: Numsgil's Super Cool Specialization System
Post by: Prsn828 on March 08, 2009, 11:30:30 PM
Now, since this topic is once again two years old, and since it is relevant to the development of DB3, I would like to revive this long dead discussion with a little bit of my own thinking.

After reading how many of you view the different kinds of specialization, I have decided to try and make a more finite distinction between them.

1. The DNA for the "Brain" of the bot is what exists in DB2, and works quite well for its purpose.  I believe this should remain mostly unchanged.

2. What I think would work best is to introduce and entirely separate DNA for the "Body" of the bot.  This DNA would specify how it grows, depending on its conditions of course, and would determine things like energy use efficiency, poison/venom type, waste disposal, ect.  The problem I envision with this is that it is so flexible that the slightest error in tuning could create a horribly imbalanced simulation.  If even the slightest amount of favor was given to one characteristic, evolution might refuse to take any other path, and the purpose of such a DNA would become non-existent.

I am curious as to what solutions there might be to the second DNA I am proposing here.  Certainly using co-existing physics environments in a simulation is one approach, but other than that, nothing really comes to mind.
Title: Numsgil's Super Cool Specialization System
Post by: Numsgil on March 09, 2009, 06:11:00 AM
At the moment I'm thinking about a Lamarckian adaptation system.  As a bot shoots more, for instance, shooting becomes more efficient.  And those efficiencies are inheritable.  And a bot gets bonus efficiency for sticking to fewer efficiences.  Over time, the factors drop slightly, till they approach 0 (but never reach 0).

Something like shooting efficiency = sqrt(shooting efficiency factor / (sum of all modules' efficiency factors))
Title: Numsgil's Super Cool Specialization System
Post by: Prsn828 on March 09, 2009, 11:55:55 AM
While that may be slightly trivial in a population of single-bot organisms, if the physics allow for interesting multi-bot organisms this would be a very realistic approach.  For instance, the forward bots might specialize in shooting and energy transfer through ties, while the center bots might be digestion specialized, and the rear bots would be waste removal specialized.  This would be amazing if we can work the physics and environment out properly!

I am beginning to think that we are going to have to be very attentive to the details of DB3 so we can get the most out of it.  Just the thought of how wonderful this might be makes me excited.
Title: Numsgil's Super Cool Specialization System
Post by: Numsgil on March 09, 2009, 05:35:33 PM
There is a reason I'm still working on it after all these years   And it's not the great paycheck.

But yeah, you've hit the nail on the head.  The needs for species specialization are different from the needs for cellular specialization in a larger multibot.  A good system should cater to both needs, so that's the benchmark to measure against.
Title: Numsgil's Super Cool Specialization System
Post by: Prsn828 on March 09, 2009, 10:51:02 PM
I just came to a realization!  Using specialization would actually have a huge impact that could be either helpful or harmful depending on the user's intended type of simulation.  By simply placing specialization into the mix you are favoring the development of multi-bots, while at the same time discouraging the existence of single-bots.  The reason this would happen is quite simple; while in theory a specialized bot could be useful for developing a certain kind of action or ability, this would also result in the inability for that same bot to perform many other important functions.  Because of the fact that a multi-bot can cluster all of the specialized abilities by delegation of actions, the same cannot be said for single-bots.  Perhaps a good way to deal with this is to take a look at how ties are currently being used.  For instance, right now there can only be so many ties per bot.  Also, right now a bot cannot easily decide what to tie to, what it is tied to, and if it is tied to a friend, a foe, or a food.  I also think wall ties might be pretty cool, especially for replacing the current methods of discouraging unwanted movement.  By beefing up what ties can do, it would be easy to apply specialization only to multi-bots, or perhaps to allow it to be an option.  I could probably keep going on about some of the things we need to think about with this, but I don't want this post to get any longer than it already is, so I will leave it at that for now
Title: Numsgil's Super Cool Specialization System
Post by: abyaly on March 11, 2009, 10:20:04 AM
Taking advantage of specialization requires a longer a more complex genome that is harder to build, and even with specialization, there is still a very real possibility that single bots will remain as the unstoppable grey goo.
Title: Numsgil's Super Cool Specialization System
Post by: Numsgil on March 11, 2009, 10:34:03 AM
As much as I hate the idea, it'll probably evolve into a slider.  Set the slider to 0, and you turn specialization off.  Turn it up, and you increase the incentive to specialize.  I hate the idea of tuning parameters like this because it just adds another slider that has to be tweaked just right to get a good simulation going.  But I can't think of any other non-arbitrary way of handling it.