### 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 - bacillus

Pages: [1] 2 3 ... 6
1
##### DNA - General / SS (Single Store) Bot Guide
« on: March 14, 2014, 06:47:14 PM »
I just got asked by MysticalDumpling to make a SS Bot guide. Sounded like a fun exercise, so I'll do my best, but bear in mind I haven't touched DB in around three years.

The Inofficial SS Guide 1.0

Step 1: Conditions

The most important, and hardest part, of writing a SS bot, is writing up your conditions. I'll start with some simple examples and move from there:

Code: [Select]
`*.eye5 40 sub sgn 0 floor`
This statement is equivalent to *.eye5 40 >. How?

First, we subtract 40 from *.eye5; if *.eye5 was larger than 40, the value will be negative, if it was equal to 40, zero, and if it was less than 40, negative. the sgn operator reduces these possibilities to {-1, 0, 1}. Finally, the floor multiplier folds -1 and 0 into 0. End result is 0 if it's less than or equal, or 1 if it's greater.

Here's some more examples:

Code: [Select]
`*.refeye *.myeye sub sgn abs`
*.refeye *.myeye !=. Same deal as before. the sub sgn reduces us to {-1, 0, 1}, depending on whether *.refeye is smaller, equal, or greater than *.myeye, respectively. abs turns -1 into 1, so we have 0 if they're equal, and 1 if they're not equal.

Code: [Select]
`*.refeye *.myeye sub sgn abs -- abs`
*.refeye *.myeye =. The same example as above, but inverted.  -- abs is a very handy tool, as it inverts the result of a condition (i.e. it's our NOT operator).

Step 2: Compounding Conditions

This step's actually fairly easy. Once you have all your conditions written out, you AND them together by multiplying their values, like so:

Code: [Select]
`2000 *.nrg sub sgn 0 floor*.refeye *.myeye sub sgn abs mult39 *.eye5 sub sgn 0 floor mult`
We'll only get 1 if both the conditions are one, otherwise the result is 0.

OR isn't much tricker. We add the conditions together and apply the abs operator.

Code: [Select]
`2000 *.nrg sub sgn 0 floor*.refeye *.myeye sub sgn abs add abs39 *.eye5 sub sgn 0 floor add abs`
XOR's the only tricky one here. We need to check that the sum of the two conditions is exactly one. add -- abs will give us 0 if that's true and 1 otherwise, so we invert it using the NOT operator (-- abs):

Code: [Select]
`2000 *.nrg sub sgn 0 floor*.refeye *.myeye sub sgn abs add -- abs -- abs39 *.eye5 sub sgn 0 floor add add -- abs -- abs`
(Does this even come up?  )

Step 3: Applying Conditions

Short and simple. Just string your conditions together, then multiply the target value by it:

Code: [Select]
`2000 *.nrg sub sgn 0 floor mult*.refeye *.myeye sub sgn abs mult39 *.eye5 sub sgn 0 floor mult`

The part you really wanted to get to! I honestly can't remember too much about this, so I'll give you the tools to string the bots together and leave it to someone else to write up some clues on writing good SS bots.

Code: [Select]
`condstart'Values here'Locations herestorestop`
This is your skeleton for every Single Store bot. For every potential store command, you'll need two corresponding blocks: one in the Values and one in the Locations. Same as any other bot really. I'll do a quick walkthrough of my first SS Bot, Dominis:

Code: [Select]
`condstart'Values-6*.eye5 40 sub sgn 0 floor mult*.refeye *.myeye sub sgn abs mult'Locations.shoot*.eye5 40 sub sgn 0 floor mult*.refeye *.myeye sub sgn abs multstorestop`
Stores -6 into .shoot if:
• *.eye5 40 <
• *.refeye *.myeye !=

The way it works is that -6 and .shoot get pushed onto the stack and read by the store command if the conditions are true. Otherwise, 0 and 0 get pushed. The 0/0 is important, you'll see why next:

Code: [Select]
`condstart'Values-6*.eye5 40 sub sgn 0 floor mult*.refeye *.myeye sub sgn abs mult52000 *.nrg sub sgn 0 floor mult*.refeye *.myeye sub sgn abs mult39 *.eye5 sub sgn 0 floor multadd'Locations.shoot*.eye5 40 sub sgn 0 floor mult*.refeye *.myeye sub sgn abs mult.up2000 *.nrg sub sgn 0 floor mult*.refeye *.myeye sub sgn abs mult39 *.eye5 sub sgn 0 floor multaddstorestop`
Same as before, but with 5 .up on the following conditions:
• *.eye5 40 >=
• *.refeye *.myeye !=
• *.nrg 2000 <

Note that due to the first condition, the two condition pairs are mutually exclusive and only (at most) one will return a non-zero value/location pair. This is what makes SS bots work - only one "gene" at a time must return a non-zero value; that way, when you add all the values up and add all the locations up, you get a sensible value pair. If more than one pair returns a non-zero value, then you get some jibberish (or worse yet, you don't) and waste the store command.

Code: [Select]
`condstart'Values-6*.eye5 40 sub sgn 0 floor mult*.refeye *.myeye sub sgn abs mult52000 *.nrg sub sgn 0 floor mult*.refeye *.myeye sub sgn abs mult39 *.eye5 sub sgn 0 floor multadd50*.nrg 2000 sub sgn 0 floor mult39 *.eye5 sub sgn 0 floor multadd314 rnd*.refeye *.myeye sub sgn abs -- abs multadd'Locations.shoot*.eye5 40 sub sgn 0 floor mult*.refeye *.myeye sub sgn abs mult.up2000 *.nrg sub sgn 0 floor mult*.refeye *.myeye sub sgn abs mult39 *.eye5 sub sgn 0 floor multadd.repro*.nrg 2000 sub sgn 0 floor mult39 *.eye5 sub sgn 0 floor multadd.aimdx*.refeye *.myeye sub sgn abs -- abs multaddstorestop`
A turning and reproduction pair (I'll let you figure out the conditions), and we're done!

The only hint I can give regarding the design of your bot is to remember that you only have one store a cycle, so prioritize. Design your conditions in such a way that the most important functions take precedence. You don't want to starve to death because you're executing .up instead of .shoot if there's something in your sight.

Hope that helps!

2
##### Darwinbots3 / Chromosomes and Sexual Rproduction
« on: August 17, 2010, 12:48:53 AM »
Hey, I was just giving this topic some thought recently and realized that the reason sexual reproduction in DB is so wobbly is that there is only one DNA. What if instead of coding the entire DNA into one section, large chunks of genes can be separated into chromosomes, which were assigned an ID to recognize pairs and a random one from each parent matched. If the chromosomes are properly coded (eg. a fair degree of independence), you could then activate one of your pair, and leave the other one to be still passed on (there's probably better ways to handle this, please discuss!). Instead of having very similar bots of different species, you could then check species by chromosome IDs (if they can breed, they're the same species) and thus introduce strains.

This would solve a lot of current issues - mainly the reproduction glitches, speciation definition, and would also allow for some funky new mutations. I know this has been discussed before, but the main difference is actually having more than one DNA strand present. Thoughts??

3
##### Bot Challenges / Building Bots
« on: May 14, 2010, 05:41:47 PM »
Just something that seemed like a cool idea that wouldn't go out of my head. Say a simulation had two species of algae; one is something like A. minimalis, the other one is a 'building block'. This means it produces vast amounts of poison and shell to make it hard to feed off. When a bot ties to it, it starts producing vast amounts of slime as well, to stop any future ties. The two would use an I/O channel or some other method of communication to differentiate from each other.

The challenge is to create a bot that, without trying to feed off the building blocks, uses them to create a nest or defensive structure. For example, you could place them in a circle around a fixed point to creature a fortress, with other bots inside the fort harvesting the normal algae and other bots pushing on the opposing structures to try destroy them. To make it interesting, ties cannot be used to share resources or information (strictly physical bond), no viruses, .sexrepro or venom is allowed (eg. no messing with the algae), and no poison or shell (this forces you to use the algae as protection). Summary: F3 plus physical ties.

4
##### Suggestions / DB ate my Hard Drive!
« on: January 25, 2010, 04:02:16 AM »
In a spring cleaning of my system, I found out that the DB folder, which I had previously assumed to be of negligible size, had eaten up 2GB of my hard drive! Deleting and zipping simulations cut this down to about 35MB, but still raises an issue. Is there any way to save simulations so they don't take up a huge amount of space? I ask as it strikes me as some part of the original spaghetti code that nobody's been willing to touch for years. (And I won't blame you for avoiding it   )

5
##### Interesting behaviour bots / Sentinel3
« on: January 16, 2010, 02:04:38 AM »
You'd expect version three to be halfway decent, eh?
While not exactly a 'good' bot, I like the idea behind a double-layered conspec that differentiates 'conspec' 'non-conspec but friendly' and 'enemy' , and decided to rewrite my old Sentinel bot (one of my first successful Viral bots apart from Occura Amplificis, which still packs a punch).

Code: [Select]
`'Sentinel 3'Teaching an old bot new tricks'999-gene deactivator'998-aim settercond *.robage 1 > *999 4285 !=start 50 .repro store *.tiepres .deltie store *.thisgene .mkvirus store *.nrg 5 div .vshoot store 618 .eye5dir store *.thisgene ++ .delgene store .fixpos inc 4285 .out2 store .backshot inc *.nrg 10 div .shootval store -1 *.in1 482 sub sgn abs -- abs mult -- .shoot store0 998 store 200 *.shell sub .mkshell store 100 *.slime sub .mkslime storestopcond *.robage 0 =start 482 .out1 store 4285 999 storestopstart 50 *.poison sub .strpoison store 50 *.shell sub .mkshell store 1 .mkvirus store 200 *.nrg 10 div ceil .vshoot store 500 *.body sub dup .strbody store - .fdbody store 20 *.velup sub .up store  -4 *.eye1 *.eye9 sub sgn 0 floor mult *.eye1 *.eye8 sub sgn 0 floor mult *.eye1 *.eye7 sub sgn 0    floor mult *.eye1 *.eye6 sub sgn 0 floor mult *.eye1 *.eye5 sub sgn 0 floor mult *.eye1 *.eye4 sub   sgn 0 floor mult *.eye1 *.eye3 sub sgn 0 floor mult *.eye1 *.eye2 sub sgn 0 floor mult 4 *.eye9     *.eye8 sub sgn 0 floor mult *.eye9 *.eye7 sub sgn 0 floor mult *.eye9 *.eye6 sub sgn 0 floor mult *.eye9 *.eye5 sub sgn 0 floor mult *.eye9 *.eye4 sub sgn 0 floor mult *.eye9 *.eye3 sub sgn 0 floor  mult *.eye9 *.eye2 sub sgn 0 floor mult *.eye9 *.eye1 sub sgn ++ sgn mult add -3 *.eye2 *.eye9 sub   sgn ++ sgn mult *.eye2 *.eye8 sub sgn 0 floor mult *.eye2 *.eye7 sub sgn 0 floor mult *.eye2 *.eye6  sub sgn 0 floor mult *.eye2 *.eye5 sub sgn 0 floor mult *.eye2 *.eye4 sub sgn 0 floor mult *.eye2    *.eye3 sub sgn 0 floor mult *.eye2 *.eye1 sub sgn ++ sgn mult add 3 *.eye8 *.eye9 sub sgn ++ sgn     mult *.eye8 *.eye7 sub sgn 0 floor mult *.eye8 *.eye6 sub sgn 0 floor mult *.eye8 *.eye5 sub sgn 0   floor mult *.eye8 *.eye4 sub sgn 0 floor mult *.eye8 *.eye3 sub sgn 0 floor mult *.eye8 *.eye2 sub   sgn ++ sgn mult *.eye8 *.eye1 sub sgn ++ sgn mult add -2 *.eye3 *.eye9 sub sgn ++ sgn mult *.eye3    *.eye8 sub sgn ++ sgn mult *.eye3 *.eye7 sub sgn 0 floor mult *.eye3 *.eye6 sub sgn 0 floor mult *.eye3 *.eye5 sub sgn 0 floor mult *.eye3 *.eye4 sub sgn 0 floor mult *.eye3 *.eye2 sub sgn ++ sgn   mult *.eye3 *.eye1 sub sgn ++ sgn mult add 2 *.eye7 *.eye9 sub sgn ++ sgn mult *.eye7 *.eye8 sub     sgn ++ sgn mult *.eye7 *.eye7 sub sgn 0 floor mult *.eye7 *.eye6 sub sgn 0 floor mult *.eye7 *.eye5  sub sgn 0 floor mult *.eye7 *.eye4 sub sgn ++ sgn mult *.eye7 *.eye2 sub sgn ++ sgn mult *.eye7 *.eye1 sub sgn ++ sgn mult add -1 *.eye4 *.eye9 sub sgn ++ sgn mult *.eye4 *.eye8 sub sgn ++ sgn mult *.eye4 *.eye7 sub sgn ++ sgn mult *.eye4 *.eye6 sub sgn 0 floor mult *.eye4 *.eye5 sub sgn 0    floor mult *.eye4 *.eye3 sub sgn ++ sgn mult *.eye4 *.eye2 sub sgn ++ sgn mult *.eye4 *.eye1 sub     sgn ++ sgn mult add 1 *.eye4 *.eye9 sub sgn ++ sgn mult *.eye4 *.eye8 sub sgn ++ sgn mult *.eye4    *.eye7 sub sgn ++ sgn mult *.eye4 *.eye6 sub sgn ++ sgn mult *.eye4 *.eye5 sub sgn 0 floor mult *.eye4 *.eye3 sub sgn ++ sgn mult *.eye4 *.eye2 sub sgn ++ sgn mult *.eye4 *.eye1 sub sgn ++ sgn     mult add 0 *.eye5 *.eye9 sub sgn ++ sgn mult *.eye5 *.eye8 sub sgn ++ sgn mult *.eye5 *.eye7 sub     sgn ++ sgn mult *.eye5 *.eye6 sub sgn ++ sgn mult *.eye5 *.eye4 sub sgn ++ sgn mult *.eye5 *.eye3   sub sgn ++ sgn mult *.eye5 *.eye2 sub sgn ++ sgn mult *.eye5 *.eye1 sub sgn ++ sgn mult add .focuseye storestopcond *.eyef 0 != *.in1 *.out1 !=start *.refxpos *.refypos angle .setaim storestopcond *.eye5 40 > *.in1 *.out1 != *.in2 4285 !=start 16 .shootval store -6 .shoot storestopcond *.eye5 40 > *.in1 *.out1 != *.in2 4285 =start *.refxpos *.refypos angle .shootval store .setaim .shoot storestopcond *.nrg 15000 >start 418 rnd .aimdx store 40 .repro storestop`

6
##### Single store / Mythos 1.1(SS)(Bacillus)
« on: January 14, 2010, 05:00:22 PM »
Thanks Moonfisher, the rnd tip really helped me out. It also helped me solve that problem I was having with birthties eariler on...
Code: [Select]
`'Mythos'The new Single-Store bot by Bacillusdef threshold 2000start*.tiepres*.numties sgn mult100*.numties sgn -- abs mult*.body 50 sub sgn 0 floor -- abs multadd628 rnd*.numties sgn -- abs mult*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor *.eye5 30 sub sgn 0 floor mult *.eye5 sgn *.myeye *.refeye sub sgn abs -- abs mult add sgn multadd 40*.numties sgn -- abs mult*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor mult *.eye5 30 sub sgn 0 floor -- abs mult add-6*.numties sgn -- abs mult*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor -- abs mult *.myeye *.refeye sub sgn abs mult *.eye5 40 sub sgn 0 floor multadd-60*.numties sgn -- abs mult*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor -- abs mult *.eye5 sgn -- abs mult *.eye9 sgn multadd40 *.velup sub*.numties sgn -- abs mult*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor -- abs mult *.eye5 sgn -- abs mult *.eye9 sgn -- abs multadd50 *.eye5 sub 0 floor *.velup sub*.numties sgn -- abs mult*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor -- abs mult *.myeye *.refeye sub sgn abs mult *.eye5 sgn abs mult *.eye5 40 sub sgn 0 floor -- abs multadd.deltie *.numties sgn mult.strbody*.numties sgn -- abs mult*.body 50 sub sgn 0 floor -- abs multadd.aimdx*.numties sgn -- abs mult*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor *.eye5 30 sub sgn 0 floor mult *.eye5 sgn *.myeye *.refeye sub sgn abs -- abs mult add sgn multadd.repro*.numties sgn -- abs mult*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor mult *.eye5 30 sub sgn 0 floor -- abs mult add.shoot*.numties sgn -- abs mult*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor -- abs mult *.myeye *.refeye sub sgn abs mult *.eye5 40 sub sgn 0 floor multadd.aimsx*.numties sgn -- abs mult*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor -- abs mult *.eye5 sgn -- abs mult *.eye9 sgn multadd.up*.numties sgn -- abs mult*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor -- abs mult *.eye5 sgn -- abs *.eye9 sgn -- abs mult *.myeye *.refeye sub sgn abs *.eye5 sgn abs mult *.eye5 40 sub sgn 0 floor -- abs mult add sgn multaddstorestop`

7
##### Single store / Mythos(SS)(bacillus)14/01/10
« on: January 13, 2010, 07:13:26 PM »
I tried to iron out the glitches in Dominis, my last SS bot, but a new one came up: The bot shuts down after its body level drops below 50. Any help on this would be much appreciated.

Code: [Select]
`'Mythos'The new Single-Store bot by Bacillusdef threshold 1000start100*.body 50 sub sgn 0 floor -- abs mult0 628 rnd*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor *.eye5 30 sub sgn 0 floor mult *.eye5 sgn *.myeye *.refeye sub sgn abs -- abs mult add sgn multadd 30*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor mult *.eye5 30 sub sgn 0 floor -- abs mult add-6*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor -- abs mult *.myeye *.refeye sub sgn abs mult *.eye5 40 sub sgn 0 floor multadd-60*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor -- abs mult *.eye5 sgn -- abs mult *.eye9 sgn multadd40 *.velup sub*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor -- abs mult *.eye5 sgn -- abs mult *.eye9 sgn -- abs multadd50 *.eye5 sub 0 floor *.velup sub*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor -- abs mult *.myeye *.refeye sub sgn abs mult *.eye5 sgn abs mult *.eye5 40 sub sgn 0 floor -- abs multadd.strbody*.body 50 sub sgn 0 floor -- abs mult.aimdx*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor *.eye5 30 sub sgn 0 floor mult *.eye5 sgn *.myeye *.refeye sub sgn abs -- abs mult add sgn multadd.repro*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor mult *.eye5 30 sub sgn 0 floor -- abs mult add.shoot*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor -- abs mult *.myeye *.refeye sub sgn abs mult *.eye5 40 sub sgn 0 floor multadd.aimsx*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor -- abs mult *.eye5 sgn -- abs mult *.eye9 sgn multadd.up*.body 50 sub sgn 0 floor mult *.nrg .threshold sub sgn 0 floor -- abs mult *.eye5 sgn -- abs *.eye9 sgn -- abs mult *.myeye *.refeye sub sgn abs *.eye5 sgn abs mult *.eye5 40 sub sgn 0 floor -- abs mult add sgn multaddstorestop`

8
##### Off Topic / Strange Attractors
« on: January 12, 2010, 08:26:05 PM »
Just asking around if anybody's messed with these before. I got some pretty decent-looking Lorenz, Lorenz-84 and Pickover (All quite primitive trig/poly chaotic equations) renders from my own program, and am aiming to recreate the functions from Chaoscope. The main problem I'm facing with my version is the implementation of the IFS fractal. As you can (hopefully) see below, they're quite amazing (hope you like then, they took hours of tweaking), but don't seem to follow the dot-by-dot iterative structure of the others. Anybody know anything about this?

9
##### Bot Tavern / Ambitious MB project
« on: January 11, 2010, 09:42:41 PM »
If anybody is interested in creating a multibot, I'm free for the next few days, so will have time to start a commune bot project. The idea is to have a bot that has several specialized cell types, each of which follows a set behaviour. Feel free to work on your strength, be it creating a competitive cell, creative strategies, communications etc. I don't really care how good you are, the idea is not to make the best bot, or even a bot that can survive against other non-veggies, but to create a diverse and interesting multibot. I can probably handle the main structure; to start, the following cells will need to be implemented:

-Body cell-this will tie everything together, and handle communications, food sharing etc. I should manage this as long as all required inputs and outputs are documented.

-Tentacle cell-the idea is to have these cells spawn a straight line of tentacle cells-the one connected to a body cell is the root, the tip is the feeding cell and the middle ones are tentacles that move the tip. Ideally, they won't generate information, but will be able to read information, so not to disrupt the body cell's mechanism.

-Eye cell-these will feed info into the body cells about food, which then get transmitted through the body and read by the tentacles.

-Brain cell-these cells will read multiple eye cells and send compiled information to the root body cell (not required, but could make it easier)

-Reproduction cell-asexual for now. This bot won't neccessarily interact much with the rest of the bot, but is important as any new cells it spawns must NOT connect to the main organism.

We'll see how we get this bit down before coming up with more elaborate body bits, so we can get a feel of standard interaction techniques.
So who's game?

10
##### Interesting behaviour bots / Diatomus Lorius
« on: January 07, 2010, 05:35:16 PM »
Not the best bot ever made, basically a better version of Animal Minimalis. I just wrote this to refresh my DB coding skills, as well as try out a thing or two...

Code: [Select]
`def conspec 4291def head 1def tail 2cond *.robage 0 =start .conspec dup .out1 store .tout1 store .head dup .out2 store .tout2 store *.in3 dup .out3 store .tout3 store .tie incstopcond *.numties 0 =start -32000 32000 rnd dup .out3 store .tout3 store 50 .repro store .tail dup .out2 store .tout2 storestopcond *.tout1 *.tin1 != *.numties 1 > orstart *.tiepres .deltie storestop cond *.tin3 *.tout3 != *.tin3 0 !=start *.tin3 dup .out3 store .tout3 storestopstart5 *.velsx sub .sx store 40 .stifftie store 50 .tielen store *.body 500 sub dup .fdbody store - .strbody store 50 .sharenrg store 20 *.velup sub .up store  -4 *.eye1 *.eye9 sub sgn 0 floor mult *.eye1 *.eye8 sub sgn 0 floor mult *.eye1 *.eye7 sub sgn 0    floor mult *.eye1 *.eye6 sub sgn 0 floor mult *.eye1 *.eye5 sub sgn 0 floor mult *.eye1 *.eye4 sub   sgn 0 floor mult *.eye1 *.eye3 sub sgn 0 floor mult *.eye1 *.eye2 sub sgn 0 floor mult 4 *.eye9     *.eye8 sub sgn 0 floor mult *.eye9 *.eye7 sub sgn 0 floor mult *.eye9 *.eye6 sub sgn 0 floor mult *.eye9 *.eye5 sub sgn 0 floor mult *.eye9 *.eye4 sub sgn 0 floor mult *.eye9 *.eye3 sub sgn 0 floor  mult *.eye9 *.eye2 sub sgn 0 floor mult *.eye9 *.eye1 sub sgn ++ sgn mult add -3 *.eye2 *.eye9 sub   sgn ++ sgn mult *.eye2 *.eye8 sub sgn 0 floor mult *.eye2 *.eye7 sub sgn 0 floor mult *.eye2 *.eye6  sub sgn 0 floor mult *.eye2 *.eye5 sub sgn 0 floor mult *.eye2 *.eye4 sub sgn 0 floor mult *.eye2    *.eye3 sub sgn 0 floor mult *.eye2 *.eye1 sub sgn ++ sgn mult add 3 *.eye8 *.eye9 sub sgn ++ sgn     mult *.eye8 *.eye7 sub sgn 0 floor mult *.eye8 *.eye6 sub sgn 0 floor mult *.eye8 *.eye5 sub sgn 0   floor mult *.eye8 *.eye4 sub sgn 0 floor mult *.eye8 *.eye3 sub sgn 0 floor mult *.eye8 *.eye2 sub   sgn ++ sgn mult *.eye8 *.eye1 sub sgn ++ sgn mult add -2 *.eye3 *.eye9 sub sgn ++ sgn mult *.eye3    *.eye8 sub sgn ++ sgn mult *.eye3 *.eye7 sub sgn 0 floor mult *.eye3 *.eye6 sub sgn 0 floor mult *.eye3 *.eye5 sub sgn 0 floor mult *.eye3 *.eye4 sub sgn 0 floor mult *.eye3 *.eye2 sub sgn ++ sgn   mult *.eye3 *.eye1 sub sgn ++ sgn mult add 2 *.eye7 *.eye9 sub sgn ++ sgn mult *.eye7 *.eye8 sub     sgn ++ sgn mult *.eye7 *.eye7 sub sgn 0 floor mult *.eye7 *.eye6 sub sgn 0 floor mult *.eye7 *.eye5  sub sgn 0 floor mult *.eye7 *.eye4 sub sgn ++ sgn mult *.eye7 *.eye2 sub sgn ++ sgn mult *.eye7     *.eye1 sub sgn ++ sgn mult add -1 *.eye4 *.eye9 sub sgn ++ sgn mult *.eye4 *.eye8 sub sgn ++ sgn mult *.eye4 *.eye7 sub sgn ++ sgn mult *.eye4 *.eye6 sub sgn 0 floor mult *.eye4 *.eye5 sub sgn 0    floor mult *.eye4 *.eye3 sub sgn ++ sgn mult *.eye4 *.eye2 sub sgn ++ sgn mult *.eye4 *.eye1 sub     sgn ++ sgn mult add 1 *.eye4 *.eye9 sub sgn ++ sgn mult *.eye4 *.eye8 sub sgn ++ sgn mult *.eye4    *.eye7 sub sgn ++ sgn mult *.eye4 *.eye6 sub sgn ++ sgn mult *.eye4 *.eye5 sub sgn 0 floor mult *.eye4 *.eye3 sub sgn ++ sgn mult *.eye4 *.eye2 sub sgn ++ sgn mult *.eye4 *.eye1 sub sgn ++ sgn     mult add 0 *.eye5 *.eye9 sub sgn ++ sgn mult *.eye5 *.eye8 sub sgn ++ sgn mult *.eye5 *.eye7 sub     sgn ++ sgn mult *.eye5 *.eye6 sub sgn ++ sgn mult *.eye5 *.eye4 sub sgn ++ sgn mult *.eye5 *.eye3   sub sgn ++ sgn mult *.eye5 *.eye2 sub sgn ++ sgn mult *.eye5 *.eye1 sub sgn ++ sgn mult add .focuseye storestopcond *.in1 *.out1 != *.eye5 40 > and *.refshoot 0 > *.refshoot 0 = *.body 1000 < *.refbody 100 > and and or andstart *.refxpos *.refypos angle .setaim store -6 .shoot store *.refxpos .out4 store *.refypos .out5 store *.timer .out6 storestopcond *.eyef 0 > *.in1 *.out1 != *.refshoot 0 > *.refshoot 0 = *.refbody 100 > and or andstart *.refxpos *.refypos angle .setaim store 35 *.velup sub .up storestopcond *.in1 *.out1 = *.out2 .head = *.in3 *.out3 != *.in2 .tail =start *.refxpos *.refypos angle .setaim storestopcond *.in6 *.out6 > *.in1 *.out1 = *.in3 *.out3 !=start *.in4 *.in5 angle .setaim storestopcond *.eyef 0 = *.out6 0 >start *.out4 *.out5 angle .setaim storestopcond *.tin6 *.tout6 >start *.tin4 dup .tout4 store .out4 store *.tin4 dup .tout5 store .out5 storestopcond *.nrg 8000 >start 500 .aimdx store *.tiepres .deltie storestop`

11
##### Bot Tavern / Plausible tactic?
« on: January 03, 2010, 08:09:17 PM »
I was just wondering if you could construct a 'crab-bot' that rotates everything 90 degrees, so it walks, sees, and shoots to one side. The reason for doing so would be to allow reproduction to occur at right angles to everything else, and won't disrupt normal behaviour. Is this an efficient strategy, and has this been done before?

12
##### Evolution and Internet Sharing Sims / Effective Evosim Method
« on: December 29, 2009, 07:13:03 PM »
I recently rediscovered DB, and decided to try find a better way of getting an evosim running. After a few attempts, I got a pretty good system running, and got results much faster than any other way. Basically, the environment is made up of a chain of simulations, each connected to the next and set up to evolve a certain kind of behaviour. For example, the initial simulation would have veggies that both feed and force reproduction in the target cells. The cells are all clustered in one spot, with an out-teleporter leading to the next simulation so that only mobile bots can proceed. In this next simulation, the veggies still feed the bots, but do not get them to reproduce. Usually the mobile bots in the previous simulation reproduce more frequently (more area covered), so a steady supply of bots are available to evolve. This would then have a third out-sim to a simulation where the veggies do not feed at all or very unreliably, so to encourage feeding behaviour. This method allows some control over the evolution path of the bots, and I have gotten one or two simulations after a few hours that display some form of stable reproduction.

13
##### Formula 1 / F1 League Standings
« on: December 03, 2008, 07:31:58 PM »
Last updated 3/12/08:

#F1
1 - Quickdraw(F1)(Moonfisher)
2 - Saber
3 - Fruit_Fliesv0.21
4 - Etch Mk II(F1)(abyaly)-15.03.2008
5 - Occura Amplificis(F1)(bacillus)-25.03.08
6 - TieFighters
7 - Pacifist (5G) (Moonfisher) 19-02-08
8 - Spinnerv1.52
9 - Locust(F1)(Moonfisher)
10 - Ebola (F1Vir) (Moonfisher)
11- Multiply4(F1)(F2)(Peter)19-12-07
12- Excalibur 1.12 (F2)(Light)-06.03.07
13- Callidus(F1)(Shen)-05.04.05
14- Blue on blue (F2)(Jez)-05.08.06
15- Bubbles (F2)(Jez)-21.08.06
16- Reaper (F1)(Googlyeyesultra)-17.07.07
17- Detonator v1.2(F1)(bacillus)-24.04.08
18- Martian Tank 3 (F2)(Martian)-06.07.2007
19- Singula Haloculus v2.1(F1)(bacillus)21.04.08
20- The One (1G)(Shen)-23.04.05

14
##### Interesting behaviour bots / Arborea
« on: November 25, 2008, 02:57:38 AM »
This veggie started out as a nice fractal, but got more blob-like as I tried to deal with tie physics and size control.
Still looks okay.
Code: [Select]
`'Arborea'A multibot veggie/failed fractal bot'by Bacillusdef iteration 991def initang 992def status 993def prevrepro 994def branching 3def maxiterands 6def step 2def stepsize 998cond *.robage 0 =start *.aim .initang store .tie incstopcond *.robage 20 =start *.tin1 .iteration store *.tin2 .step add .status store *.iteration ++ *.stepsize *.status sub sgn -- abs  sgn .iteration mult store 0 *.stepsize *.status sub sgn -- abs  sgn .status mult storestopcond *.numties 0 = *.nrg 5000 <start 50 .dx storestopstart *.prevrepro 1000 sub sgn 0 floor .fixpos store *.velup 5 add .dn store 100 .tielen store .maxiterands *.iteration .step mult sub .stepsize   store 50 .sharenrg store 50 .shareshell store .prevrepro inc *.iteration .tout1 store *.status .tout2 store *.body 400 sub .fdbody store 100 *.shell sub .mkshell store 100 *.poison sub .strpoison storestopcond *.nrg 10000 >start 2000 .shootval store 628 .aimshoot store -2 .shoot storestopcond *.prevrepro 30 > *.nrg 7500 > *.numties 2 < *.status 0 = *.iteration .maxiterands <start *.initang 628 add .setaim store 0 .prevrepro store 50 .repro storestopcond *.prevrepro 20 > *.nrg 7500 > *.numties .branching < *.status 0 > *.iteration .maxiterands <start 1256 .branching div *.numties mult add *.initang add .setaim store 0 .prevrepro store 50 .repro storestop`

15
##### Bot Tavern / MB rant
« on: November 11, 2008, 02:52:01 AM »
Darn, the topic got wiped.
Anyway, I can't be bothered writing everything out again, so I'll shortly summarize:
-Split DB into two different programs. one will be focused on the league as it is, the other on diversity and complexity. This version will include MB-biased features, such as:
Stronger ties, both physically and functionally. Eg. allow for ties that support more tension, communication in bulk, changing tie values, and in0cycle tie switching.
A larger degree of specialization, eg. muscle ties that can stretch and contract ties more efficiently than others, or variable eyesights.

Regarding the current MB league, the environment should be upscaled, eg. multi veggies (I think Fractal should be the base for this veggie) and huge field size.

Doesn't sound as convincing and is going over a whole lot of old stuff, but I'll write out the entire thing when I have time.

Pages: [1] 2 3 ... 6