Author Topic: Compartmentalization of the Bots  (Read 6179 times)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Compartmentalization of the Bots
« on: March 02, 2006, 04:38:36 PM »
Elite mentioned this in passing I think, and it made me remember an idea I've thought of before but I don't think I've ever laid onto paper.

Presently bots are considered to be homogenous.  All their body, nrg, poison, etc. is all stored in a large and uniform gooey substance.

I propose a way (the mechanics of which I have no idea) to create different 'sacs' to contain various substances in the bot.

Here's what I consider to be the base level upon which bots may build:
"Cell Wall" - Simply the membrane seperating the outside and the inside.  I would imagine it would be into this "sac" that you'd want to put your slime and shell.

"Cytoplasm" - "Inside" the cell.

"Outside" - a way to expel things and absorb things from the environment.

Everything else would need to be specified by a bot.

Sacs could be nested arbitrarily.  You could have a "Mitochondrial" sac inside the Cytoplasm, or even on the cell wall (though I have no idea what the effect of that would or should be.)  A sac assigned to the "outside" would probably create a new bot (probably without any DNA, and so probably following the same rules as corpses for decay, etc.) containing perhaps nrg for storage or waste.

These sacs would seperate various chemicals from each other.  Poison probably shouldn't be mixing with your food supply.  You could create an empty sac on the cell wall and use it to eat another bot, then move that sac into the cytoplasm for digestion.  DNA could be kept in its own sac to have stronger control over mutation rates and prevent it from otherwise being damaged.

Moving substances across a sac barrier would probably cost nrg (or may generate nrg if you're moving from an area of high concentration to an area of low concentration).

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Compartmentalization of the Bots
« Reply #1 on: March 03, 2006, 12:40:02 AM »
It's not clear to me what you mean by sacs?  How can you "have a sac on cell wall"?

Pictures might help.

And I'm not sure what specific goal they would serve.  I understand about different compartments for metabolites, but the proposed system for metabolism has these compartments built in already.  DNA is just an abstract piece of code right now and has no "physical representation" in DB universe, how can we move it into a sac?  And why?
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Compartmentalization of the Bots
« Reply #2 on: March 03, 2006, 12:03:00 PM »
I think Nums means phagocytosis by the sac on the cell wall  :)

Don't real microorganisms have some form of compartmentalisation Shvars?
 - Nucleus
 - Vaccuole (for plants)
 - Various structures such mitochondria
 etc.

Maybe mutations could be accumulated (or accelerated) by exposure to free radicals (or DB equivelant) - maybe some chemicals could be mutagenic?

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Compartmentalization of the Bots
« Reply #3 on: March 03, 2006, 12:15:06 PM »
The most obvious consequence I can think of would be order of defense.  Your cell wall will be attacked first, your cytoplasm second, and any internal membranes third.

I imagine you'd have to do a certain amount of damage to the cell wall before you could breach the internal cytoplasm, and a certain amount of the cytoplasm would need to be compromised to reach any of the more critical compartments.

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Compartmentalization of the Bots
« Reply #4 on: March 03, 2006, 02:07:19 PM »
Hm, OK, we are going out of biology field with this :)  In real cells a break in a cell membrane would mean certain death for the cell, so this sounds silly.

But even if we stray away from biology (which is fine) I am still not sure what the advantage of having these compartments would be.  We don't seem to need them now, so if we add them, then we would also have to add something that would make them necessary.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Compartmentalization of the Bots
« Reply #5 on: March 03, 2006, 02:21:30 PM »
Right, so let's brainstorm what we could do that would make them necessary :)

The first thing that comes to mind is that it would explain the way in which shell, slime, and poison work.

The second thing is that it allows for phagocytosis or endosymbiosis as a natural consequence instead of a specifically programmed event.

Those are really the only two things I have at the moment.

In my mind, the bots are analogous to real cells, but have some "magic" properties.  In this case, their insides are rather gooey, so a membrane puncture wouldn't be like a balloon popping, but would be more like a cut in a higher organism.  It would be self-healing but would result in a certain amount of volume and mass loss (probably more dramatic than higher organisms.)

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Compartmentalization of the Bots
« Reply #6 on: March 03, 2006, 02:49:51 PM »
Reason for partitioning bots:

Some enzymes may turn out to be poisonous to some bots (ie. breaking down their food into something that they can't digest and can't get rid of, or an enzyme that stops a bot shooting): if they can affect you, then how do you stop them doing so.

Or maybe you want to have a metabolic process going on seperate from another metabolic process (ie. photosynthesis and resparation in plants) - the two processes could be done in different partitions to stop them interfering with each other.

Putting stored fat in a tough membrane maight stop enemies eating your remains so quickly - they have to digest the sac first.

Sacs could be one of many cell structures. We could probably think up a bunch of them:
 - Cell wall
 - Nucleus, metabolic structure
 - Poison/venom sac
 - Senses? (such as the .eye commands)
 - Flagella?  (have to make before you can use movement commands?)
   etc.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Compartmentalization of the Bots
« Reply #7 on: March 03, 2006, 03:18:50 PM »
I've thought about it a little more and I'd like to modify what I said originally.

I think the boundaries between any two sacs should be an entity in and of itself.   Similar but slightly different.  In my original post I said that the cell wall is a sac, but I think it should have slightly different properties.

these "walls" seperating sacs should be able to have transporters (which carry substances that aren't permeable across the bundary), which obviously don't make much sense inside a sac.

Likewise shell and slime wouldn't make much sense inside a sac (except maybe as storage) but make alot of sense on a sac boundary.

How this would translate into program rules I'm not so sure.

So to ammend my original statement, the only two "gimmes" for sacs are the "outside" and "inside", with the cell wall being the wall between the two.

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Compartmentalization of the Bots
« Reply #8 on: March 03, 2006, 06:59:06 PM »
Let's define the topic a little better.  We may talk about sacs as "logical compartments" in the cell or we can talk about introducing "physical sacs" and their properties into DB universe.

The sacs as logical compartments are already there.  For example, memory locations are "sacs" - they are separate from each other and store certain things.  The Dna is in a compartment of its own - nothing can touch it at the moment.  In the proposed metabolism system we'll have tons of logical compartments.  The thing about these compartments is that they can be introduced at will, without any general rules.  So there is no need for a concept of a "sac" as there was no need until now.

The sacs as physical consequences of the membrane properties is a whole different matter.  Here we should create a more or less general system to describe the properties of bot's borders and/or of bot's internal environments.  These sacs would be physically present (visible?) in DBs.  I'm not a programmer, but to me it seems out of our reach.  After all, current "borders" of bots are simple circles and don't have any physical properties (well, there's been some steps forward in newer versions to introduce those).  But what we would be facing are fluid membranes, able to shift around, give bots different shapes (for real), invaginate, fuse and so on...  I doubt Nums would be able to code such crazy thing into DB and even if he can, I'm sure it will slow down the program to a crawl...
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Compartmentalization of the Bots
« Reply #9 on: March 03, 2006, 11:26:51 PM »
It's theoretically feasible for a more amorphous blobby membrane instead of a perfect circle, but it's out of reach of the current physics engine.  Several things would need to be introduced before we could seriously consider it.

As to simulation slowdown...  It would be present, but I don't think it would be terrible.  Again, a large number of things have to happen first so it's sort of out of reach at the moment.

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Compartmentalization of the Bots
« Reply #10 on: March 04, 2006, 08:20:17 AM »
I think that Griz was playing about with amphorus blob bots

 :boing:

And 3D, which would be cool. You could form more complex multicellular organisms in 3D ...  ^_^

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Compartmentalization of the Bots
« Reply #11 on: March 04, 2006, 02:24:27 PM »
I'm making the C++ port with respect to how to easily upgrade it to 3D.  The engine will handle bots moving in 3D.  The graphics would need to be updated to use spheres instead of circles (or maybe use billboarded circles), and a bunch of sysvars would need to be added...

But the engine could handle it.  Just thought I'd throw that in :D

What griz is showing there is raytracing I believe.  A conceptual idea not actually having anything to do with the engine at present.  But still looks pretty sweet :D

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Compartmentalization of the Bots
« Reply #12 on: March 05, 2006, 11:42:15 PM »
I have a bit of time to spare again :)

Not to get too far off topic here but why can't the engine support different shapes?

The old "transfer gate" repulsion field, acted as a sort of hill for the bots. Would it be too difficult to mark off an area to act as an object/barrier/bot?

I was kind of thinking a user could define the general objects for a sim. While the bots could evolve their own shapes (not skins, actual functional shapes here).

Different "physical" objects and bot shapes would probably add tons of depth to a sim if we can get them working right.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Compartmentalization of the Bots
« Reply #13 on: March 06, 2006, 12:28:20 AM »
The basic problem of non circular bot shapes (and other shapes for that matter that aren't either square, circle, or something simple like that) is collision detection.  Circles make it really easy, and squares aren't too bad either, but when you delve into curces and thigns it becomes difficult.

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Compartmentalization of the Bots
« Reply #14 on: March 06, 2006, 11:50:09 AM »
How about handling phagocytosis by defining the bot as a circle as usual, and defining the phagosome as a smaller circle. See the attached jpeg

That way you can define the whole shape as two circle centres and radii
Collision detection need not be affected.

Do you understand what I'm saying?


BTW, the smallest circle is another, smaller, bot. How about you can only swallow another bot if it is smaller than you
« Last Edit: March 06, 2006, 12:10:52 PM by Elite »