Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - AZPaul

Pages: [1]
Bugs and fixes / Single Bot Simulation
« on: August 06, 2005, 12:23:42 PM »
Hey y'all.

It's been a while since I said anything, since I've had nothing much to say, but now that's changed.

Oh, I've been lurking in the corners periodically, loading updates, laughing at bunnies and such, looking for strange things like [begin hint] a working .sexrepro [end hint] and [begin hint] some utility to get access to Bot memory locations that I can import to Excel [end hint] and like that, but I just haven't had a lot to say.

Well, now, that's changed.

While patiently awaiting these additional capabilities I really haven't been able to devote much time to this little hobby. Not that I don't have the time to devote, but running my evo sims time and time again without being able to extract the data is pretty useless in my view and, frankly, is boring. So I decided, after feeling that hankering to do some exploring of other aspects of DBII, that I would create another simulation bot. Thus the trouble begins.

I suppose most Bot makers write a few lines of code, cut and paste genes from existing Bots, making a precursor of what they want and throwing the new bot into a small limited sim to see what happens. Well I'm not too different from everybody else so I do that too.

Just a simple little thing Bot. Just walk around, find a veggie and have some lunch. That's all. The grand design can wait till the basics are working, right? Cept the basic wasn't working.

Now, I was somewhat embarrassed by having you helpful people point out missing 'stop', 'end', 'store' and like that in some of my previous code (help for which I am still grateful btw) and was not about to trip over some obvious piece of junk code again if I could help it. So I did some extensive desk checking (I mean, my god, how screwed up could 15 short genes be) but no problem there.  Honest.

After some exhaustive, and, if I may say, brilliant, troubleshooting, this is what I've done and what I see.

A single simple little pre-bot goes into a simple small field with plenty of veggies upon which to feed. She snuggles up to a veggie, zaps it with plenty of -1 shots, gets no energy in return, exhausts her energy and pops like an overripe tomato. Not good.

I have my other simulation setups and I know my PA Alpha bot really works, feeds, survives, prospers. Thinking that maybe I have somehow screwed up this new small field by fiddling with veggie energy, veggie numbers and the like I put a single proven Alpha into the new field and let her loose. She snuggles up to a veggie, zaps it with plenty of -1 shots, gets no energy in return, exhausts her energy and pops like an overripe tomato.

Obviously, I've f#<&%@up the sim field. So I abandon the new field for the larger ones where my Alphas and Deltas live in veggie engorged splendor and I know all is well with the universe. A single simple little pre-bot goes into my well established and working-fine sim field with plenty of veggies upon which to feed. She snuggles up to a veggie, zaps it with plenty of -1 shots, gets no energy in return, exhausts her energy and pops like an overripe tomato. Shit.

Can't be. Run the main evo sim with my Alphas, everything works. Veggies get shot, give up energy, everything works.

Wait! A single pre-bot vs multiple Alphas. Naw, couldn't be.

A single known working Alpha goes into my well established and working-fine sim field with plenty of veggies upon which to feed. She snuggles up to a veggie, zaps it with plenty of -1 shots, gets no energy in return, exhausts her energy and pops like an overripe tomato. Ah!

Put in 5 Alphas. Some of them are being fed by the veggies, periodically. Seems that if only one Bot is feeding the veggies will not give up their goods, no little white dots appear. If a second Bot starts to feed on the opposite side of the field those little white energy dots stream out of both veggies just fine for both bots. Eventually, however, all succumb to the famine and perish.

Put in 10 of the new little simple pre-bots and everybody feeds just fine and goes about their little daily lives. Nothing is amiss with the little simple pre-bot. Nothing is amiss with the sim field layout or parameters.

But only one new little pre-bot or only one lonely Alpha or only one bot of any type in a simulation will not be looked upon kindly by the veggies and will starve to death.

Something is not right in Bot-land.

Two questions:

1. Why?

B. Anyone else seeing this?

3. Have I lost it? Am I in a Twilight Zone episode? Do I need to re-do my meds, again?

d. Did you know that the Fermi paradox can be easily resolved if we consider the possibility that we may be one of the first intelligent species to arise in this gallaxy? Someone has to be first, yes? There may be plenty of 'others' out there just no one has yet made it to the point where they send messages into the sky and listen for answers like we do. Maybe the ones that are doing so are on the otherside of the gallaxy and are too far away for either of us to yet discern the other.  There are hundreds of resolutions to the Fermi Paradox that do not preclude the existance of intellegent (even young inter-stellar) species in this gallaxy.


Old Suggestions Awaiting Programming / Simulation tools Part 2
« on: April 20, 2005, 03:03:47 PM »
It's my own *^%# fault. I just assumed. Almost a religious zeal of surity.

I've gotten around the issue of .sexrepro and have a basic sim with just the right veggie count, energy count, bot count, field size, working DNA, does what I want in the way I want it done. I can run a million cycles maintaining a stable population under selection pressures with no halts, crashes, finger pokin' repopulates. No messiness. I'm ready.

Then reality hits. Bummer.


Certain sexual selection criteria will inevitably lead to "runaway" overexpression of those attributes upon which the criteria are based. Bird tail length being the attribute in my sims.

Female selection of mates based upon the males tail length is set within a certain range. Not too big, not too short. Random shifts in available males together with random shifts in female preferences would seem to produce a random mix of population over the generations.


There is a restraining wall to the left side of the curve. You cannot have negative tail length. There is only one direction for the "random" shifts to populate over time and that is to the right side of the curve (larger length/preference). Over generations, therefore, the base average tail length will move right (get bigger). Then, with female preference for longer tails and more males with longer tails, the selection scope becomes a self-enforcing cycle and will, in theory, lead to explosive growth in even longer female preference and male tail length.

This is an experiment to test the hypothesis. As you well know, in experiment you strictly control all variables except the ones you wish to test. DBII mutation control is too varied. It turnes ".tail_length" into ".mkvirus" or memloc "981" into ".up" or "*.sex 1 =" into "*.repro 1 =" and so on. You end up with females mating with females and androgenes creatures mating with everyone, including veggies.  Not very realistic in this instance.

Through the free memory values I can "simulate" mutations of my test variables more closely and more realistically.

I had assumed snapshot would give the bots DNA and memory values. I could then import to Excel and manipulate the data. Wrong!

I can't get to the data!  I refuse to go through one bot at a time recording memory values from the console for 600 bots.

May I have access to Bot memory, please? Preferably from within a .txt file like Snapshot? Please?


Bugs and fixes / Velocity Issue
« on: April 14, 2005, 02:06:43 PM »
OK, I'll try to get all this across, again, without having the site blow up at me.

As I was saying before I was so rudely interrupted:

Sorry PY,

I am still having the same velocity issue in 2.36.4.  Maybe it is me.

Once I've loaded this I'll d/l and test. I may send up individual files if this does not work.

This one contains two bots, settings and 2 (not 3, Forum Mgr, just 2) screenshots of sim consoles.

IF I CAN GET OVER THE *&%## FORUM restrictions this may actually load.

And away we go.


I always thought 96k was LESS than 100k. I guess the Forum Mgr has some advanced math training I missed. bout two bots, settings and 1 (ONE %&**@# MEASLY) screenshot.

Hmmm...invalid or corrupted.  Try this.


Bugs and fixes / The Power Veggie
« on: April 07, 2005, 04:56:45 PM »
Not that I am complaining, mind you. The lettus munchers love it.

Has anyone else noticed that when you pause a sim to use the console all veggies instanly are empowered with a full 32000 energy?


DNA - General / Velocity, maxvel, mass & like that
« on: April 07, 2005, 02:18:08 AM »
Let me begin by thanking y'all for all the answers past , present and future. Y'all are all much appreciated.

OK, so let me summarize:  

The maxvel is calculated using cell size and mass of cell and what?

Cell size is what? # bodyfat points? .nrg? amount of poison, venom, waste stored?  Shell value? Is .robage part of the calculation?

Mass is what (yes I know what mass is, but, I mean what does the program take as "mass" determinants)? # bodyfat points? .nrg? amount of poison, venom, waste stored?  Shell value? Is .robage part of the calculation?

My problem is this: My preditor bot starts out maxvel 55 and slowly deteriorates. Makes sense. No Prob. Poor girl gets old, puts on some fat (waste), slows down. So now comes Missy. She is born with maxvel 52? Huh? So I watch and I fiddle (console view) etc. I don't like what I see.

I find lots of Alphas (prey, piece of meat) with about the same amount of energy, same waste accumulation, same age as the predator Delta. I do not use poisons, shells, venoms, body fat, none of that. Maxvel of the lunch is considerably better than for the diner.

Leads to poor diet habits, starvation, hooliganism, grows hair on the palms. All in all, not good form.

Here is a more extreme example, but a true one I assure you:

Delta:  age    615     waste   29     nrg   3315    maxvel  28
Alpha:  age  3644     waste   95     nrg   3295    maxvel  51

Where is Delta's velocity?  Who took it? (Yeh, I know, the Alpha took it. How?)

As I said, I do not use shell, poison, venom, body, etc. etc. etc.  Just plain old shoot and poop.

What other determinants affect maxvel?  DNA length? Bot color? Phase of the moon? Dark energy?

Thank you, again, for your patience.

Let's see now. Some wonderfully interesting and useless bit of trivia.
Ah, I know.

We cannot see planets around other suns in our telescopes but can infer their existance by the wobble a massive planet imposes on its sun. Thing is, we cannot see the sun's wobble with our telescopes either.

What we can see is the light spectra of the distant sun. We infer the wobble by the small slow periodicity of the red/blue shift in the star's spectra over many months. And the raw data of this shifting must be modified by the relative velocity of Earth, away from and toward that distant sun, as we pass through our own orbit over those many months.

Arrivederci, y'all.


DNA - General / Racial memory
« on: March 30, 2005, 08:25:38 PM »
Since the "search" function is down I'll do it this way.

In some post in some topic on one of these boards I remember reading about certain mem values (in the 900s) transferred to baby after the 20th cycle of the birth tie. I can't find it.

Would some kind person please repeat the info? What memloc's?

I promise I will, this time, copy and paste the info into my own documentation for future reference.

Thanks, as always, people,


DNA - General / Math stack issue
« on: March 29, 2005, 01:03:43 PM »
I feel so [you](*&% [/you]incompetent.

How could something so [you]&*^%[/you] simple cause me so much [you]&^%&#@[/you] headache!

Eye values:  0 0 0 0 0 0 24 24 24


'----- #21  Something to the right - turn
  *.eye5 *.eye4 add *.eye6 add 0 =
  *.eye7 *.eye9 add *.eye1 sub *.eye3 sub 0 >
  100 .aimdx store

Unless I have a totally bogus view of how the [you]&(*^^#[/you] math stack works both of these [you]&^$@@%*)[/you] conditionals should return me a [you]*&%$@[/you] "true."

So why the ever lovin [you]&^%$[/you] won't this stupid [you]%*&^[/you] gene fire?

No other genes executed during the cycle (but this one was supposed to, the [you]&^%$[/you] thing). So what the [you]*&^$@#*((&%[/you] is going on here?

Embarassingly yours,


DNA - General / Console question
« on: March 28, 2005, 02:04:48 PM »
Howdy, y'all,

Question on what I'm look at on the console.

If my understanding is correct the memory block I can see in the console is the one built [you]after[/you] program execution [you]before[/you] the DNA acts on it. Yes?

Much obliged,


DNA - General / Exploding Babies - Help!
« on: March 25, 2005, 02:27:54 PM »
I am lost. My head aches. I cannot see the issue through my tears.

My Delta is down. All of her babies explode on cycle 1.

I've read (and experienced) that this is usually a coding problem in the DNA (missing start, stop, etc.). I can't find it.

Maybe momma is shooting the baby? I've no-op'ed, coded around, conditionalized mom's feeding genes to no avail.

I no-op'ed the "birth tie" genes, movement genes, everything I could think of.  Sadly, Delta's babies still poof like a bullet in a campfire.

She was working and I've compared old version with this one and can't see where I've  #$*^'ed up.

To run a properly controlled sim I need my Alpha-1 (will not mutate), Alpha-2 (allowed to mutate) and selection pressures (food & predator) all well adapted to their present starting niche. I did not like Delta's hunt routine and made copious modifications. Now she's done got broke and I can't see the fix.

Anyone with some time and inclination, please help.  She is attached.

Be gentle with her.

Heartbrokenly yours,


DNA - General / 5 Questions re DB opns
« on: March 24, 2005, 03:13:16 PM »
Howdy 'gin folk,

Some simple inquiries to facilitate my understanding:

1.  Console

Usefull debug tool. Console window says "type help." Do that...nothing happens.
Can we see a bot's specific memory values thru console? Also, would like ability to expand that window some to see more.  My DNA is (as am I) quite verbose.

2.  Specific to memloc/memval

Do we have to "shoot" .eye5 to gain these values? I've looked for an example, not extensively tho since I'm being somewhat lazy this week, and can't find one.  If I shoot a memloc thru .eye5 does the target bot have to "shoot" back the memval? (I hope not). Any code example (some specific bot in the library)?

3.  Criteria for "Saving Best Bot"

Is this based soley on # offspring produced (I would assume) and what is the tiebreaker when you have 30 bots with same # of prodgeny?

4.  Organism vs DNA save

Say what? So once the best is saved I have to go back retrieve it into a sim and capture the DNA? The DNA is the organism, yes? Why not just save the bot's DNA in the usual .txt format? There is a reason, I'm sure. What is it? What am I missing?

5.  DNA limits

In building my base evo sim bots I am throwing all code efficiency to the cows.  I am purposely breaking gene conditionals into separate genes using switches/triggers for control. When .sexrepro is working well enough the gene swap routines will produce copious variability. I have a base herbivore now that goes out looking to cuddle up to a mate (proximity sets off the .repro gene) and I haven't even built in the sex selection criteria yet. She just gets close enough to any other of her species and drops the kid. Already up to 30+ genes. What are the limits? # of genes? overall DNA length?

OK, I lied, again. 6 questions.

6.  Racial memory

The racial memory is passed onto junior one location per cycle after the 20-cycle birth tie is severed?  Even if mom & junior are in the process of swimming away from each other? Is this intended to be the "nurture" side of the "nurture vs nature" duality? No, I'm not complaining. I can make use of this.  Just curious.

I gotta tell ya, I love this thing. Not just the academic exercise. It's down right fun.

One of the first areas to be "mutated" is often that "break birth tie" logic (at least that's the one most immeadiatly visible). The result can be hilarious (I'm easily entertained).  I had a cluster of 16 cells all linked and thrashing about like a tenticled anemone enveloping one of those cabbages (alga_minimalis).  Even though no mutated code showed any coordinated action, when a delta came up to take a nibble the "arms" seemed to fold around it and each cell shot the ever-livin bejesus out if it. One dead delta. This happened atleast a dozen times.  Eventually, about 6 deltas all found it all at once and ripped it to shreds. The thing lasted a good 20,000 cycles.

Enough for now. Gotta go.

Thanks, as always.


Suggestions / .sexrepro
« on: March 21, 2005, 03:23:13 PM »
Howdy there.

Some suggestions for .sexrepro

1.  Should be .eye5 function only.  

     When the DNA activates .sexrepro the bot in the .eye5 field should be the one used for the gene mix.  If .eye5=0 then nothing should happen. This would be a big bad bug on the bot maker's part but you will need to guard against a programming crash should (when) this happen(s).

      Maybe a condition (would need to be documented well) is that .sexrepro will only work if the .eye5 value is >= 80 (or 40 or 95 or whatever) forcing the bot maker to make the bot cozy up to its intended mate.  This then gives the intended mate some opportunity (maybe) to "refuse" mating (run away) depending upon DNA determined sexual selection criteria. Yah, I know, the intended victim ... er, mate may not even see her coming after him. That would be a bot maker concern not a programming concern.

2.  Species selection.

     Except for autotroph/non-autotroph taboos, all partner selection should be left to the bot maker manipulating DNA to achieve .eye5 approachs.  This will allow mating simulations between sub-species (and I suppose between disparate species if that's what the bot maker wants.  Come to think of it maybe some wierd bot maker wants to do an A/Non-A mating.)

     I use .ou1/.out2 and a free mem cell as the "species ID." A condition of mate selection (for my bots, may be different for other bot makers) is that one of the three match my own ID.  This will allow simulating geographic separation of groups from the same species coming together as sub-species cousins after x generations. Programming code should not interfere with this selection in any way.

     This also allows my use of sexual selection criteria (free mem cells values) to simulate longer/shorter tails, brighter/duller colors, bigger/smaller boobs, or whatever, within the conditionals part of the .sexrepro gene.  

     Again, all species selection should be DNA driven without programming restriction.

3.  Male/Female designation.

     Leave these up to the bot maker as well. Again, I use a free memory cell as a sex indicator and populate that indicator when Junior/Junioress is hatched.  This acts as a switch to turn on/off different genes. Even though designated males have the .sexrepro gene only females can activate it.  Even though the female has the "velocity penalty for tail length" gene, only in the male will it be active.

4.  Gene Mixing

     Strictly under program control. We now have the two parents (genomes). All genes in the newly created genome are randomly selected from the parents (with attendant mutations as determined by the mutations sections of the program.)

     Designate parents as 1 and 2.
     For gene #1 generate n = random 1 or 2.
     Take gene #1 from parent(n).
     Apply mutation rates from parent(n)
     Place in new genome.

     Repeat for all genes. If (as may occur) some parent has an extra gene the random 1 or 2 will determine if the extra gene (mutated) is added to the new genome or not.

5.  Energy transfer to new born.

     Keep the "energy %" variable as part of the .sexrepro operation under DNA control. This energy % applies only to the bot activating the .sexrepro command. It should not apply to the selected .eye5 mate.

6.  Reduce #cycles of the birth tie.

7.  Keep newborn babies from exploding.  This would be a good one to fix regardless of all the above.

Appreciate y'alls time and effort.


Bugs and fixes / Run-Time Error
« on: March 20, 2005, 05:24:16 PM »
Open DB application. In haste, instead of hitting "Sparisci!" on the Getting Started window I move right up to the "New Simulation" button. Can't really do anything and have to close the Sim window then hit "Sparisci!". Now at "New Simulation" I get my Run-Time Error 380 - Invalid Property Value.

I know the fix is "Paul, don't do that." So I'll try not to.


Thanks, y'all.


Just found the "bugs" forum. I'll post futures there.  Be patient. I'll get with the progam, I promise.

Newbie / DNA Command Question
« on: March 20, 2005, 12:16:14 PM »
Quick question for the Gurus:

memloc and memval -- since these are not ref variables centered on eye5 I assume these will populate from that invisible "closest body" just like in1/in2, yes?

Also, console is great debug tool. It says "type help for commands" I type help, nothing happens.  Can I see memory locations on the console? How?  There appear to be a "hand" and a "nose" button. Each returns up/dn/sx/dx values. What are hand/nose?

As always, thanks for the help.


Message modifed 20 March 12:10 Phoenix time.  -P

Newbie / AZPaul Intro
« on: March 18, 2005, 06:58:25 PM »
Howdy y'all.

     I found Darwinbots v2.3 a few days ago and am getting used to the function.  Nice program. I have coded up a small number of Bots that actually live, feed, reproduce and like that. At this point I am running some simulations but am having some difficulties with a major item.  I'm hoping y'all can set me right.

Sexual reproduction.

     I use the .in/.out as species ID.  According to the docs the genome of the "closest body" is taken as the sex partner. I assumed (silly me) that I could ID this "closest body" using .in/.out.  It don't work. Appears the .in is populated from the last bot I "saw" which, in too many cases, is not the closest body when .nrg reaches the threshold set for my .sexrepro gene. Right so far?

     Mutation in allele frequency is the source of almost all genetic change (most being deadly), but sex (shuffeling of complete genes from those that have survived their mutations to form a unique genome) is the prime vector of "survivable" variation within a large speciel population.  OK, so a couple hundred Bots is not really a "large" speciel population, but, we deal with what we got, right?

     For my simulations I cannot have my Alpha mating with some wayward Delta.   Especially a mean nasty Delta that feeds on Alphas.  Poisons the gene pool doncha know and that's just bad form. Mating outside the species is a no-go in our version of real life and cannot be allowed in the simulation.

   This is one of the most powerful features within NeoDarwinian Evolution and that's where I want to be.

     Any of y'all have a workaround?

Cosmetic items:

.backshot  --  Doesn't want to work for me in the way I have it applied.  Bots discharge waste.  I load up .shootval then -4 .backshot. Nothing happens.  Waste continues to accumulate. I substitute -4 .shoot in the gene with no other changes and the Bot pukes up the waste just fine. Don't ask why, but I want to make them poop not puke.

If there is a .valbackshot or .backshotval or whatever I cannot find it in the docs.  Maybe I cannot .backshot through a shell?

Any help?

Graphs  --  I run my simulations for about 3-5 hours each. (The "best Bot" save feature (I set for 30 min) is much appreciated.)  I like to have the population graph up on my desktop so I can keep track that nothing drastic is happening, like everyone is dying.  Problem is that while I'm in my other applications doing some "real work" this graph is alway "on top" and in my way.  I will look at it when I want to on the desktop and don't need this thing in the way of my spreadsheets, web pages and documents.  Are there any options to "alway on top?"

Finally, (I promise) I diddle around some, changing this, that, the other option, resetting graphs, starting, stopping, setting up simulations and etc like that. I've managed to generate "run time errors" frequently.  Considering what I paid for this program (another much appreciated feature) this is just an FYI.

OK, I lied.  One more comment.  I appreciate the efforts you folks put into this program. I know a lot of you people are building MonsterBots for competition, but as a learning tool in NeoDarwinian Evolution and simulating atleast some aspects of natural selection this program is already one of the better feature-rich simulators without undue complexity. And I thank you.

Verbosely yours,


Pages: [1]