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 - Moonfisher

Pages: [1] 2 3 ... 40
1
Darwinbots3 / Re: One year plan
« on: January 09, 2015, 03:58:50 AM »
I know people looove physics and all that.  But personally, for evo sims, my main issue has always been speed and multi threading (Sorta same deal).
So is there any chance there may be a mode available running really simple physics in order to boost the speed?
I'd obviously like to have good physics too, but if I need to choose between realistic physics and speed, then I would choose the latter. So personally think it would be a nice option.

Anyway if the priorities of the tasks where democratic I would be voting for multi threading and speed increasing options at the cost of realism or even heavy features or such.

But aside from that what I really want to see is a release, with the absolute bare minimum needed to release. (Graphics would be nice to have though).

I guess I could fetch the source and try it out, but can't seem to find the time in between work and drinking.

And almost forgot, huge thanks to all the people working on this, you're my heroes!

2
Darwinbots3 / Re: Win Xp compatible?
« on: January 09, 2015, 03:45:38 AM »
Fairly sure XP was initially scheduled to stop support in 2012, but was then prolonged to 2014.
Got nothing against XP in itself, but when developing software I hate trying to make things XP compatible. Sooner or later you gotta move on.
Personally think DB3 should focus on using the latest technology rather than trying to be backwards compatible (At least not as far as XP).
Personally running Win 8, and must agree the interface is annoying. It defaults to a touch screen setup even though I have no touch screen, and there is no fast and easy way to change the way things work (There is, I'm told, ways to change it, but can't be bothered and I prefer B&M about it to actually doing something about it.)

3
Formula 1 / Re: Vegetables in F1 League? [Opinions Needed]
« on: January 06, 2015, 09:08:35 PM »
I votes no for the official F1 league, but would vote yes for separate F1 league for vegetables.
And by vegetables I mean bots that use Chloroplasts, not bots that are fed for free.
Chloroplasts has a cost to it, in the form of mass/weight (And of course the cost to make it, which is minimal compared to the payoff in F1)
I made a Chloroplast using version of FF to test it, and it made it even more impossible to get rid if it, since it would no longer depend on any food source and just endlessly spread. (And that's how I know about the high mass of Chloroplast, probably about the same as for shell?)

My main issue with a vegie leagues, is that vegies don't need to fight to survive, they can flee to survive. So 2 vegies who flee to survive pitted against each other... well you would never see a winner. So you may need a different winning criteria. Like first to reach a certain accumulated amount of energy or something (So you can fight or flee, but energy is the end game in some form)

Not sure... maybe someone will have a good idea for this.
But for F1 I think Chloroplasts are imba. On the other hand there are other imba moves that people use as well so...
Mainly worried about a ton of endless battles in the long run. Fairly sure FF with chloroplast would be near impossible to eradicate, you would need a good way to kill it and have lots of bots to do it fast before it spreads again.

4
F1 bots / Re: Popper [F1] Spike43884 [V0.12]
« on: January 06, 2015, 08:58:52 PM »
If I remember correct The One is not just an inline condition bot, it's a single store bot.
Best single store bot I made was a rewrite of Excalibur into a single line of code, but it could still not beat the one.
I think The One would make sure if it got infected by venom or poison, to create an offspring with 99% of itself as a way to cure itself.
It's quite a work of art. Done by Abyaly if I recall right, so to be expected.

Other than that, good to see someone actually using the walls and making bots that consider those in it's movement. Maybe there should be a "Maze League" or something. Change things up a bit.

5
F1 bots / Re: {14/12/2014}Strawberry Flies (Spike43884)(F1){14/12/2014}
« on: January 04, 2015, 10:09:21 PM »
Maybe you could elaborate on what's changed compared to fruit flies, as they seem very similar.
Haven't compared them, but seems to just have an extra offensive gene at the end? And sharenrg value has been changed. (I thought 99 was the max value, maybe it's not, if so you should just put 3200 or something I think)
I any case an easy way to boost it would also be to change maxpop at the beginning to 32000 if you want. FF has been handicapped on purpose because too many bots slowed down the sim too much.

Also you should try running it against Saber and Quickdraw if sexrepro works.

6
Formula 2 / Re: Formula 2 rules
« on: December 12, 2014, 01:17:46 AM »
But the problem with the automated rules is that you can force other bots to break those rules. You could make a disqualifier bot that simply wins by making it's opponent break a rule, it wouldn't even need to fight.
So if you have an auto detect on broken rules, you need to make sure you also disallow any actions that could be used to make your opponent break that rule.

I did actually think about one way to put this together.
If you say tie feeding, leeching and counter leeching is illegal, then you could also include that oponents are not allowed to fire a memory/venom shot either aimed at .tieloc of with the value of .tieloc in it, and the same would go for ties, you can not manipulate .tieloc and you can not apply the value of .tieloc.
This should prevent anyone from forcing others to break the tie leeching rules.

7
Formula 2 / Re: Formula 2 rules
« on: December 09, 2014, 06:19:12 AM »
If I understand correctly the issue is that the automated disqualification won't distinguish between your own code trying to leech and someone else forcing you to do it via info shots or a tie.
The current rules don't entirely prevent this I think, and counter leeching is much stronger than leeching as it allows a very small bot to swallow a large vegy in seconds.
One way you would be able to completely prevent anyone from forcing someone to make an illegal move would be to ban both info shots, ties and venom.
But then it would just be the F3 league with shell and poison though. Not a very big difference.

Would it be possible to tell if a bot is acting of it's own free will or if another bot manipulated it to break the rules?
Also what should happen if a bot forces another bot to use .mrepro and that accidentally causes the other bot to break the rules?

The alternative to disallowing all info shots and ties would be to not allow actions that are causing tie feeding or leaching.
So obviously any direct feeding or sharing of energy would be banned, but also firing info shots (or using a tie) that would place a value into .sharenrg or place the values -1 or -6 into .tieloc. That way you can still have a counter leeching gene, but it will not get triggered unless another bot tried to leech off you. (This is useful for F2 bots who also compete in F1)
Of course then you run into another problem, what if someone is using a tie to force another bot to fire an info shot forcing -1 into .tieloc.
And if you ban that, then what about someone forcing another bot to break that rule?
It seems like no matter what rules you add, someone could force other bots to break those rules...
And even then there would still be a risk of a bot being disqualified after being forced to use .mrepro and having the poor luck of this resulting in an illegal move.

As far as I can tell there are only 2 completely safe ways out of this:
1. Ban forming ties, memory shots and venom (Leaving only shell and poison I think)
2. Detect if the illegal move was caused by another bot interfering with the code execution or a mutation of the code. (In which case the rules would be able to stay the same I think)

(Also don't forget .sexrepro is also banned in F2, it can basically be used as a virus that you can aim, can't be blocked by slime and requires no charge time. This was sugested first when Lovebot was entered in F2 and made official when Abyaly made Saber and it took first place in both F1 and F2 :P)

8
Formula 1 / Re: Latest league update
« on: October 28, 2014, 08:50:12 AM »
Cool, grats.
Afraid I don't have much spare time lately.
But will check in when I have time and update Fruit Flies (Or Quickdraw). (May be a while before I have the time)
You could also take a whack at taking down Spinner in the F2 league. Been looking for an excuse to try an idea I had for it.

9
F1 bots / Re: EyeOfTheBeholder(F1)(MacadamiaNuts)-25.10.14
« on: October 28, 2014, 08:47:14 AM »
You don't need to use math for logic any more after the inline conditions where introduced. Makes things much easier and readable.
And if you want to fool conspecs you should also adjust your dna length.
You could have 4 genes with 1 command, and one with 5 and one with 10 and one with 20 (asf...) this would give you easy (and fast) access to all values from 0 to 39 (or more). (Just make sure the bot doesn't delete itself from meeting a very tiny bot :P)
I think Spinner actually does this, but also think I managed to break it at some point :P (I think it was trying to adapt to the size of Alga_Minimalis)

Also keep in mind the conspec someone cam up with in a discussion (Can't remember who)
Fixed value in .out1, and random value in .out2, then check if *.in1 is the same as your value and that *.in2 is not.
If the bots form one random key at birth it'll mean you need to see that 2 of your opponents have different values in one of their outs and do the same.

Also there's also that one memory location you can check with your eye (So you need to check where the opponent is pointing it, then see what value the opponent has there and copy it. And keep in mind the opponent may have several values in different locations and cycle through them, so it may take a while before you manage to steal all the values.

Generally fooling conspec is lots of fun, but often takes too long to take effect unless up against a very simple conspec.

10
Bot Tavern / Re: Lets make another wikibot!
« on: April 27, 2014, 07:26:18 AM »

Code: [Select]
start
 .tie inc
 *.focuseye 505 add * 0 >
 *.nrg 1000 sub sgn 0 floor 49 *.venom sub sgn 0 floor mult 5 mult .strvenom store
 7 0 store
 -2 .venval store
 59 << *.robage 192 ceil >> rnd << << ++ store
 *.eyef 0 sub sgn abs -- abs 511 mult inc
 clearbool
 *.refbody << *.timer *323 rnd 3 ceil mult ++ .up store
 59 << *.robage 192 ceil >> rnd << << ++ store
 *.refeye 4 sub .sx store
 .shoot dec
 5 .sharenrg store
 *.body *.trefbody sub 10 div 65 floor .sharenrg store
*.tmemloc .chlr sub sgn abs .chlr mult .tmemloc *.tmemval 0 sub sgn abs 99 mult .sharenrg store 
*.refxpos *.refypos angle .aimshoot store
stop

11
Newbie / Re: Newbie starting a complex simulation
« on: April 25, 2014, 02:23:45 AM »
Viruses will make it a lot harder to follow what changes in the code.
But I have a feeling this guy might not be back anyway.
Still would like to set up that 3 part sim one day. Maybe when I have a faster computer. (Currently on an old laptop)

12
Newbie / Re: Newbie starting a complex simulation
« on: April 19, 2014, 05:42:46 PM »
Peters suggestion is a good one. High light and thick fluids along with higher costs in the prey sim I would say. And very low light and low costs in the predator sim (Maybe have some basic alge which repopulates in the predator sim). And well, something in between in the sim in between.
This should prevent either specie from being wiped out and keep an ongoing battle for the ground in the middle.
Or at least it'll increase the chances.
You should be aware that any specie can evolve using chloroplast though. So the predator could start using chloroplast and invade the prey sim eventually.

On a side note. Made 2 bots and tested them a bit. They seem to be able to coexist. But like peter mentions, the bigger the sim the better and the more bots the better. Also you can't actually cap the amount of bots really, so you need to tweak things like light and costs, which could just end up wiping out one specie.

One important thing, if you plan to try out Peters idea (And I think you should), then be aware that the predator of these 2 bots I'm posting is using chloroplast, but a small amount. (You could simply adjust light settings so the small amount the predator uses isn't enough, or you could just remode that from the code.)

Anyway here are the bots. I added some constant values at the top of each you can use to tweak. But things like maxpop tend to break very easily I'm afraid. Never took long before the population just exploded and sim speed went down to 0.1 cylce per sec.
(You should expect it'll take 1-2K cycles before sim starts to get going)

Prey:
Code: [Select]
def maxpop 1500
def maxchlryoung 300
def maxchlrold 1000
def childpct 20
def reprosize 3000

cond
*.robage 30 <=
start
.deltie inc
.mkchlr inc
*.nrg 50 >
100 .sx store
stop

cond
*.robage 30 >
*.nrg 100 <= or
*.totalmyspecies 150 <= or
*.nrg 10 > and
start
*.chlr .maxchlryoung <
dupbool
*.nrg 100 > and
100 .mkchlr store
dropbool
.mkchlr inc

*.chlr .maxchlrold <
*.nrg 100 > and
*.robage 1000 > and
100 .mkchlr store

*.nrg 500 >
*.body 1000 < and
*.nrg 5 div 100 floor .strbody store

*.shflav 0 !=
*.body .reprosize > or
*.numties 1 >
*.nrg 100 >
*.body 300 > or and or
*.totalmyspecies 150 < or
300 rnd .aimsx store
100 .dx store
0 .shflav store
.deltie inc

dupbool
*.timer 50 mod 0 != and
*.totalmyspecies .maxpop < and
.childpct .repro store

dropbool
*.timer 50 mod 0 = and
*.totalmyspecies .maxpop < and
.childpct .mrepro store
stop



Predator:
(Consider removing chloroplast from it, basically take out any part with .mkchlr)
Code: [Select]
def maxpop 1000
def childpct 30

cond
*.nrg 50 >
*.robage 100 < or
start
60 .sharenrg store

*.robage 0 =
450 .eye5width store
.eye5width .memloc store
.robage .tmemloc store

*.body 400 >
*.eye5 0 <=
*.body 700 > or and
*.totalmyspecies .maxpop < and
500 rnd .aimsx store
dupbool
*.timer 50 mod 0 != and
.childpct .repro store
dropbool
*.timer 50 mod 0 = and
.childpct .mrepro store

*.nrg 500 >
*.body 1000 < and
100 .strbody store

*.nrg 300 <
*.body 100 > and
100 .fdbody store

*.chlr 100 <
.mkchlr inc

*.eye5 0 >
*.memval 450 != and
*.refvelup 50 *.eye5 sub 0 floor add .up store
*.refveldx .dx store
*.refxpos *.refypos angle .setaim store
.tie inc

dupbool
*.refbody *.refnrg > and
*.tmemval 500 > and
-6 .shoot store

dropbool
dupbool
*.refbody *.refnrg <= and
*.tmemval 500 > and
.shoot dec

dropbool
not
30 60 rnd sub .aimsx store
30 .up store
.deltie inc
stop


The sim I ran was rather large (Over half way on the slider), with 1/8 mutation, started spawning 200 prey and 50 predators. Light settings are tricky, seems to work with either just 80 light, or 300 light per kilo veggy.
Biggest issue here is that there's a manually added maxpop in the code and this will break fast and end up freezing your sim eventually.
You may want to remove it or set it higher and then try to control population through environment settings instead, tweaking light and costs slightly.
Remember that when tweaking settings you should change them slightly and then give it lots of time to take effect before tweaking again, or you 'll suddenly have wiped the sim.

In any case good luck, and I second Peters idea. I think it's your best option.
I should also mention that when I made these 2 I simply had one large sim in mind. I think Peters idea is better, so if you want I can try to set that up myself and make some modifications to made the bots more suited for that purpose. (Unless you want to adjust them yourself)

13
Newbie / Re: Newbie starting a complex simulation
« on: April 19, 2014, 01:16:33 PM »
One of the big issues you're facing is the very small environment. This tends to cause one specie to exterminate the others rather fast.
Another issue is that any specie can produce chloroplast in the latest version of DB, so anyone could become a vegy.

There's another topic where some people where putting together a "wiki bot" where each person adds one line of code at the time.
(I should mention some of the lines are taken from other evolved bots, making the code very hard to read.)
This is what it looked like:
Code: [Select]
start
.tie inc
*.focuseye .eye5 add * 0 >
*.nrg 1000 sub sgn 0 floor 49 *.venom sub sgn 0 floor mult 5 mult .strvenom store
7 .venloc store
-2 .venval store
59 << *.robage 192 ceil >> rnd << << ++ store
*.eyef 0 sub sgn abs -- abs .focuseye mult inc
clearbool
*.refbody << *.timer rnd 3 ceil mult ++ .up store
59 << *.robage 192 ceil >> rnd << << ++ store
*.refeye 4 sub .sx store
.shoot dec
5 .sharenrg store
*.body *.trefbody sub 10 div 65 floor .sharenrg store
stop


I tried running a sim with the wikibot and an alge, it had a hard time surviving but eventually mutated to a point where it was stable (after about 1600 cycles), the code looked like this:
Code: [Select]
start
 .tie inc
 *.focuseye 505 add * 0 >
 *.nrg 1000 sub sgn 0 floor 49 *.venom sub sgn 0 floor mult 5 mult .strvenom store
 7 0 store
 -2 .venval store
 59 << *.robage 192 ceil >> rnd << << ++ store
 *.eyef 0 sub sgn abs -- abs 511 mult inc
 clearbool
 *.refbody << *.timer *323 rnd 3 ceil mult ++ .up store
 59 << *.robage 192 ceil >> rnd << << ++ store
 *.refeye 4 sub .sx store
 .shoot dec
 5 .sharenrg store
 *.body *.trefbody sub 10 div 65 floor .sharenrg store
 stop


It would eventually kill the alge it was feeding off, but the sim would repopulate the alge so it didn't die out.
However after 24K cycles it reached a point where it stopped shooting. It would still feed off the alge through ties, but wouldn't kill it.
It would also produce chloroplast though. So it had in a way evolved into a parasitic alge.
This was the end result:
Code: [Select]
start
 .tie inc
 *.focuseye 505 add 0 xor
 * *.nrg 1000 sub *.venom 49 floor 0 sgn sgn 0 floor mult 5 mult .strvenom store
 store
 0 7 -2 .venval floorstore
 59 clearbool
 *.robage 192 ceil >> rnd << << ++ store
 *.eyef 0 sub abs -- abs 511 clearbool
 inc
 mult << *.timer store
 div rnd 3 logx mult ++ .up store
 59 *.robage 176 ceil >> rnd << << ++ store
 store
 7 830 10 div 65 floor 830 overbool
 store
 stop


The problem with all of this is that the code is unreadable and very hard to follow. I'm assuming you want to somehow document what has changed in each bot.
It also sounds like you want to be able to modify a specie during the sim. But if you simply have 2 species in a sim, then they will evolve in each their way and it will be out of your control. (You can only control the environment they're in)

One option could be to take a descent bot from the F3 or maybe F2 league and run the sim with a basic alge which repopulates. Then at some point switch out the alge with a slightly stronger bot, something from the bottom of the F3 league. And then basically slowly increase the strength of the repopulated bot as the bot in the sim evolves to be able to kill the repopulated bot easily.
At least that would be a way to show visible improvement in one bot. But if your goal is to show 2 bots coexisting that will be harder.
I have only seen this happen once in a sim, where a bot branched out into 2 species, where one fixed it's position and reproduced in small clusters while the other moved around but had a hard time feeding off an alge as it kept pushing it out of the way. The only reason both species managed to coexist was because they depended on each other. The bots that moved could not survive without something to block the alge it was pushing and holding it in place, and the fixed bot could not survive without something pushing alge over to it.
But over time one of them (Don't know which one) evolved into something else, and wiped out the other bot.

The best chances you have of 2 species coexisting is for them to depend on each other somehow. Or at least for the stronger one to depend on the weaker one. In a very large sim with very few alge, bots will tend to feed off the alge without killing them, since once the alge is dead it may take them a long time to find a new food source. But this is rarely completely stable.

The last of the 3 code samples I've shown may be able to coexist with a weak bot, provided you still have some alge which repopulates in the sim. But I'm not sure how long it would be stable though.

14
Bot Tavern / Re: Lets make another wikibot!
« on: April 18, 2014, 08:30:07 AM »
I let the sim continue for another 24K cycles.
This is what it ended up like. Does quite well in F1 conditions with a larger field.
Uses chloroplasts somehow, good add forming fungus like structures around alge as well.
It no longer shoots, it only seems to share nrg (Although not sure how that part of the code works now) and makes some chloroplast.
Very interesting development for only 24K cycles. And just using mrepro with no mutations on it would seem. (Unless disabling mutations is broken, but fairly sure it isn't)

Code: [Select]
start
 .tie inc
 *.focuseye 505 add 0 xor
 * *.nrg 1000 sub *.venom 49 floor 0 sgn sgn 0 floor mult 5 mult .strvenom store
 store
 0 7 -2 .venval floorstore
 59 clearbool
 *.robage 192 ceil >> rnd << << ++ store
 *.eyef 0 sub abs -- abs 511 clearbool
 inc
 mult << *.timer store
 div rnd 3 logx mult ++ .up store
 59 *.robage 176 ceil >> rnd << << ++ store
 store
 7 830 10 div 65 floor 830 overbool
 store
 stop

15
Bot Tavern / Re: Lets make another wikibot!
« on: April 18, 2014, 01:24:52 AM »
Code: [Select]
start
.tie inc
*.focuseye .eye5 add * 0 >
*.nrg 1000 sub sgn 0 floor 49 *.venom sub sgn 0 floor mult 5 mult .strvenom store
7 .venloc store
-2 .venval store
59 << *.robage 192 ceil >> rnd << << ++ store
*.eyef 0 sub sgn abs -- abs .focuseye mult inc
clearbool
*.refbody << *.timer rnd 3 ceil mult ++ .up store
59 << *.robage 192 ceil >> rnd << << ++ store
*.refeye 4 sub .sx store
.shoot dec
5 .sharenrg store
*.body *.trefbody sub 10 div 65 floor .sharenrg store
stop

Sorry to mess with the exact same thing, but 5 .sharenrg was pretty suicidal.
Tried to run it like this, and it had a hard time surviving, thought it was dying out. But seems it uses .mrepro somewhere in there, so even with mutations turned off it was mutating. After only 1600 cycles (Possibly less) it had broken several lines and was now stable and able to survive with F1 conditions. I think one of the key lines was the line storing a high value in .up (line 9) which was now only storing 1 in .up i think (Assuming *323 is 0).
At least that's the visible effect i noticed, instead of zipping away at light speed it would suddenly cluster around the alge.
(Above is the wiki bot, bellow is the evolved result after 1660 cycles in F1 conditions, with mutations disabled, but likely using mrepro)

Code: [Select]
start
 .tie inc
 *.focuseye 505 add * 0 >
 *.nrg 1000 sub sgn 0 floor 49 *.venom sub sgn 0 floor mult 5 mult .strvenom store
 7 0 store
 -2 .venval store
 59 << *.robage 192 ceil >> rnd << << ++ store
 *.eyef 0 sub sgn abs -- abs 511 mult inc
 clearbool
 *.refbody << *.timer *323 rnd 3 ceil mult ++ .up store
 59 << *.robage 192 ceil >> rnd << << ++ store
 *.refeye 4 sub .sx store
 .shoot dec
 5 .sharenrg store
 *.body *.trefbody sub 10 div 65 floor .sharenrg store
 stop

Pages: [1] 2 3 ... 40