Author Topic: Community project (now pretty much defunct)  (Read 17913 times)

Offline Griz

  • Bot Overlord
  • ****
  • Posts: 608
    • View Profile
Community project (now pretty much defunct)
« Reply #15 on: January 26, 2006, 05:10:26 PM »
Quote
I have uploaded my Ant-bot 5 to the beastiary. You might want to use some of the concepts from it in your project.

To get the best out of my ant bot run 2 or 3 copies of the same species against each other so they can each have a unique color. Only make one of each and give it a bunch of energy. It will feed until it gets 30,000 energy then it will start a new hive and make workers.

Run in size 2. If you go to size 3 or above you might crash the program because the ants use X and Y coordinates to move around. Since these are stored in memory locations that can only go up to 32000, anything above that in screen size will crash it.

(I still think I a going to have to go to "double" type variables in the next version of V2.36)

If you have set it up as descibed you should get several colonies develop. In each one, the workers will always return to their own queen to feed her. In Ant-Bot 5, the queen has the ability to defend herself by brainwashing workers from enemy colonies.
need some details, PY ...
or perhaps a settings file to get the environment right.
I run it in 2.36.7
3 versions of Ant, each starting with 30000 ...
100 veggies ...
they cruise around, losing energy rapidly ...
sometimes shooting at veggies or one another ...
and then die.
have run it 20 times or so ...
same results every time.
no reproduction or hive building ...
they just move around losing energy and then die.

tried with a starting population of 5 for each ant version ...
thinking maybe they aren't all initially born as queens ...
but get the same results.

how can I tell from the console if it is a queen?
what number in what location?

some hints, please.

thanks
不知
~griz~
[/color]
   "The selection of Random Numbers is too important to be left to Chance"
The Mooj  a friend to all humanity
[/color]

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Community project (now pretty much defunct)
« Reply #16 on: January 26, 2006, 05:38:56 PM »
it can sometimes be awkward getting them started.

Try setting them to 5,000 energy rather than 30,000

Make sure there are plenty of veggies. At least 150.

Sometimes you might need to pick up one of the infant future queens and physicaly aim it towards a patch of veggies or reposition one to feed better.

Once the young queen absorbs enough food, she will stop feeding and make a bee-line to a randomly determined location for the new hive. Once there she will begin to rotate on the spot and will spit out one or two young who will head off in search of food.

You can always recognise the queen because she is the only one spinning.

Here is a settings file that works for me. The paths to the bots may be wrong for you though.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Community project (now pretty much defunct)
« Reply #17 on: January 26, 2006, 05:41:14 PM »
you might want to lower the costs a little too. I just realized that this settings file has very high costs for saving to memory.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Griz

  • Bot Overlord
  • ****
  • Posts: 608
    • View Profile
Community project (now pretty much defunct)
« Reply #18 on: January 26, 2006, 06:59:14 PM »
Quote
Here is a settings file that works for me. The paths to the bots may be wrong for you though.

well, some path is as I get a crash.
looking in your settings ....
I see "&#\Robots"
don't know why that wouldn't work as long as I have my Robots folder
in the DarwinbotsII folder, eh?

ahha!!!
got it.  your settings point to "Ant-Bot 5.txt"
and the name of the one I just downloaded from here is  "Ant_Bot5.txt"
with an underline rather than a dash.

ok. got it working.
what I had before was ...
they would feed until reaching 30000, then begin to wander ...
but never reached a place where they would stop and start
a hive, just wandered on losing energy until 'poof'
or ... would begin to spin, but never produce any offspring ...
energy varying around 500.
also noted that on occasion, even when feeding ...
the energy gets stuck right around 5000, dipping to 49xx something
and back to 5000, nothing else ever happening.

btw, as they have to get to 30000 before moving on ...
why start them way down at 5000?
just wondering.

I never did alter the costs ...
have no idea what to change.

well, it works anyway ...
thanks.

I like this idea of doing an ecosim ...
kinda what I was looking for all along ...
trying for some stable ecosystem populated by a number of species ...
all with their own niche, yet dependant upon each other ...
rather than about the last one standing.

where the hell did this Elite dude come from!?!?!

I can't understand but 1/100th of what he says but ...
excellent!!!! ;)
不知
~griz~
[/color]
   "The selection of Random Numbers is too important to be left to Chance"
The Mooj  a friend to all humanity
[/color]

Offline Old Henk

  • Bot Destroyer
  • ***
  • Posts: 229
    • View Profile
Community project (now pretty much defunct)
« Reply #19 on: January 27, 2006, 07:42:17 AM »
Quote
Post to participate in the project  :)
Post Post ;)

How do you want to set this thing up? I say we have one project leader (Elite), who receives input from the other participants and then tells people what to do. I strongly feel that one person giving specific goals to participants is important, as it would become extremely chaotic and inneficient if done on a do-what-ye-wanna-do basis.

So... what do you want me to do?  ^_^

Henk

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Community project (now pretty much defunct)
« Reply #20 on: January 27, 2006, 09:13:22 AM »
Quote
they would feed until reaching 30000, then begin to wander ...
but never reached a place where they would stop and start
a hive, just wandered on losing energy until 'poof'

That is an issue with the settings that I posted. I didn't realize until afterward that the cost of a store is set to 5 energy. That is ridiculously high and I have no idea how it got set that big. Make it about 0.2 and they will survive to start a colony.

Quote
also noted that on occasion, even when feeding ...
the energy gets stuck right around 5000, dipping to 49xx something
and back to 5000, nothing else ever happening.

Yeah. I saw that too. I think there is some kind of glitch. If you grab one of these bots and pull it away from the veggies, it will go straight back in and reach 30,000 almost instantly.

Quote
btw, as they have to get to 30000 before moving on ...
why start them way down at 5000?
just wondering.

because at some point they start to convert energy to body. The code assumes that if they are at 30,000 (rather than the trigger at 32,000) then they must be feeding pretty well so they will search for food and simultaneously store body, then often not make it to a food source or become a queen ever. Probably need to reprogram that part of the DNA when I get around to it.


Quote
where the hell did this Elite dude come from!?!?!

Dunno, but he has a particularly good grasp on complex chains of commands and how the stack works. Kind of makes me wonder if Endy has cloned himself  :D
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Community project (now pretty much defunct)
« Reply #21 on: January 27, 2006, 11:20:27 AM »
Hi  :D

OK, seems like this project could take off. I've already got some Ideas as to how to orgainse the construction of Wraithbot/Hivebot.

Thanks to Henk and Ulciscor  :D

Henk: If you want something to do now then go over PY's antbot and Black Ant and take a good look at the code  :)

Ulciscor: Thanks, we'll need some moral support and 'people coordination'  :)

Henk and Ulciscor: If you know how to manage/edit wikis then you will be in charge of that as of right now  :)
« Last Edit: November 18, 2006, 02:56:50 PM by Elite »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Community project (now pretty much defunct)
« Reply #22 on: January 27, 2006, 12:55:12 PM »
I can help a little bit.  Especially with the code architecture, to help keep all the parts organized maybe.

Offline Old Henk

  • Bot Destroyer
  • ***
  • Posts: 229
    • View Profile
Community project (now pretty much defunct)
« Reply #23 on: January 27, 2006, 01:09:53 PM »
I can help, too. I'm no Endy-like-DNA-Master, but I know how to write a bot or two :)

Offline Old Henk

  • Bot Destroyer
  • ***
  • Posts: 229
    • View Profile
Community project (now pretty much defunct)
« Reply #24 on: January 27, 2006, 01:13:35 PM »
Quote
Henk: If you want something to do now then go over PY's antbot and Black Ant and take a good look at the code  :)
Will do! :)

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Community project (now pretty much defunct)
« Reply #25 on: January 27, 2006, 02:02:15 PM »
Highly doubtful if I will have any time although I would like to help.

I thought I was in for a quiet day until 10 days worth of work with a 5 day deadline landed on my desk this morning. I get the feeling that I won't even get a weekend this week.  :(
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Community project (now pretty much defunct)
« Reply #26 on: January 27, 2006, 02:11:17 PM »
Might as well start things rolling

OK, here's the plan (massive amounts of info here!):


*****************************************


I am using 'wraithbot' to refer to the 95% caste and 'hivebot' to refer to the species

Heirarchy:

Queen - Head of the hive, unlike Ant queens is mobile but stays in the hive. Self-sufficient unlike Ant queens but all hivebots will protect her. Issues orders using .out/.in. There is only one Queen per hive. Queen makes high-level decisions. Keepers report information about the current state of the map to her. Queen reproduces once to produce a new queen.
- Queen DNA deals with decision-making with simple self-sufficiency routines.

Keepers - 1-5% of the population will become Keepers at birth. Keepers usually patrol the hive but occasionally wander the map gather information. Keepers make low-level decisions and 'report' information to the Queen. Keepers are sterile.
- Keeper DNA deals with information gathering with more complex self-sufficiency routines.

Wraithbots (soldiers/drones) - Far more autonomous than Ant workers. They reproduce and are self-sufficient. They go into hibernation at the command of the Queen and the Keepers when food is scarce, and are woken by the Keepers. 90% of the population.
- wraithbot DNA deals with hibernation and feeding/breeding, and the ability to stay in constant communication using .out/.in. Each wraithbot must 'report in' at the hive periodically (to control the population ie. hibernation)

Life cycle and feeding patterns:

The simulation is started with a few hivebots, a simple prey species and veggies. Veggies get 10 nrg per turn. The sim is run on a large (2-4) map

The hivebots will go to a prearranged point on the map and 'elect' a queen. The queen will act as a normal wraithbot but will coordinate the ordinary wraithbots and search the map for a good hive (at the start). The wraithbots will scour the map and feed heavily, but leave some prey alive. When the Queen and Keepers decide that their pray's numbers have fallen too much, then they will tell the other wraithbots (via .out/.in) to hibernate. As each wraithbot returns to the hive they will see the hibernating hive and do the same. The keepers will then stay alive and monitor their pray's population levels. They will venture outside the hive occasionally to feed on their pray, but in not as great a numbers as the regular wraithbots. When the Keepers feel that the population of their pray has reached sufficient levels for another feeding then they will return to the hive, tell the queen (who will decide based on what her other Keepers say) and wake the hive. The hivebots will then wake and cull the pray population until the Keepers send them to sleep again.
I would like to make them solely carniverous, but they can eat veggies if ther're desperate.

The hive:

The Queen picks a location for the hive at the start. It is somewhere as far away from the pray populations (communities) as possible.

It will be a single point (two numbers), but also have a boundary set with 2 points (opposite corners). Altogether: four numbers define the hive boundary, and two define the central point.

The Pray Species:

Need a bot that doesn't reproduce too fast and isn't exceptional at fighting. It also needs to be very communal and stay in one 'territory' (ie. one third of the map? - maybe they can lay down borders using x,y coordinates). A neat Idea would to allow them to come out to the hivebots if they have enough energy collectively. They also share nrg among their species. There will be many 'communities' of prey.
 - And it hasn't got to be too complicated, but theres alot of flexibility here.
A highly territorial but communal and benevolent species.

Costs:

Set lower than usual so that the bots don't have to spend all their life feeding. Ie, the hivebots set up their hive in an entirely different section of the map to their prey and venture out to eat them periodically. More time for interesting behaviors.

Decision making:

The Queen must decide:
- When to hibernate (if in doubt, hibernate)
- When to stop hibernation (if in doubt, sleep in longer)
- If a prey community is becoming too much of a threat
- Which pray community to cull and when

The Keepers must:
- Gather information to give to the Queen
- Plan feeding patterns?

The wraithbots must:
- Note anything interesting
- Make periodic stops at the hive if the are out feeding

Hive information flow:

The wraithbots return to the hive periodically to check up on hibernation status etc. and give interesting information to the Keepers. The wraithbots will also go back to the hive if they see something worth reproting.
The Keepers wander the map and report locations of prey communities, prey populations veg concentrations, worker progress etc. to the Queen.
The Queen processes the information

In/Out:

In/Out will be used extensively for communication, and a special 'hivebot language' may well have to be developed, consisting of in/out sequences. Something like:

1) Wraithbot puts 1 in .out1 to catch a Keeper's attention
2) Keeper replies by putting 2 in .out1
3) Communication begins in earnest:

Code: [Select]
            out2   out3   out4   out5
             64     83     91     53

"Defend the hive!" (just so you get the idea)

4) Keeper puts 3 in .out1 to say that it has recieved the communication
or
5) Keeper puts 4 in .out1 to ask the wraithbot to repeat the communication

A lot of flexibility here too


*****************************************


Now how to code all that into a bot? - that's what you're here for  :D

If you have any ideas or are just interested then you can start thinking about how to code hivebot and playing with ideas straight away.
If you want to work on a specific section of Hivebot then say so when you first post.


You MUST share information on this project. If you have an idea then tell it to the rest of us.

[span style=\'font-size:14pt;line-height:100%\']KEEP THIS THREAD TIDY [/span]

And try to keep this thread on topic please.


 :P


*****************************************


Assignments (I will add to this as more people get involved):

Henk: I'm pretty sure that I want you to work on the Prey Species (see above)  :)

Ulciscor: Can you do the wiki? (ie. maintain the page about Wraithbot/Hivebot - one already exists, copy and paste the relevant sections of this post into it etc.)  :)

Numsgil: Yep, you can help fitting code together during the later stages and orgainsing the code-writing  :)

PY: Thanks anyway  :) . You can lend some moral support and help with some little bits of coding when you get time.

If any of you have any good ideas about this project just PM me  :D


Jobs to do (I will add to this over time):

- Work on communication and the 'hivebot language' - any volunteers?
- Work on decision making and gathering information, especially the Keepers' gathering information on the Pray Species  - any volunteers?
- Work on generic survival code for the hivebots (reproduction, fighting, self-sufficiency etc - I'll probably do this once the basic hive routines are complete etc.)
- Work on setting the different types of hivebot and 'electing' the queen (highest nrg bot?) - any volunteers?

Go here if you're particularly interested in the bot communication and information gathering

UPDATE: Henk's just had a brilliant idea (see this thread) about hibernation. We now don't have to use 'conditionless coding' for hibernation - the vegs will sustain the hibernating wraithbots

UPDATE: Praybot v1 is out. Take a look


Fingers crossed  :)
« Last Edit: January 29, 2006, 07:28:33 AM by Elite »

Offline Griz

  • Bot Overlord
  • ****
  • Posts: 608
    • View Profile
Community project (now pretty much defunct)
« Reply #27 on: January 27, 2006, 03:50:19 PM »
PY's Ants

ran this in non-toroidal mode with a small amount of gravity ...
pretty cool.
but as I like the physics in 2.4 more ...
ran it there as well.
seems all the queens end up going 'out of bounds' and then
doing nothing.  any idea why that might be?
any way to code the dna of the bot to not go out of bounds?
btw, I do use the smallest res screen ....
is the hive location 'locked in'?
and might it be outside of the smallest dimensioned screen?

tanks
不知
~griz~
[/color]
   "The selection of Random Numbers is too important to be left to Chance"
The Mooj  a friend to all humanity
[/color]

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Community project (now pretty much defunct)
« Reply #28 on: January 27, 2006, 04:09:59 PM »
On the topic of ants and v2.4:
Try Black Ant, It's easier to get started than PY's ant but 'borrows' a lot of the concepts and coding from it, and lacks the oh-so-interesting queen-conversion ability.
I have 2.4 but never use it because it seems so unbelievably buggy, I'm waiting for a stable release  :)


Anyone else want to help with the project  :) ? What about you Griz?

Offline Griz

  • Bot Overlord
  • ****
  • Posts: 608
    • View Profile
Community project (now pretty much defunct)
« Reply #29 on: January 27, 2006, 06:03:16 PM »
Quote
On the topic of ants and v2.4:
Try Black Ant, It's easier to get started than PY's ant but 'borrows' a lot of the concepts and coding from it, and lacks the oh-so-interesting queen-conversion ability.
I have 2.4 but never use it because it seems so unbelievably buggy, I'm waiting for a stable release  :)


Anyone else want to help with the project  :) ? What about you Griz?
I would be of no help programming dna at this point. ;)
but do hope via this project to learn a bit about it.

I might be able to assist a bit with the wiki ...
that I have some experience with ...
but limited time to spend online in the immediate future.
seems that pesky real life stuff kinda cuts into it. ;)
let me know what you need wikiwise and I'll see.
I did go ahead and put your opening 'community project' spiel there.
不知
~griz~
[/color]
   "The selection of Random Numbers is too important to be left to Chance"
The Mooj  a friend to all humanity
[/color]