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.


Messages - MacadamiaNuts

Pages: 1 ... 16 17 [18]
256
Evolution and Internet Sharing Sims / Zip sharing?
« on: January 14, 2007, 10:12:31 PM »
Sounds like Seti@home... something to keep running at background, receiving biopackets, evolving them and sending them away.

A funny comparison, be said. Darwin@home... the search for (artificial) life.

257
Off Topic / Panspermia
« on: January 14, 2007, 08:56:01 PM »
Recently some cientifics found life in a mine that had been buried way down the earth there for millions of years. It was using chemical compounds to extract energy. It's not that hard to imagine an huge meteor sending some deep rocks into space. There's that great crater in Mars, 7km deep... the meteorite impact was so big it actually created Olimpus mons and several other volcanoes at the opposite side of the planet.

Life travelling through the solar system seems plausible (mmh, gotta send a mail to Mythbusters, maybe with lots of dynamite and a big rock they can test it...), but also between stars if you consider the sun isn't static, but orbiting the galaxy each 200 million years or so. Perhaps the space out there is seeded with bazillions of rocks with bacteria and the Earth just catched some in the past.

258
Evolution and Internet Sharing Sims / Zip sharing?
« on: January 14, 2007, 09:55:35 AM »
I've been using often teleporters to keep a buffer of bots and avoid small sims dieing, stagnating or degenerating, and so I wondered if a bunch of those dbo's could be zipped and shared through e-mail or forum attachments and loaded/saved with teleporters to keep evolving them, specially for zerosims. This way:

- Pick one or several recent attachments, put them in a inbound folder so they load at start.
- Run the evo for 5 million cycles at least.
- Brush it with an outbound teleporter, pick 10 bots, zip them and attach them with details about the settings.

I know about the internet sharing options, but that needs an ftp server and hand conded bots can ruin all the running sims.

259
Short bots / T. Mosquito v1.03 (1G)(MacadamiaNuts)-14.01.07
« on: January 14, 2007, 09:15:30 AM »
What the...  

The fixed one crushed everything I threw at it. I wonder if I did something wrong.

It seems to be inmune to its own killer venom shots. I think it is because it sets .strvenom each cycle, but I wouldn't swear it. After some cycles it creates a multibot net around the veggies, surrounded by single bots running around. Since I failed to always avoid ties to conspec, they seem to be sharing all the energy they steal. Quick bots are often killed when they move through the net, while slow bots are killed by the stray singles.

I guess there's no limit to energy transfer for .sharenrg. Maybe should.

Using venom to force a 1000 .strvenom seems a bit of an exploit, though placing a 0 .strvenom somewhere should make it inmune... I didn't test it.

260
Short bots / T. Mosquito v1.03 (1G)(MacadamiaNuts)-14.01.07
« on: January 14, 2007, 12:37:45 AM »
Ok I'm fixing it. Anyway it moves too fast without speed restrictions. I didn't knew it was set to full for F1 challenges.

Edit: Fixed, somehow. It's going up the F1 challenge ladder now on my old machine.

261
Short bots / T. Mosquito v1.03 (1G)(MacadamiaNuts)-14.01.07
« on: January 13, 2007, 10:47:10 PM »
Code: [Select]
'My first (posted) bot. Tested with 2.42.9s.

'name: Mosquito
'class: One Gene Bot
'version: 1.03
'author: Macadamia Nuts
'description: This bot uses ties for feeding with sharenrg. A nice offspring spreading 'guarantees tieing to all nearby targets. It's also a fast reproducer and it deletes virus. It uses 'venom shots in a nasty way to force other eyed bots to store huge amounts of venom.

start
*.in1 .out1 store
*.in2 .out2 store
*.refeye *.myeye sub abs sgn *.eye5 sgn mult 973 store
80 *.nrg 3000 sub sgn 1 sub sgn 1 add .repro mult store
107 *.nrg 3000 sub sgn 1 sub sgn 1 add .aimdx mult store
5 *.vel 20 sub sgn 1 sub sgn abs .up mult store
3 .tienum store
.sharenrg .tieloc store
1 .tieval store
*.body *.nrg 20 div sub .fdbody store
*.nrg 20 div *.body sub .strbody store
1 .strvenom store
*.nrg 2000 div sgn abs .strpoison store
*.nrg 750 div abs .mkslime store
*.nrg 2000 div abs .mkshell store
.strvenom .vloc store
1000 .venval store
.eye5 .ploc store
3 .tie *973 mult store
*.thisgene 1 add .delgene store
*.thisgene 1 sub .delgene *.thisgene sgn mult store
*.waste .shootval *.waste 100 div abs sgn mult store
-6 *973 .shoot mult store
-3 *973 .shoot mult *.refeye sgn mult store
-4 .shoot *.waste 100 div abs sgn mult store
*.tiepres .deltie *.tiepres 3 sub abs sgn mult store
*.eye9 *.eye1 sub sgn 60 mult .aimdx *973 mult store
*.eye2 *.eye8 sub sgn 50 mult .aimsx *973 mult store
*.eye7 *.eye3 sub sgn 40 mult .aimdx *973 mult store
*.eye4 *.eye6 sub sgn 30 mult .aimsx *973 mult store
stop
end

262
Suggestions / Genome structure
« on: January 11, 2007, 05:21:04 PM »
It isn't the store the one picking the value, but the start.

So, when the last number in the normal stack is a true value, as it would result from a condition operation, the following start activates. Stores wouldn't change at all in this last suggestion.

It's so a small change it at least could be an option...

263
Suggestions / Genome structure
« on: January 10, 2007, 11:16:31 AM »
Nye, I missed the post about the condstarts. Mixin' it:

Let boolean operators drop true (1) or false (0) in the integer stack and get rid of the boolean stack.

Then the condstart reads the last stack value and if true, executes the commands. No more cond's in the code! And bool ops would be useful too for the actions code.

So codes like these would work:

*.robage condstart ... store stop

*.up sgn condstart ... store stop

... start 50 .aimdx *.eye5 0 = mult store stop

264
Suggestions / Genome structure
« on: January 09, 2007, 08:06:07 AM »
Mmh, maybe if just stores didn't work without a true in the top of the stack bots wouldn't get rid of conditions.

So:

0 0 =

Leaves a 1 in the stack. Then the next store would check that first value and if true, would store the second one on the third memory location, leaving the 1 in the stack for the next store.
Stop would clear the true value.

Bots would be able to use almost anything as a condition:

'*.robage start 1 .deltie store' would be activated when '*.robage = 1'

'*.eye5 not' would be the same than 'cond *.eye5 0 ='

'*.tiepres sgn' would work like 'cond *.tiepres 0 !='

And so on. That's 2 expression conditions instead of 4.

265
Suggestions / A bunch of suggestions
« on: January 09, 2007, 07:44:20 AM »
Oh, you can do that with:

30 rand 300 add

266
Suggestions / Genome structure
« on: January 06, 2007, 10:21:51 PM »
Mmh, trying to think about a more DNA like coding. Sorry if it's too complex / too long. Maybe you can scrap something useful from all the junk.

Mutated condition and command aminoacids could be generated on the fly from patterns, like:

*### ### >
*### ### = or *### ### !=

### ### store
-# # store

These aminoacids use a number as a nexus point. For example:

@10 *.nrg 3000 >
@10 50 .repro store

Would attach one to another and form the gene 10.

Each aminoacid will store across generations the amount of cicles it has survived without mutations, (it's strongness). Small mutations may decrease this amount, based on the aminoacid lenght. New AAs will make weak genes.

Genes would be duplicated if they must activate several AAs at the same time:

@10 *.nrg 3000 > and *.robage 500 >
@10 50 .repro store

@11 *.nrg 3000 > and *.robage 500 >
@11 314 .aimdx store

Code viewer may hide the duplicated condition for readability. Though this isn't so neat, it lets evolution be more creative about complex behaviours. Maybe that bot will split gene @11 from the *.nrg 3000 > 'event' and use it as a veg spotting gene.

When a bot reproduces asexually, it reads its own DNA and copies each AA. A new DNA will build up from the resulting 'soup' of aminoacids. Small mutations of the same type may happen then, like changing 'and' for 'not', 3000 for 2493, '>' for '<', etc. Medium mutations may add or remove a whole condition.

If the nexus of an aminoacid (the gene number) is mutated and it doesn't match any other present AA, at the end of the reproduction it will be either:

1) cut off
2) filled with a new one from pattern

If two AAs 'compete' for the same spot, then their age is applied. A new mutation will have little chances to pass over a strong gene that has guaranteed survival during lots of generations.

Sexual reproduction will mean they will create one single soup of AAs from both DNA's. This means genes from parents will 'compete' to create the child:

Parent 1:
@10 *.nrg 3000 > (100000 cycles)
@10 50 .repro store (25000 cycles)

Parent 2:
@10 *.nrg 1000 > (80000 cycles)
@10 45 .repro store (500 cycles)

Both conditions and both commands will fight for the spot, matching their respective strongness or weakness. There's always a chance that a very weak aminoacid will pass over a strong one.

'stop' and 'start' conditions would isolate parts of the code that shouldn't be executed unless they are called to make RNA. They won't execute any command.

RNA would be made by reproducing only a certain range of genes. It may be stored in a new membrane or used as temporary code. It will block the real genes if it has got the same numbers. This one would create a fat cell that would stay idle most of the time, wasting almost no energy, maybe until a conspec comes and stores or takes some energy from it:

@12 stop
@12 ...

@13 *.nrg 3000 >
@13 10 .strbody store

@14 *.nrg 2000 <
@14 10 .fdbody store

@15 start
@15 ...

@16 ...
@16 13 14 rnacell

Or maybe the RNA can be thrown away. Then as some other bot picks it, it may be executed until it becomes waste. Perhaps it is a virus, or a toxin protein, or a happiness/fear/sexual signal.

Here's a venom/toxin that will be run only when it's loaded as RNA (active RNA will ignore stops and starts):

@14 *.refeye *.myeye !=
@14 16 17 rnashot

@15 null
@15 stop

@16 *.myeyes 5 != and *.body 100 >
@16 100 .fdbody store

@17 *.myeyes 5 !=
@17 -2 .shoot store

@18 null
@18 start

@19 ...
@19 ...

A RNA virus would be a protein that replaces 'legitimate' ones, forcing the code to make copies of it without actually damaging its execution. Or maybe just a self copying protein that forces its own execution without caring about which genes it blocks. And maybe it can get mixed during reproduction...

Also, instead of using magic -1 shots to digest targets, bots maybe should use a digest protein that forces the target to shoot energy.

267
Suggestions / A bunch of suggestions
« on: January 05, 2007, 09:38:38 PM »
Oh, just something more about ties:

When tied, storing anything at .sync would make that bot to use the movement sysvars in reference to the aim of the bot that stores anything at a .follow sysvar.

So when a synced bot stores something at .up, it will move towards the aim of the bot that last called the .follow.

I tried once to do this sending mem values through ties and through .out values, but since tied bots couldn't turn much to match the aim of the bot telling them to follow him it didn't work very well.

268
Suggestions / A bunch of suggestions
« on: January 05, 2007, 06:30:04 PM »
Hi.

I've been messing around with DB for quite some time and decided to register and post some suggestions.

1. Bots doesn't like much to evolve complex genes... they trash them before they do anything useful. Could you add single commands to create the first four ties, if they aren't present, and set both tieloc and tieval picking the last two stack numbers? So this:

1 .tienum store
-1 .tieloc store
x .tieval store

Would look like this:

-1 x tie1 store

It checks if there's already any tie with tienum 1 and, if not, it creates it. Also it sets tieval and tieloc.

2. I would like an option to disable mutations of flow commands, so they won't be deleted, replaced or added. Whole genes may be deleted or added with zero filled conditions and commands. Then a working sexrepro that picks genes one by one from parents.

3. Also, an option to mutate conditions and commands from a pool of patterns instead of randomly. *# # > would be a condition pattern, with numbers added on the fly. Evolution would happen faster since they don't need to wait until they get some functional code from a pile of junk, and yet there are large chances that the resulting gene won't be useful. Also it will be readable (nice for non uber DB users that can't read through a pile of nested conditions, sysvars and binary operators).

4. Fitness culling with customizable targets. For example, each 500 cycles kill the 10% bots with less kills.

5. .membrane and .enzyms sysvars, transferred (and maybe mutated) at birth. Any value added to these is modded to -1, 0 or +1 so changing the membrane and enzyms properties would happen slowly. The closer the bot's enzyms are to the target's membrane type, the more efficient it is capturing energy/body through shots or ties. So a bot can use dumb-veg eating enzyms (type 0) and use a different membrane type so shots/ties from other veg eater bots (even their own species) wont digest it by mistake. Or maybe it can develop enzyms to eat the veg eaters, even if those enzyms aren't worth anymore to eat vegetables...

Also, in pond mode, a PH option meaning membranes that don't match the PH at certain level will lose energy. Corpses would have the opposite membrane value than 0 vegetables, so vegetables may use their own shots or ties to take waste from corpses.

269
DNA - General / can viruses transmit only a certain gene
« on: January 05, 2007, 05:41:39 PM »
Put the gene number before the .mkvirus command.

1 .mkvirus store transmits the first gene

*.thisgene .mkvirus store transmits the virus gene itself.

10 rnd .mkvirus store transmits a random gene from 1 to 10.

PS. That guy in the avatar... isn't Adam Savage?

270
Newbie / How did you find DarwinBots?
« on: January 05, 2007, 05:37:26 PM »
Googling for alife.

Pages: 1 ... 16 17 [18]