Author Topic: Project HYDRA  (Read 7067 times)

Offline TheArchivist

  • Bot Neophyte
  • *
  • Posts: 6
    • View Profile
Project HYDRA
« on: June 14, 2006, 09:54:07 PM »
Well, Hello Everyone.
I suppose it's time for my introduction. *clears throat*
I was introduced to this game by a friend.
Seems quite interesting, but I didn't have any really good ideas to write...
Until recently.

Consider the following:

We have a single robot, the "egg". The egg contains genes for all the cells in the multi-cellular organism in question. The trick is that, given the default values, none of them work! When the egg feels that it should start growing (work with me here), it sets its first racial memory slot, and divides.

This is the clever part. When the next cell in line is produced, it stores the info in that first slot into a variable. (Make sure this slot is secure!) Now, for each gene that you want the new cell to use, each gene will check this variable to determine whether or not the gene should execute. Imagine - a single robot splitting into a diverse Organism!!! The possibilities are endless.

Coming next... Why I call it "HYDRA"

-TheArchivist
P.S. Feel free to add any comments, suggestions, etc. I'd like this to be a nice read for other Multi-Cellular programmers out there.

P.P.S. ARGH! I can't take it anymore!

My idea was that the egg would produce exactly one cell, the "head". The head then runs around, grabs a bite to eat, and then eventually creates a "tail" cell, which ties itself to the head. The head transfers energy to the tail, so that energy levels in the tail build up. When the tail gets enough energy, it creates another tail attached to it; at that point, the first tail stops trying to reproduce and simply passes energy, etc. down the line.
The brilliant part is this: if the tail realizes it's no longer getting energy - that is, if the connection to the head is severed - it switches behaviour. No longer is it a tail; it switches the variable mentioned in the first part of the post, and becomes for all purposes a HEAD!
In this manner the organism can "grow" and is rather difficult to eradicate.
How to reproduce? Let me get back to that later  

P.P.P.S.

On second thought, I'll go out and say it:

I'm having trouble understanding how robot programming works. That's why these ideas are still merely that. I'd appreciate help.
« Last Edit: June 14, 2006, 10:05:52 PM by TheArchivist »
-The Archivist

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Project HYDRA
« Reply #1 on: June 15, 2006, 01:07:04 AM »
The trick here is going to be, (aside from learning the DNA language which can take a little while) keeping the DNA organized.  As I see it, you'll have 3 groups:
 
 1.  DNA both types use
 2.  Head DNA
 3.  Tail DNA
 
 I would start programming just a simple head.  Once you have your head more or less done, you'd need to move on to all the tie controls.

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Project HYDRA
« Reply #2 on: June 15, 2006, 10:17:57 AM »
The thread name just gave me a great idea:

HYDRA Mk1
The more energy it has, the more heads it grows
« Last Edit: June 15, 2006, 10:18:14 AM by Elite »

Offline TheArchivist

  • Bot Neophyte
  • *
  • Posts: 6
    • View Profile
Project HYDRA
« Reply #3 on: June 15, 2006, 03:31:20 PM »
Nice to see I've inspired a few minds out there.

Now, I recently thought of a novel use for the Hydra.

It's going to get complicated, so bear with me.

Now, a robot can only have four ties, and I hope everyone already is aware of that.
This is a limit, among other things, on the power that a battery bot can have.

So! What does that mean, you may ask? The Hydra may be able to find food, but if it finds a veggie, hopefully it will be able to 1) Tie the head to said veggie, and 2) pass the veggie down the line of tails. In this way, the hydra can store massive amounts of energy, and also gets a little passive defense as well

Of course, there are a few problems here. What if, for instance, the hydra cannot afford to stay close to the veggie for the twenty turns it takes for the ties to harden? (Once hardened, the head can change the angle of the veggie, so the veggie gets passed down one step.)

I've thought of a solution, but it seems overly complicated. Take a third "throwaway" cell, that doesn't take a lot of energy to produce. Deploy said cell to the plants once the head sees one, and then the "veggie scout" can find its way back to the head, which passes it down the line as before. Still, this does provide some unusual benefits (for instance, the scouts may be able, eventually, to relay information about the location of the plants).

Some thoughts to stew over! -The Archivist

P.S. Would this sort of thing be a Single Cell organism, or a MultiBot organism? Haven't quite worked that out yet.
-The Archivist

Offline TheArchivist

  • Bot Neophyte
  • *
  • Posts: 6
    • View Profile
Project HYDRA
« Reply #4 on: June 16, 2006, 06:08:26 PM »
Recently I thought of a final elaboration to the Hydra's structure.

The biggest problem a hydra is likely to run into is that it inadvertently consumes conspecific batteries. I think I've thought of a solution: I am under the impression that ties do not have any collision detection, so this should work. The scout is tied to the spine, but it pops out and moves the veggie it is attached to inwards so that a) the hydra can recognize conspecifics easily and  the hydra can easily defend itself from a side attack.

On another note, I've started experimenting with coding, and there's some problems with how eggs work that I'll have to work out before this is feasible. I already know that this project will probably be one of the more complicated ones.

Does anyone know how to get a multicellular organism to turn? I had some ideas, but they're pretty much unworkable.

-TheArchivist
-The Archivist

Offline maheshjr2000

  • Bot Neophyte
  • *
  • Posts: 35
    • View Profile
Project HYDRA
« Reply #5 on: June 17, 2006, 01:35:02 PM »
Archivist the problem is that theres not a lot of good multicellular organisms out there. The only ones ive seen so far are(and correct me on this please if I am wrong) the bots in the multibot forum and none of them are as effective as the unicellular bots. Like it or not you are going to be a pioneer in this field.

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
Project HYDRA
« Reply #6 on: June 22, 2006, 11:07:05 AM »
Quote from: maheshjr2000
Archivist the problem is that theres not a lot of good multicellular organisms out there. The only ones ive seen so far are(and correct me on this please if I am wrong) the bots in the multibot forum and none of them are as effective as the unicellular bots. Like it or not you are going to be a pioneer in this field.
I don't know about that. Helios is pretty capable.
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 maheshjr2000

  • Bot Neophyte
  • *
  • Posts: 35
    • View Profile
Project HYDRA
« Reply #7 on: June 22, 2006, 02:16:48 PM »
lol I did say to correct me if I was wrong. Ill run some sims with helios but I dont have it, ill see if its in the beastiary.

EDIT: Helios has just become a symbiote of alga_parasite they hatch on to it and keep sucking energy till the age costs kill them. Or the veggies kill them either way una finished off a population of alga_parasite in minutes.

EDIT EDIT: Its a tie.
« Last Edit: June 22, 2006, 02:38:57 PM by maheshjr2000 »

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
Project HYDRA
« Reply #8 on: June 23, 2006, 01:43:23 AM »
While Helios doesn't kill off Una or The One, it really is a landmark for a unicell bot to kill helios under f1 conditions.
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 EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Project HYDRA
« Reply #9 on: June 23, 2006, 10:23:54 AM »
Someone still needs to explain to me why Helios works in 2.36.7.   If I read the DNA correctly, that it does so is a *bug* in that version.   It does not work (as its author intended) in 2.42.X, quite delibertly I might add, because its DNA (appears to me at least to) violate the rules for multi-bot actions as I understand them (it relys upon tie operations working before the bot is multi).

I have asked several times for someone to verify this without success so unless someone can point out to me why Helios is not incorrectly coded and convince me that it should actually work in 2.42.X (and consequently what should be changed in 2.42.X to allow it to do so) it will (quite intentionatly and correctly) remain broken in that code fork.
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Project HYDRA
« Reply #10 on: June 23, 2006, 12:27:24 PM »
Doesn't Helios use the tie commands that change length and angle that are supposed to work on a temporary basis?

Offline Light

  • Bot Destroyer
  • ***
  • Posts: 245
    • View Profile
Project HYDRA
« Reply #11 on: June 24, 2006, 06:17:41 AM »
From what I remember, Nums is right, in 2.37 dont know about 2.4x it is possible to manipulate a tie that hasn't hardened yet. I haven't really studied why Helios doesn't work in 2.4x, but from what I can tell it has more to do with the increase in range of the bots size than the ties themselves.
« Last Edit: June 24, 2006, 06:32:58 AM by Light »

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Project HYDRA
« Reply #12 on: June 27, 2006, 11:21:09 AM »
Quote
in 2.37 dont know about 2.4x it is possible to manipulate a tie that hasn't hardened yet.
It shouldn't be possible in either version.
If it CAN do so then Eric is right. it is manipulating a bug.

Ties that have not hardened should be completely inviolate. NOTHING you can do should have the slightest effect on them.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Project HYDRA
« Reply #13 on: June 27, 2006, 11:31:52 AM »
Quote from: PurpleYouko
It shouldn't be possible in either version.
If it CAN do so then Eric is right. it is manipulating a bug.

Ties that have not hardened should be completely inviolate. NOTHING you can do should have the slightest effect on them.

This is how I beleive 2.4 to be coded.  When I look at Helios, I see genes like this:

cond
*.robage 2 =
*.state 1 >
*.twin 1 !=
' *.state 3 !=
start
*.type .tie store
*.type .readtie store
40 .stifftie store
300 .fixlen store
*.state 1 add .out1 store
stop

which I just cut and paste out of the beastary.   Unless I misunderstand, no bot can be a multibot at age 2 and thus the use of .stifftie and .fixlen here violates the rules as I understand them.

Perhaps multi-botness is an inherited state value in 2.36?
Many beers....

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Project HYDRA
« Reply #14 on: June 27, 2006, 11:46:04 AM »
Quote
Perhaps multi-botness is an inherited state value in 2.36?
I must admit I have seen a few bots "sharing" on new ties and even on birth ties.
I never managed to figure out how it was possible.

As for stifftie, you can "set" it at age 2 but it should have no effect till the tie stiffens. It is a value that stays put forever so this is OK.

I don't think fixlen works that way tho. I think if you set it too early it doesn't do anything.
Frankly I don't really know how Helios works. I never actually tried to figure it out.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D