Author Topic: Darwinbots 3 Progress  (Read 28982 times)

Offline Prsn828

  • Bot Destroyer
  • ***
  • Posts: 139
    • View Profile
Darwinbots 3 Progress
« on: March 24, 2009, 10:09:48 AM »
Since we are likely less than a year from the first Darwinbots 3 milestone I figured it would be good to bring it some more attention.  I get the feeling that most people that use this forum are pretty much in the dark about what is going on with its development, so I want to give everyone an open invitation to ask questions about how things are going and what to expect.  Don't be afraid to ask questions or make suggestions, I am open to anything, and some feedback would be healthy for the project.

Now it's your turn, ask away!
So, what will it be? Will you submit to my will, or must I bend reality to suit my needs?
Better answer before I do BOTH!

Offline Ta-183

  • Bot Destroyer
  • ***
  • Posts: 105
    • View Profile
Darwinbots 3 Progress
« Reply #1 on: March 24, 2009, 12:37:00 PM »
Is DNA going to be any easier to use? I mean we still have to keep the ability to use DB2 bots, as it seems as if there are very few new bots being created, but I feel that I would be better able to write a bot with an easier syntax. A subtype of BASIC would be prefferable, as I have loads of experiance programming Ti-84's in TI-BASIC.

Offline Prsn828

  • Bot Destroyer
  • ***
  • Posts: 139
    • View Profile
Darwinbots 3 Progress
« Reply #2 on: March 24, 2009, 03:41:27 PM »
There aren't any real plans for easier syntax, although there are a few changes, like combining stores with calculations.  I do understand where you are coming from.  Actually, it might be worth my time to create a separate program specifically for coding a bot.  I will take this into consideration and think about what would be involved.  Now don't let that get your hopes up, I am only going to think about it, I have a feeling it would take a lot of work to actually do, but it would be very helpful.

Honestly, I just started writing my first bot today, so I want to get used to that before worrying about simplifying the process.

Although not quite what you are looking for, I do know that Nums has a shell of the DNA system lying around the forum or the wiki somewhere, so if you want an idea of how the DNA will work when it executes then that is something worth digging up.
So, what will it be? Will you submit to my will, or must I bend reality to suit my needs?
Better answer before I do BOTH!

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Darwinbots 3 Progress
« Reply #3 on: March 24, 2009, 03:43:27 PM »
Same basic syntax, and most of the same commands (though some work a little differently).  DB2 bots won't work in DB3 because of slightly different syntax, but a transliteration shouldn't be too hard.

Planned features include a command line DNA parser, so you don't have to create a whole new bot and load it into a simulation to experiment with the DNA.  Also included will be a DNA debugger, so you can step through your DNA code one bp at a time and look at the values in the stack and in memory.  And a "compiler" which checks syntax and can detect common errors like misspellings.  Maybe even an ability to code-and-continue, so you could pause the simulation, tweak the DNA in real time, and then let the simulation continue with the bot having new DNA.

Also planned is the ability for users to create new DNA modules in C#, so you could write a BASIC DNA version if you wanted.

Most of that is a bit further along down the road, of course, so nothing forthcoming right now.

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
Darwinbots 3 Progress
« Reply #4 on: March 25, 2009, 09:48:08 AM »
I've seen a few different ideas floating around; have you decided what's going to happen with ties/physics/bot shape?
Lancre operated on the feudal system, which was to say, everyone feuded all
the time and handed on the fight to their descendants.
        -- (Terry Pratchett, Carpe Jugulum)

Offline Prsn828

  • Bot Destroyer
  • ***
  • Posts: 139
    • View Profile
Darwinbots 3 Progress
« Reply #5 on: March 25, 2009, 11:39:02 AM »
Quote from: abyaly
I've seen a few different ideas floating around; have you decided what's going to happen with ties/physics/bot shape?

I believe Nums has made a decision on how the ties will work, and the physics is the same; Nums tends to make the majority of the major decisions, but it is his project, and he is more experienced.

I can give a definite answer on the shape of bots.  Here goes:

-Bots will be Iscoceleze Trapezoids.
-One side will be the "head", and the other will be the "tail".
-Both the head and the tail will be able to change width, but this might not happen until after M1.
-The height will also be able to change, but again, this will not likely be present in M1.

Some things to note:

-Theoretically, when they can finally change size they could turn themselves into Triangles, which could be interesting.

About ties:

-It is my understanding that ties are going to work more like hinges, where two bots (or a bot and a wall/shape) form a connection at a point on their perimeter which, according to Nums, does not necessarily have to be at one of their vertices.
-Ties are not going to be connected at the center of a bot.
-The plan right now is to partially ignore collisions between bots(or shapes) that are directly tied to one-another.

As for the Physics:

-Right now we are working on this.
-So far we are concentrating on the collision detection.
-Proximity will be judged based on bounding circles, so that if two bounding circles overlap a collision might be occurring.  This lowers the amount of calculations done by the physics engine.
-The physics will almost certainly be from scratch, as there are no suitable physics engines for a program like this.

Again, don't expect too much from M1; Personally, I would be glad to even have a blank window pop up at this point, but by that time there will be plenty more that has already been coded.


Keep the questions coming; this is how we can best find holes in the design
So, what will it be? Will you submit to my will, or must I bend reality to suit my needs?
Better answer before I do BOTH!

Offline Ta-183

  • Bot Destroyer
  • ***
  • Posts: 105
    • View Profile
Darwinbots 3 Progress
« Reply #6 on: March 25, 2009, 02:09:57 PM »
Will DB3 be multi-core aware, or be able to use processor power on graphics cards?

Offline Prsn828

  • Bot Destroyer
  • ***
  • Posts: 139
    • View Profile
Darwinbots 3 Progress
« Reply #7 on: March 25, 2009, 02:18:43 PM »
Quote from: Ta-183
Will DB3 be multi-core aware, or be able to use processor power on graphics cards?

There is a good chance that these will both be available to some extent.  The Vectors we are currently using are likely able to take advantage of graphics card capabilities behind the scenes, but I can't promise anything at this point as far as multiple cores and graphics card processing go.  At the moment there is nothing this could be used for anyway, but it is definitely a possibility.

It should be faster than DB2, even without these kinds of features.
So, what will it be? Will you submit to my will, or must I bend reality to suit my needs?
Better answer before I do BOTH!

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Darwinbots 3 Progress
« Reply #8 on: March 26, 2009, 02:22:34 AM »
Quote from: abyaly
I've seen a few different ideas floating around; have you decided what's going to happen with ties/physics/bot shape?

Each bot gets a single tie.  Ties are not meant to be used to form multibots, but are more like mosquito suckers.  Their use is primarily to drain nrg from the target over cycles, and to keep that other bot close.  They might be springy, or they might be extremely rigid.  It depends on how unstable a spring would be.

Bots are trapezoids.  Basically the capsule shape we were talking about before but without the circular end caps.  We might add circular end caps in the future, depending.  Prsn's done a pretty good job of explaining how they'll work, so I don't really have anything to add.

Multibots are formed with "hinges", where basically two points on either bot's perimeter have to stay within 0 distance of each other.  They can freely rotate around this point.  Hinged bots are partially able to rotate into a collding state to allow for a larger degree of rotational freedom.  The exact mechanics of forming a hinge I haven't decided yet.  It'll either be done with something like a tie pulling the two bots together, or maybe a bot becomes "sticky" and collisions end up creating hinges, or maybe bots form a hinge during reproduction between child and parent.

Quote from: Ta-183
Will DB3 be multi-core aware, or be able to use processor power on graphics cards?

To a limited degree it'll be multi core aware.  What I mean by that is that each bot's DNA could potentially be executed on a different core.  And physics to a limited degree can be passed out to different cores.  But for something like this there are computationally expensive areas that can't really be passed out to different cores ("serial" operations), so it'll never be able to utilize 100% of all cores.  Expect maybe 70-80% utilization of multiple cores.  Which is probably a good thing since that still leaves you quite a bit of processing power to actually use your computer.

It'll utilize graphics cards for graphics, but it's infeasible (though not impossible) to push more to the card because the data has to be retrieved back from the card to the CPU at some point, and that bottleneck tends to be really slow.  But things which don't need to be known on the CPU side, like the fireworks effect when a bot dies, can be offloaded entirely to the graphics cards.
« Last Edit: March 26, 2009, 02:24:34 AM by Numsgil »

Offline Peksa

  • Bot Destroyer
  • ***
  • Posts: 118
    • View Profile
Darwinbots 3 Progress
« Reply #9 on: March 30, 2009, 05:08:47 AM »
Have you thought how sexual reproduction will be handled? I think it should be made somewhat easier than in DB2. I don't know if anyone's really tried, but it's really hard to get going in evolution sims and after that to preserve it.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Darwinbots 3 Progress
« Reply #10 on: March 30, 2009, 07:25:57 AM »
My thought at the moment is to mimic sexual reproduction of fungii.  Have it so bots are normally haploid, but they can "fuse" to form one diploid bot, with the parent's DNA sort of fighting for control.  Then that diploid bot can split again later in to two haploid bots.  With stranger mixes on that theme possible too.

Offline Prsn828

  • Bot Destroyer
  • ***
  • Posts: 139
    • View Profile
Darwinbots 3 Progress
« Reply #11 on: March 30, 2009, 06:48:42 PM »
Actually, I don't think we are too worried about that at the moment.

To be honest, I feel like a sort of collision-time method, where a male builds up sperm, and has it transferred while in contact with a female, would be quite effective.  Some measure of fertility, and a sort of timer, could be used to determine when the female (or male, if we do this like seahorses) gives birth, and to whom's child.

Actually, I think this will depend mostly on how the DNA is handled in some of the post M1 versions.  For instance, in the real world there are several hybrid animal species, the liger and tigon being prime examples.  The reason this can happen is due to the minimal difference in chromosome numbers, but since the hybrid usually ends up with an odd number of chromosomes, it is generally infertile.  A system like the one in real life, using chromosomes, would probably help with multibots and with sexual reproduction.

Assuming bots could purposely divide with only certain parts of the DNA being copied, certain cells could have unique functions.

Realistically, we are quite a way away from implementing something like this, but I do think it is something to strive for.
So, what will it be? Will you submit to my will, or must I bend reality to suit my needs?
Better answer before I do BOTH!

Offline bacillus

  • Bot Overlord
  • ****
  • Posts: 907
    • View Profile
Darwinbots 3 Progress
« Reply #12 on: April 01, 2009, 12:25:41 AM »
So what substances are being used ATM? I thought the idea of digesting chunks of soil for minerals that can be regurgitated was fun, as it could be used to build 'nests' and physical shells.
"They laughed at Columbus, they laughed at Fulton, they laughed at the Wright brothers. But they also laughed at Bozo the Clown."
- Carl Sagan

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Darwinbots 3 Progress
« Reply #13 on: April 01, 2009, 06:43:35 AM »
Nothing atm.  For Milestone 1 bots will have maybe nrg, chloro (or leaves) for photosynthesis, muscles for moving and feeding, and fat for energy reserves, and that's it.  No shell or slime or anything else yet.  Just wanted to make things as simple as possible for a first version.

I'll expand that later to allow bots to build shell, etc.  And to dig into shapes ("soil") to form nests.  And maybe connect the two so shell is built from what is excavated from shapes.

Offline ikke

  • Bot Destroyer
  • ***
  • Posts: 300
    • View Profile
Darwinbots 3 Progress
« Reply #14 on: April 01, 2009, 06:56:56 AM »
What would help to create a more complex environment is by allowing different shapes in a sim to have different physical properties. We could make a beach: two triangles (one water one land) and one rectangle (air), all having their own parameters for physics (like drag, viscosity, buoancy). This is all feasable by making the physics part of the shape and not the sim.