Darwinbots Forum

Welcome To Darwinbots => Newbie => Topic started by: PeaceHeather on January 13, 2010, 02:17:13 PM

Title: Yaheydere
Post by: PeaceHeather on January 13, 2010, 02:17:13 PM
Hello all,
I'm an intermittent geek, which is to say that when the mood strikes me, I'll dive into sims like this, and then I'll come up for air for several months before coming back around and diving in again.  I haven't even downloaded DarwinBots yet, but it looks extremely cool - mostly I've been playing with something called Darwin's Pond, and enjoying it immensely.

Apart from Alife type things, I'm a mom, henna artist, SCAdian, and general geek-of-all-trades - especially if they have pretty colors.  From the look of things, Darwinbots have pretty colors, so I should be good to go.

But here's the real reason I'm coming to the forum.

I came up with an idea for a sim/game last night, and based on other sims I've seen, it should be workable, but I'm not a programmer (okay, I guess I'm a geek-of-MOST-trades).  I do not have the FOGGIEST idea where or how to get something like this going.  I was wondering if DB has anything in it to simulate terrain, or if the bots could be programmed for different food types, sizes, speeds, all that good stuff.  Failing that, I was wondering if there are any programmer nerds around here with free time to play around with the concepts I'm working on.

It's one of those things that starts with simple parameters - although there are probably more of them than in a typical sim of this type - which you can combine to get a lot of complexity.  Users could build plant and animal lifeforms using those parameters, then throw them into the system and see what happens.  Since I was thinking of having different terrain types as well, users might even be able to build their own environment for the lifeforms to run around in.

It's mostly meant to be a food-chain simulation, but I'd also like to apply natural selection to the environment - except I don't really know how.  My idea varies from the other sims I've encountered mainly in sheer number of parameters, allowing for a more complex environment and, if I can figure it out, more realistic creature behavior -
if I could get some idea of how to give the animals the ability to vary their speeds, for instance, based on terrain or threat or whatever, that would rock.

Rather than spam you all with the details, I should probably stop here and see if there is any interest at all, and any advice or assistance here for the asking.  This looks like it's one of the ONLY active forums I can find on Alife, so I'm hopeful that I'll at least get one or two replies back.

Cheers, and it's off to download DarwinBots!
Heather
Title: Yaheydere
Post by: Panda on January 13, 2010, 02:31:34 PM
Hey PeaceHeather, it sounds like a great idea but I am sorry, sort of in the same position, I have no idea how to program really, starting with Microsoft Visual Basic but cant really do anything but that.
Title: Yaheydere
Post by: Numsgil on January 13, 2010, 04:00:39 PM
Yeah, not much activity on ecosystem type ALife.  You could maybe play with Darwinbots to get it to do what you want (shapes for terrain, program some bots or find some to use) but ecosystem sims have been unstable in the past.
Title: Yaheydere
Post by: Houshalter on January 13, 2010, 04:10:31 PM
If your ambitious and know db code, you could try to create a shepard bot which forces bots to evolve for specific niches.
Title: Yaheydere
Post by: PeaceHeather on January 13, 2010, 05:00:38 PM
Quote from: Houshalter
If your ambitious and know db code, you could try to create a shepard bot which forces bots to evolve for specific niches.

A whoziwatsis?

And, isn't DB already something of an ecosystem sim, since you have plant and animal types?  Or maybe I'm misunderstanding the term.

There are at least two extremely simple ecosystem sims I've seen that work okay - Darwin Pond, and another one called Bugs or something like that, which uses ground color to indicate plant density and water bodies as physical obstacles, kind of like shapes here in DB.  As for DB itself, I really only started running a couple of sims today, so it will be awhile before I do any programming.  And it doesn't look as though DB will allow the terrain types to be anything other than universally "passable" or "obstacle".

Oh well, wish me luck!  If I could find any other alife forums or communities that didn't look like they've been dormant for the past 8 years, I'd be able to ask around further, but... *shrug*

Thanks!
Title: Yaheydere
Post by: bacillus on January 13, 2010, 05:21:46 PM
Hi and welcome!
Funnily enough, I played with most of those ideas in a Java version of DB (Never quite worked out in the end   ). I think terrain was being played around with in DB3, but was given up along with 3D and a whole bunch of other ideas.
by 'plants', a 'bot', or cell, that is fed by the environment is meant, while by 'animals', a cell (or sometimes multicelled organsim) that eats other cells is meant.
I'm sure you could get a simple food chain going using a veggie that has shell to stop body feeding and encourage energy feeding, an energy-feeding vegetarian bot, a predator bot that eats body mass so it can only feed off non-algae, and a bigger predator, probably a multi-celled organism as they should be immune(ish) to being fed on by single-celled predators. All jibberish probably, but probably also the easiest solution  
Title: Yaheydere
Post by: Houshalter on January 13, 2010, 05:30:42 PM
A sheperd is a bot that encourges the evolution of other bots in the sim. Of course that won't mean anything if you've never experimented with the simulator yet. Its really confusing at first but I did it and I have the attention span of a...
Title: Yaheydere
Post by: bacillus on January 13, 2010, 07:44:25 PM
That reminds me, do we actually have a coding tutorial anywhere? The only way to learn it from scratch seems to be meticulous DNA dissection or already knowing somebody who knows the code...
EDIT=> After rereading this thread (again), I think I finally understand the confusion. You think this is an ecosystem simulation; while something like that is by no means impossible, DB focuses more on evolution rather than coexistence. A bot will often cannibalize unless it was hand-authored, and mutations change that easily...
Title: Yaheydere
Post by: Houshalter on January 13, 2010, 07:54:35 PM
Theres a tutorial somwhere. I have no idea where it is or who made it. If I can't find where it is I still have it saved on my computer so I can upload it as an attachment.


EDIT:  Here it is forgot about it: Click Here (http://www.darwinbots.com/WikiManual/index.php?title=PY_tutorial)



EDIT2: I tried the link and apparently it takes me to some website in spanish that tells me the file doesn't exist anymore. Anyone know where the tutorial went? You know the one with simplebot in it.
Title: Yaheydere
Post by: bacillus on January 13, 2010, 08:02:34 PM
Ick, first attempts at getting coexistence to work ended in a giant Hydra eating the veggies shell and all.
EDIT=> Must be something wrong with your browser. I can access the Simplebot easily...
Title: Yaheydere
Post by: Numsgil on January 13, 2010, 09:21:40 PM
Quote from: PeaceHeather
And, isn't DB already something of an ecosystem sim, since you have plant and animal types?  Or maybe I'm misunderstanding the term.

We aim to be but miss the mark a little bit.  Usually we have a single animal species and a single plant species.  For a true "ecosystem sim" I would like to see atleast dozens of very different species interacting and coexisting.  But if you try that in Darwinbots you usually end up with a single "victor" species of animal and vegetable.  Most alife sims fall flat in this regard, actually.

Quote
There are at least two extremely simple ecosystem sims I've seen that work okay - Darwin Pond, and another one called Bugs or something like that, which uses ground color to indicate plant density and water bodies as physical obstacles, kind of like shapes here in DB.  As for DB itself, I really only started running a couple of sims today, so it will be awhile before I do any programming.  And it doesn't look as though DB will allow the terrain types to be anything other than universally "passable" or "obstacle".

No terrain types.  Something we've been thinking about adding for newer versions but nothing's come of it yet.  Darwinpond is nice but it inevitably turns in to a monoculture (all one species).

Quote
EDIT2: I tried the link and apparently it takes me to some website in spanish that tells me the file doesn't exist anymore. Anyone know where the tutorial went? You know the one with simplebot in it.

That's italian actually.  The original author was italian.  In fact, be glad any of the program is in english   When I started tinkering with Darwinbots much of the program's source code and comments were in italian.
Title: Yaheydere
Post by: Houshalter on January 13, 2010, 09:28:01 PM
Just heres the tutorial I some how ended up with when I first started darwinbots a few months back. And no its in english.
Title: Yaheydere
Post by: PeaceHeather on January 13, 2010, 10:40:59 PM
Quote from: Numsgil
No terrain types.  Something we've been thinking about adding for newer versions but nothing's come of it yet.  Darwinpond is nice but it inevitably turns in to a monoculture (all one species).

 
True, though that's actually the intent: develop something successful.  The critters are set to only be herbivores, and as this is hardwired into the game you have no chance of creating perdators or omnivores.  In later sim runs I have tried importing two or more different "species" that are already demonstrated to be successful and letting them compete; it's interesting to see what works and what doesn't.

Oh, and the other system I was thinkng of is called BugFest, and is available at necrobones.com.  It's simple but cute; and it DOES have terrain types to a limited degree, carnivores, omnivores and herbivores, as well as "abnormals" that arise from random mutations - things like bugs that never reproduce but never die, for instance.  You can set lifespans for each creature type, but you can't modify their "stats" - and yes, they are borrowed straight out of gaming, using Strength, Dex, Con, Int, Speed and Vision.  This amuses me all by itself.

Hey look, I found the emoticons!
Cheers,
Heather
Title: Yaheydere
Post by: DrGrimm on January 14, 2010, 02:35:52 AM
Quote from: Houshalter
Just heres the tutorial I some how ended up with when I first started darwinbots a few months back. And no its in english.

I have been reviewing that tutorial often as well as the ones on the website and they seem to be quite useful, although when I'm trying to script a tie-bot the "functions" (not sure what to call them) don't work for me. (more specifically feeding through the ties)

and un-related to tie-bot I can't get the function for doing something every # of cycles doesn't work for me.

Quote from: PeaceHeather
Quote from: Numsgil
No terrain types.  Something we've been thinking about adding for newer versions but nothing's come of it yet.  Darwinpond is nice but it inevitably turns in to a monoculture (all one species).

 
True, though that's actually the intent: develop something successful.  The critters are set to only be herbivores, and as this is hardwired into the game you have no chance of creating perdators or omnivores.  In later sim runs I have tried importing two or more different "species" that are already demonstrated to be successful and letting them compete; it's interesting to see what works and what doesn't.

Oh, and the other system I was thinkng of is called BugFest, and is available at necrobones.com.  It's simple but cute; and it DOES have terrain types to a limited degree, carnivores, omnivores and herbivores, as well as "abnormals" that arise from random mutations - things like bugs that never reproduce but never die, for instance.  You can set lifespans for each creature type, but you can't modify their "stats" - and yes, they are borrowed straight out of gaming, using Strength, Dex, Con, Int, Speed and Vision.  This amuses me all by itself.

Hey look, I found the emoticons!
Cheers,
Heather

If you let the simulator run long enough mutations will be created that allow a species to cannibalize itself from them being too different.

additionally you can script your own species and not include ways for it to avoid eating it's own kind and even other species.
Title: Yaheydere
Post by: bacillus on January 14, 2010, 02:40:49 AM
Tie-feeding can be done in two methods:

1.) Sharing
99 .sharenrg store will distribute the energy so that this cell gets 99% of it.

2.) Feeding
-1 .tieloc store
-1000 .tieval store

I'm not sure if this works anymore, but the idea is to 'override' the cell's -1 memory (for feeding, much like the -1 shot is a special case of positive-number shots), then the negative number forces the cell to 'eat' negative energy, thus giving the parasite 1000 nrg. I think that's the idea anyway, there's a whole bunch of variables that don't work like you think/hope they do.


As far as interesting behaviour goes, Spiral from the interesting behaviour part of the bestiary and Seasnake/Tribolis from the starting gate (somewhere   ) are probably one of the better ones. The first shows some swarm behaviour, the other two are worms.
Title: Yaheydere
Post by: DrGrimm on January 14, 2010, 02:49:34 AM
Quote from: bacillus
Tie-feeding can be done in two methods:

1.) Sharing
99 .sharenrg store will distribute the energy so that this cell gets 99% of it.

2.) Feeding
-1 .tieloc store
-1000 .tieval store

I'm not sure if this works anymore, but the idea is to 'override' the cell's -1 memory (for feeding, much like the -1 shot is a special case of positive-number shots), then the negative number forces the cell to 'eat' negative energy, thus giving the parasite 1000 nrg. I think that's the idea anyway, there's a whole bunch of variables that don't work like you think/hope they do.


As far as interesting behaviour goes, Spiral from the interesting behaviour part of the bestiary and Seasnake/Tribolis from the starting gate (somewhere   ) are probably one of the better ones. The first shows some swarm behaviour, the other two are worms.
I think they used the 2nd one on the tutorial for the tie bots but I'm not sure where I'v seen the first one.. I'v been trying to make a tie bot that latches onto enemies (been testing on T_Preservans) but they seem to latch onto Alga_Minimalis and each other for some reason

that's the script I was using
I might be missing something

cond
*.eye5 50 >
*.refeye *.myeye !=
start
1 .tie store
stop
Title: Yaheydere
Post by: bacillus on January 14, 2010, 02:57:43 AM
Nothing wrong with amorphous globs. It's actually a sound strategy to entangle veggies into a bunch of conspecs tied together, then share the energy around. You may also want to wait until *.robage is greater than 20, otherwise you may be overriding the birth tie and forming a permanent one.
On a not totally unrelated note, refvar--myvar recognition is not too reliable, and one of the easiest codes to break by mutation. The current method of doing so is to put an arbitrary constant into, say, .out6 (-42 .out6 store) on birth, then using *.in6 *.out6 != to recognize other species.
Title: Yaheydere
Post by: DrGrimm on January 14, 2010, 03:07:19 AM
Quote from: bacillus
Nothing wrong with amorphous globs. It's actually a sound strategy to entangle veggies into a bunch of conspecs tied together, then share the energy around. You may also want to wait until *.robage is greater than 20, otherwise you may be overriding the birth tie and forming a permanent one.
On a not totally unrelated note, refvar--myvar recognition is not too reliable, and one of the easiest codes to break by mutation. The current method of doing so is to put an arbitrary constant into, say, .out6 (-42 .out6 store) on birth, then using *.in6 *.out6 != to recognize other species.

brilliant!

thanks for the help

but I must be going, I need to finish a powerpoint for school X_X it's 2 AM
Title: Yaheydere
Post by: bacillus on January 14, 2010, 03:15:53 AM
Glad to help  
Title: Yaheydere
Post by: PeaceHeather on January 14, 2010, 11:15:40 AM
Quote from: bacillus
As far as interesting behaviour goes, Spiral from the interesting behaviour part of the bestiary and Seasnake/Tribolis from the starting gate (somewhere   ) are probably one of the better ones. The first shows some swarm behaviour, the other two are worms.

Flocking behavior?  There's something else I'd love to be able to figure out - I know that the mathematical "rules" are supposedly very simple, but that whole not-a-programmer thing gets me every time.

Quote from: Houshalter
A sheperd is a bot that encourges the evolution of other bots in the sim. Of course that won't mean anything if you've never experimented with the simulator yet. Its really confusing at first but I did it and I have the attention span of a...

A T-shirt I MUST own someday reads, "All my friends tell me I have ADD, but I don't know what they're oh look a chicken!"



Heather
Title: Yaheydere
Post by: Numsgil on January 14, 2010, 11:59:37 AM
There are some flocking bots you can look at.  Fish School (http://www.darwinbots.com/Forum/index.php?showtopic=305) is an early bot by me.  There's also SWARM (http://www.darwinbots.com/Forum/index.php?showtopic=1156) which behaves more robustly.
Title: Yaheydere
Post by: PeaceHeather on January 14, 2010, 02:23:46 PM
Thanks, I'll download those right away.

A question: Why the heck do my bots keep shrinking?  I'm just running Alga and Animal Minimalis, but the animals keep getting smaller and smaller, until they reach a point where they stop to feed while their shots are still out of range.  To keep them alive I'm shoving algae on top of them, but even when I can get food into them, they don't seem to grow.  What's up with that?
Title: Yaheydere
Post by: Houshalter on January 14, 2010, 04:39:08 PM
Under the General settings tab theres a "veg Body/Nrg  distribution". Set it to 25 or 50 percent and watch the vegs bulk up as well as the bots that eat them.
Title: Yaheydere
Post by: bacillus on January 14, 2010, 04:51:03 PM
Every time a bot reproduces, a percentage of both its energy AND body mass is transferred, and feeding only regenerates energy (up to a certain point). Most of the simplistic bots don't have any genes which regenerate this body mass, so body feeding and reproduction which make the bots smaller and smaller...
Title: Yaheydere
Post by: Houshalter on January 14, 2010, 05:04:43 PM
Ya but to quote the wiki:
Quote
After body and energy shots hit a bot they receive a -2 shot back in proportion to the damage caused by the original shot in the ratio of: 95% energy, 4% body and 1% waste. .shootval increases the range and strength of such a shot.
If the veggies have lots of body then the bots will get some of it.
Title: Yaheydere
Post by: Panda on January 14, 2010, 05:09:28 PM
Quote from: Houshalter
If the veggies have lots of body then the bots will get some of it.

But if they dont have lots of body, then they wont get much body, you can use the function of "fixed bot radii" to keep them looking the same size, I dont know whether it effects their ammount of body.
Title: Yaheydere
Post by: bacillus on January 14, 2010, 05:13:50 PM
Ah, but the power of the shot is proportional to the mass of the bot itself, eg. small bot grow less than big bots. And believe me, once they get small, they stay small.
Title: Yaheydere
Post by: Houshalter on January 14, 2010, 06:11:16 PM
Mabey, its never been a problem for me.
Title: Yaheydere
Post by: bacillus on January 14, 2010, 08:43:38 PM
It's still useful to have some type of body control gene. .strbody converts energy to body in a 10:1 ratio, and .fdbody does the reverse.
Title: Yaheydere
Post by: Houshalter on January 14, 2010, 08:48:59 PM
Couldn't you put a negative value in .strbody?
Title: Yaheydere
Post by: bacillus on January 14, 2010, 08:59:45 PM
No, but I usually duplicate the value and then use - .fdbody store, so any negative stores are inverted into positive feeds.